coreum-js 2.5.8 → 2.5.10

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 (101) hide show
  1. package/dist/main/cosmos/bank/v1beta1/authz.d.ts +80 -0
  2. package/dist/main/cosmos/bank/v1beta1/authz.js +84 -0
  3. package/dist/main/cosmos/bank/v1beta1/bank.d.ts +440 -0
  4. package/dist/main/cosmos/bank/v1beta1/bank.js +557 -0
  5. package/dist/main/cosmos/bank/v1beta1/genesis.d.ts +473 -0
  6. package/dist/main/cosmos/bank/v1beta1/genesis.js +208 -0
  7. package/dist/main/cosmos/bank/v1beta1/pagination.d.ts +128 -0
  8. package/dist/main/cosmos/bank/v1beta1/pagination.js +228 -0
  9. package/dist/main/cosmos/bank/v1beta1/query.d.ts +1633 -0
  10. package/dist/main/cosmos/bank/v1beta1/query.js +1596 -0
  11. package/dist/main/cosmos/bank/v1beta1/tx.d.ts +514 -0
  12. package/dist/main/cosmos/bank/v1beta1/tx.js +499 -0
  13. package/dist/main/cosmos/distribution/v1beta1/distribution.d.ts +638 -0
  14. package/dist/main/cosmos/distribution/v1beta1/distribution.js +888 -0
  15. package/dist/main/cosmos/distribution/v1beta1/genesis.d.ts +1259 -0
  16. package/dist/main/cosmos/distribution/v1beta1/genesis.js +785 -0
  17. package/dist/main/cosmos/distribution/v1beta1/pagination.d.ts +128 -0
  18. package/dist/main/cosmos/distribution/v1beta1/pagination.js +228 -0
  19. package/dist/main/cosmos/distribution/v1beta1/query.d.ts +995 -0
  20. package/dist/main/cosmos/distribution/v1beta1/query.js +1336 -0
  21. package/dist/main/cosmos/distribution/v1beta1/tx.d.ts +593 -0
  22. package/dist/main/cosmos/distribution/v1beta1/tx.js +825 -0
  23. package/dist/main/cosmos/feegrant/v1beta1/feegrant.d.ts +367 -0
  24. package/dist/main/cosmos/feegrant/v1beta1/feegrant.js +413 -0
  25. package/dist/main/cosmos/feegrant/v1beta1/genesis.d.ts +111 -0
  26. package/dist/main/cosmos/feegrant/v1beta1/genesis.js +67 -0
  27. package/dist/main/cosmos/feegrant/v1beta1/pagination.d.ts +128 -0
  28. package/dist/main/cosmos/feegrant/v1beta1/pagination.js +228 -0
  29. package/dist/main/cosmos/feegrant/v1beta1/query.d.ts +512 -0
  30. package/dist/main/cosmos/feegrant/v1beta1/query.js +461 -0
  31. package/dist/main/cosmos/feegrant/v1beta1/tx.d.ts +143 -0
  32. package/dist/main/cosmos/feegrant/v1beta1/tx.js +253 -0
  33. package/dist/main/cosmos/gov/v1beta1/genesis.d.ts +639 -0
  34. package/dist/main/cosmos/gov/v1beta1/genesis.js +195 -0
  35. package/dist/main/cosmos/gov/v1beta1/gov.d.ts +620 -0
  36. package/dist/main/cosmos/gov/v1beta1/gov.js +1038 -0
  37. package/dist/main/cosmos/gov/v1beta1/pagination.d.ts +128 -0
  38. package/dist/main/cosmos/gov/v1beta1/pagination.js +228 -0
  39. package/dist/main/cosmos/gov/v1beta1/query.d.ts +1511 -0
  40. package/dist/main/cosmos/gov/v1beta1/query.js +1187 -0
  41. package/dist/main/cosmos/gov/v1beta1/tx.d.ts +350 -0
  42. package/dist/main/cosmos/gov/v1beta1/tx.js +567 -0
  43. package/dist/main/cosmos/index.d.ts +456 -0
  44. package/dist/main/cosmos/index.js +126 -0
  45. package/dist/main/google/protobuf/descriptor.d.ts +101937 -0
  46. package/dist/main/google/protobuf/descriptor.js +3375 -0
  47. package/dist/main/google/protobuf/duration.d.ts +110 -0
  48. package/dist/main/google/protobuf/duration.js +102 -0
  49. package/dist/main/google/protobuf/timestamp.d.ts +139 -0
  50. package/dist/main/google/protobuf/timestamp.js +102 -0
  51. package/dist/module/cosmos/bank/v1beta1/authz.d.ts +80 -0
  52. package/dist/module/cosmos/bank/v1beta1/authz.js +77 -0
  53. package/dist/module/cosmos/bank/v1beta1/bank.d.ts +440 -0
  54. package/dist/module/cosmos/bank/v1beta1/bank.js +544 -0
  55. package/dist/module/cosmos/bank/v1beta1/genesis.d.ts +473 -0
  56. package/dist/module/cosmos/bank/v1beta1/genesis.js +200 -0
  57. package/dist/module/cosmos/bank/v1beta1/pagination.d.ts +128 -0
  58. package/dist/module/cosmos/bank/v1beta1/pagination.js +220 -0
  59. package/dist/module/cosmos/bank/v1beta1/query.d.ts +1633 -0
  60. package/dist/module/cosmos/bank/v1beta1/query.js +1576 -0
  61. package/dist/module/cosmos/bank/v1beta1/tx.d.ts +514 -0
  62. package/dist/module/cosmos/bank/v1beta1/tx.js +490 -0
  63. package/dist/module/cosmos/distribution/v1beta1/distribution.d.ts +638 -0
  64. package/dist/module/cosmos/distribution/v1beta1/distribution.js +870 -0
  65. package/dist/module/cosmos/distribution/v1beta1/genesis.d.ts +1259 -0
  66. package/dist/module/cosmos/distribution/v1beta1/genesis.js +771 -0
  67. package/dist/module/cosmos/distribution/v1beta1/pagination.d.ts +128 -0
  68. package/dist/module/cosmos/distribution/v1beta1/pagination.js +220 -0
  69. package/dist/module/cosmos/distribution/v1beta1/query.d.ts +995 -0
  70. package/dist/module/cosmos/distribution/v1beta1/query.js +1316 -0
  71. package/dist/module/cosmos/distribution/v1beta1/tx.d.ts +593 -0
  72. package/dist/module/cosmos/distribution/v1beta1/tx.js +811 -0
  73. package/dist/module/cosmos/feegrant/v1beta1/feegrant.d.ts +367 -0
  74. package/dist/module/cosmos/feegrant/v1beta1/feegrant.js +403 -0
  75. package/dist/module/cosmos/feegrant/v1beta1/genesis.d.ts +111 -0
  76. package/dist/module/cosmos/feegrant/v1beta1/genesis.js +60 -0
  77. package/dist/module/cosmos/feegrant/v1beta1/pagination.d.ts +128 -0
  78. package/dist/module/cosmos/feegrant/v1beta1/pagination.js +220 -0
  79. package/dist/module/cosmos/feegrant/v1beta1/query.d.ts +512 -0
  80. package/dist/module/cosmos/feegrant/v1beta1/query.js +451 -0
  81. package/dist/module/cosmos/feegrant/v1beta1/tx.d.ts +143 -0
  82. package/dist/module/cosmos/feegrant/v1beta1/tx.js +246 -0
  83. package/dist/module/cosmos/gov/v1beta1/genesis.d.ts +639 -0
  84. package/dist/module/cosmos/gov/v1beta1/genesis.js +188 -0
  85. package/dist/module/cosmos/gov/v1beta1/gov.d.ts +620 -0
  86. package/dist/module/cosmos/gov/v1beta1/gov.js +1020 -0
  87. package/dist/module/cosmos/gov/v1beta1/pagination.d.ts +128 -0
  88. package/dist/module/cosmos/gov/v1beta1/pagination.js +220 -0
  89. package/dist/module/cosmos/gov/v1beta1/query.d.ts +1511 -0
  90. package/dist/module/cosmos/gov/v1beta1/query.js +1171 -0
  91. package/dist/module/cosmos/gov/v1beta1/tx.d.ts +350 -0
  92. package/dist/module/cosmos/gov/v1beta1/tx.js +557 -0
  93. package/dist/module/cosmos/index.d.ts +456 -0
  94. package/dist/module/cosmos/index.js +123 -0
  95. package/dist/module/google/protobuf/descriptor.d.ts +101937 -0
  96. package/dist/module/google/protobuf/descriptor.js +3330 -0
  97. package/dist/module/google/protobuf/duration.d.ts +110 -0
  98. package/dist/module/google/protobuf/duration.js +95 -0
  99. package/dist/module/google/protobuf/timestamp.d.ts +139 -0
  100. package/dist/module/google/protobuf/timestamp.js +95 -0
  101. package/package.json +1 -1
@@ -0,0 +1,785 @@
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.GenesisState = exports.ValidatorSlashEventRecord = exports.DelegatorStartingInfoRecord = exports.ValidatorCurrentRewardsRecord = exports.ValidatorHistoricalRewardsRecord = exports.ValidatorAccumulatedCommissionRecord = exports.ValidatorOutstandingRewardsRecord = exports.DelegatorWithdrawInfo = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const long_1 = __importDefault(require("long"));
9
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
+ const coin_1 = require("../../base/v1beta1/coin");
11
+ const distribution_1 = require("./distribution");
12
+ exports.protobufPackage = "cosmos.distribution.v1beta1";
13
+ function createBaseDelegatorWithdrawInfo() {
14
+ return { delegatorAddress: "", withdrawAddress: "" };
15
+ }
16
+ exports.DelegatorWithdrawInfo = {
17
+ encode(message, writer = minimal_1.default.Writer.create()) {
18
+ if (message.delegatorAddress !== "") {
19
+ writer.uint32(10).string(message.delegatorAddress);
20
+ }
21
+ if (message.withdrawAddress !== "") {
22
+ writer.uint32(18).string(message.withdrawAddress);
23
+ }
24
+ return writer;
25
+ },
26
+ decode(input, length) {
27
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
28
+ let end = length === undefined ? reader.len : reader.pos + length;
29
+ const message = createBaseDelegatorWithdrawInfo();
30
+ while (reader.pos < end) {
31
+ const tag = reader.uint32();
32
+ switch (tag >>> 3) {
33
+ case 1:
34
+ if (tag !== 10) {
35
+ break;
36
+ }
37
+ message.delegatorAddress = reader.string();
38
+ continue;
39
+ case 2:
40
+ if (tag !== 18) {
41
+ break;
42
+ }
43
+ message.withdrawAddress = reader.string();
44
+ continue;
45
+ }
46
+ if ((tag & 7) === 4 || tag === 0) {
47
+ break;
48
+ }
49
+ reader.skipType(tag & 7);
50
+ }
51
+ return message;
52
+ },
53
+ fromJSON(object) {
54
+ return {
55
+ delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
56
+ withdrawAddress: isSet(object.withdrawAddress) ? String(object.withdrawAddress) : "",
57
+ };
58
+ },
59
+ toJSON(message) {
60
+ const obj = {};
61
+ message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
62
+ message.withdrawAddress !== undefined && (obj.withdrawAddress = message.withdrawAddress);
63
+ return obj;
64
+ },
65
+ create(base) {
66
+ return exports.DelegatorWithdrawInfo.fromPartial(base !== null && base !== void 0 ? base : {});
67
+ },
68
+ fromPartial(object) {
69
+ var _a, _b;
70
+ const message = createBaseDelegatorWithdrawInfo();
71
+ message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : "";
72
+ message.withdrawAddress = (_b = object.withdrawAddress) !== null && _b !== void 0 ? _b : "";
73
+ return message;
74
+ },
75
+ };
76
+ function createBaseValidatorOutstandingRewardsRecord() {
77
+ return { validatorAddress: "", outstandingRewards: [] };
78
+ }
79
+ exports.ValidatorOutstandingRewardsRecord = {
80
+ encode(message, writer = minimal_1.default.Writer.create()) {
81
+ if (message.validatorAddress !== "") {
82
+ writer.uint32(10).string(message.validatorAddress);
83
+ }
84
+ for (const v of message.outstandingRewards) {
85
+ coin_1.DecCoin.encode(v, writer.uint32(18).fork()).ldelim();
86
+ }
87
+ return writer;
88
+ },
89
+ decode(input, length) {
90
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
91
+ let end = length === undefined ? reader.len : reader.pos + length;
92
+ const message = createBaseValidatorOutstandingRewardsRecord();
93
+ while (reader.pos < end) {
94
+ const tag = reader.uint32();
95
+ switch (tag >>> 3) {
96
+ case 1:
97
+ if (tag !== 10) {
98
+ break;
99
+ }
100
+ message.validatorAddress = reader.string();
101
+ continue;
102
+ case 2:
103
+ if (tag !== 18) {
104
+ break;
105
+ }
106
+ message.outstandingRewards.push(coin_1.DecCoin.decode(reader, reader.uint32()));
107
+ continue;
108
+ }
109
+ if ((tag & 7) === 4 || tag === 0) {
110
+ break;
111
+ }
112
+ reader.skipType(tag & 7);
113
+ }
114
+ return message;
115
+ },
116
+ fromJSON(object) {
117
+ return {
118
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
119
+ outstandingRewards: Array.isArray(object === null || object === void 0 ? void 0 : object.outstandingRewards)
120
+ ? object.outstandingRewards.map((e) => coin_1.DecCoin.fromJSON(e))
121
+ : [],
122
+ };
123
+ },
124
+ toJSON(message) {
125
+ const obj = {};
126
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
127
+ if (message.outstandingRewards) {
128
+ obj.outstandingRewards = message.outstandingRewards.map((e) => e ? coin_1.DecCoin.toJSON(e) : undefined);
129
+ }
130
+ else {
131
+ obj.outstandingRewards = [];
132
+ }
133
+ return obj;
134
+ },
135
+ create(base) {
136
+ return exports.ValidatorOutstandingRewardsRecord.fromPartial(base !== null && base !== void 0 ? base : {});
137
+ },
138
+ fromPartial(object) {
139
+ var _a, _b;
140
+ const message = createBaseValidatorOutstandingRewardsRecord();
141
+ message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : "";
142
+ message.outstandingRewards = ((_b = object.outstandingRewards) === null || _b === void 0 ? void 0 : _b.map((e) => coin_1.DecCoin.fromPartial(e))) || [];
143
+ return message;
144
+ },
145
+ };
146
+ function createBaseValidatorAccumulatedCommissionRecord() {
147
+ return { validatorAddress: "", accumulated: undefined };
148
+ }
149
+ exports.ValidatorAccumulatedCommissionRecord = {
150
+ encode(message, writer = minimal_1.default.Writer.create()) {
151
+ if (message.validatorAddress !== "") {
152
+ writer.uint32(10).string(message.validatorAddress);
153
+ }
154
+ if (message.accumulated !== undefined) {
155
+ distribution_1.ValidatorAccumulatedCommission.encode(message.accumulated, writer.uint32(18).fork()).ldelim();
156
+ }
157
+ return writer;
158
+ },
159
+ decode(input, length) {
160
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
161
+ let end = length === undefined ? reader.len : reader.pos + length;
162
+ const message = createBaseValidatorAccumulatedCommissionRecord();
163
+ while (reader.pos < end) {
164
+ const tag = reader.uint32();
165
+ switch (tag >>> 3) {
166
+ case 1:
167
+ if (tag !== 10) {
168
+ break;
169
+ }
170
+ message.validatorAddress = reader.string();
171
+ continue;
172
+ case 2:
173
+ if (tag !== 18) {
174
+ break;
175
+ }
176
+ message.accumulated = distribution_1.ValidatorAccumulatedCommission.decode(reader, reader.uint32());
177
+ continue;
178
+ }
179
+ if ((tag & 7) === 4 || tag === 0) {
180
+ break;
181
+ }
182
+ reader.skipType(tag & 7);
183
+ }
184
+ return message;
185
+ },
186
+ fromJSON(object) {
187
+ return {
188
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
189
+ accumulated: isSet(object.accumulated) ? distribution_1.ValidatorAccumulatedCommission.fromJSON(object.accumulated) : undefined,
190
+ };
191
+ },
192
+ toJSON(message) {
193
+ const obj = {};
194
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
195
+ message.accumulated !== undefined &&
196
+ (obj.accumulated = message.accumulated ? distribution_1.ValidatorAccumulatedCommission.toJSON(message.accumulated) : undefined);
197
+ return obj;
198
+ },
199
+ create(base) {
200
+ return exports.ValidatorAccumulatedCommissionRecord.fromPartial(base !== null && base !== void 0 ? base : {});
201
+ },
202
+ fromPartial(object) {
203
+ var _a;
204
+ const message = createBaseValidatorAccumulatedCommissionRecord();
205
+ message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : "";
206
+ message.accumulated = (object.accumulated !== undefined && object.accumulated !== null)
207
+ ? distribution_1.ValidatorAccumulatedCommission.fromPartial(object.accumulated)
208
+ : undefined;
209
+ return message;
210
+ },
211
+ };
212
+ function createBaseValidatorHistoricalRewardsRecord() {
213
+ return { validatorAddress: "", period: 0, rewards: undefined };
214
+ }
215
+ exports.ValidatorHistoricalRewardsRecord = {
216
+ encode(message, writer = minimal_1.default.Writer.create()) {
217
+ if (message.validatorAddress !== "") {
218
+ writer.uint32(10).string(message.validatorAddress);
219
+ }
220
+ if (message.period !== 0) {
221
+ writer.uint32(16).uint64(message.period);
222
+ }
223
+ if (message.rewards !== undefined) {
224
+ distribution_1.ValidatorHistoricalRewards.encode(message.rewards, writer.uint32(26).fork()).ldelim();
225
+ }
226
+ return writer;
227
+ },
228
+ decode(input, length) {
229
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
230
+ let end = length === undefined ? reader.len : reader.pos + length;
231
+ const message = createBaseValidatorHistoricalRewardsRecord();
232
+ while (reader.pos < end) {
233
+ const tag = reader.uint32();
234
+ switch (tag >>> 3) {
235
+ case 1:
236
+ if (tag !== 10) {
237
+ break;
238
+ }
239
+ message.validatorAddress = reader.string();
240
+ continue;
241
+ case 2:
242
+ if (tag !== 16) {
243
+ break;
244
+ }
245
+ message.period = longToNumber(reader.uint64());
246
+ continue;
247
+ case 3:
248
+ if (tag !== 26) {
249
+ break;
250
+ }
251
+ message.rewards = distribution_1.ValidatorHistoricalRewards.decode(reader, reader.uint32());
252
+ continue;
253
+ }
254
+ if ((tag & 7) === 4 || tag === 0) {
255
+ break;
256
+ }
257
+ reader.skipType(tag & 7);
258
+ }
259
+ return message;
260
+ },
261
+ fromJSON(object) {
262
+ return {
263
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
264
+ period: isSet(object.period) ? Number(object.period) : 0,
265
+ rewards: isSet(object.rewards) ? distribution_1.ValidatorHistoricalRewards.fromJSON(object.rewards) : undefined,
266
+ };
267
+ },
268
+ toJSON(message) {
269
+ const obj = {};
270
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
271
+ message.period !== undefined && (obj.period = Math.round(message.period));
272
+ message.rewards !== undefined &&
273
+ (obj.rewards = message.rewards ? distribution_1.ValidatorHistoricalRewards.toJSON(message.rewards) : undefined);
274
+ return obj;
275
+ },
276
+ create(base) {
277
+ return exports.ValidatorHistoricalRewardsRecord.fromPartial(base !== null && base !== void 0 ? base : {});
278
+ },
279
+ fromPartial(object) {
280
+ var _a, _b;
281
+ const message = createBaseValidatorHistoricalRewardsRecord();
282
+ message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : "";
283
+ message.period = (_b = object.period) !== null && _b !== void 0 ? _b : 0;
284
+ message.rewards = (object.rewards !== undefined && object.rewards !== null)
285
+ ? distribution_1.ValidatorHistoricalRewards.fromPartial(object.rewards)
286
+ : undefined;
287
+ return message;
288
+ },
289
+ };
290
+ function createBaseValidatorCurrentRewardsRecord() {
291
+ return { validatorAddress: "", rewards: undefined };
292
+ }
293
+ exports.ValidatorCurrentRewardsRecord = {
294
+ encode(message, writer = minimal_1.default.Writer.create()) {
295
+ if (message.validatorAddress !== "") {
296
+ writer.uint32(10).string(message.validatorAddress);
297
+ }
298
+ if (message.rewards !== undefined) {
299
+ distribution_1.ValidatorCurrentRewards.encode(message.rewards, writer.uint32(18).fork()).ldelim();
300
+ }
301
+ return writer;
302
+ },
303
+ decode(input, length) {
304
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
305
+ let end = length === undefined ? reader.len : reader.pos + length;
306
+ const message = createBaseValidatorCurrentRewardsRecord();
307
+ while (reader.pos < end) {
308
+ const tag = reader.uint32();
309
+ switch (tag >>> 3) {
310
+ case 1:
311
+ if (tag !== 10) {
312
+ break;
313
+ }
314
+ message.validatorAddress = reader.string();
315
+ continue;
316
+ case 2:
317
+ if (tag !== 18) {
318
+ break;
319
+ }
320
+ message.rewards = distribution_1.ValidatorCurrentRewards.decode(reader, reader.uint32());
321
+ continue;
322
+ }
323
+ if ((tag & 7) === 4 || tag === 0) {
324
+ break;
325
+ }
326
+ reader.skipType(tag & 7);
327
+ }
328
+ return message;
329
+ },
330
+ fromJSON(object) {
331
+ return {
332
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
333
+ rewards: isSet(object.rewards) ? distribution_1.ValidatorCurrentRewards.fromJSON(object.rewards) : undefined,
334
+ };
335
+ },
336
+ toJSON(message) {
337
+ const obj = {};
338
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
339
+ message.rewards !== undefined &&
340
+ (obj.rewards = message.rewards ? distribution_1.ValidatorCurrentRewards.toJSON(message.rewards) : undefined);
341
+ return obj;
342
+ },
343
+ create(base) {
344
+ return exports.ValidatorCurrentRewardsRecord.fromPartial(base !== null && base !== void 0 ? base : {});
345
+ },
346
+ fromPartial(object) {
347
+ var _a;
348
+ const message = createBaseValidatorCurrentRewardsRecord();
349
+ message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : "";
350
+ message.rewards = (object.rewards !== undefined && object.rewards !== null)
351
+ ? distribution_1.ValidatorCurrentRewards.fromPartial(object.rewards)
352
+ : undefined;
353
+ return message;
354
+ },
355
+ };
356
+ function createBaseDelegatorStartingInfoRecord() {
357
+ return { delegatorAddress: "", validatorAddress: "", startingInfo: undefined };
358
+ }
359
+ exports.DelegatorStartingInfoRecord = {
360
+ encode(message, writer = minimal_1.default.Writer.create()) {
361
+ if (message.delegatorAddress !== "") {
362
+ writer.uint32(10).string(message.delegatorAddress);
363
+ }
364
+ if (message.validatorAddress !== "") {
365
+ writer.uint32(18).string(message.validatorAddress);
366
+ }
367
+ if (message.startingInfo !== undefined) {
368
+ distribution_1.DelegatorStartingInfo.encode(message.startingInfo, writer.uint32(26).fork()).ldelim();
369
+ }
370
+ return writer;
371
+ },
372
+ decode(input, length) {
373
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
374
+ let end = length === undefined ? reader.len : reader.pos + length;
375
+ const message = createBaseDelegatorStartingInfoRecord();
376
+ while (reader.pos < end) {
377
+ const tag = reader.uint32();
378
+ switch (tag >>> 3) {
379
+ case 1:
380
+ if (tag !== 10) {
381
+ break;
382
+ }
383
+ message.delegatorAddress = reader.string();
384
+ continue;
385
+ case 2:
386
+ if (tag !== 18) {
387
+ break;
388
+ }
389
+ message.validatorAddress = reader.string();
390
+ continue;
391
+ case 3:
392
+ if (tag !== 26) {
393
+ break;
394
+ }
395
+ message.startingInfo = distribution_1.DelegatorStartingInfo.decode(reader, reader.uint32());
396
+ continue;
397
+ }
398
+ if ((tag & 7) === 4 || tag === 0) {
399
+ break;
400
+ }
401
+ reader.skipType(tag & 7);
402
+ }
403
+ return message;
404
+ },
405
+ fromJSON(object) {
406
+ return {
407
+ delegatorAddress: isSet(object.delegatorAddress) ? String(object.delegatorAddress) : "",
408
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
409
+ startingInfo: isSet(object.startingInfo) ? distribution_1.DelegatorStartingInfo.fromJSON(object.startingInfo) : undefined,
410
+ };
411
+ },
412
+ toJSON(message) {
413
+ const obj = {};
414
+ message.delegatorAddress !== undefined && (obj.delegatorAddress = message.delegatorAddress);
415
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
416
+ message.startingInfo !== undefined &&
417
+ (obj.startingInfo = message.startingInfo ? distribution_1.DelegatorStartingInfo.toJSON(message.startingInfo) : undefined);
418
+ return obj;
419
+ },
420
+ create(base) {
421
+ return exports.DelegatorStartingInfoRecord.fromPartial(base !== null && base !== void 0 ? base : {});
422
+ },
423
+ fromPartial(object) {
424
+ var _a, _b;
425
+ const message = createBaseDelegatorStartingInfoRecord();
426
+ message.delegatorAddress = (_a = object.delegatorAddress) !== null && _a !== void 0 ? _a : "";
427
+ message.validatorAddress = (_b = object.validatorAddress) !== null && _b !== void 0 ? _b : "";
428
+ message.startingInfo = (object.startingInfo !== undefined && object.startingInfo !== null)
429
+ ? distribution_1.DelegatorStartingInfo.fromPartial(object.startingInfo)
430
+ : undefined;
431
+ return message;
432
+ },
433
+ };
434
+ function createBaseValidatorSlashEventRecord() {
435
+ return { validatorAddress: "", height: 0, period: 0, validatorSlashEvent: undefined };
436
+ }
437
+ exports.ValidatorSlashEventRecord = {
438
+ encode(message, writer = minimal_1.default.Writer.create()) {
439
+ if (message.validatorAddress !== "") {
440
+ writer.uint32(10).string(message.validatorAddress);
441
+ }
442
+ if (message.height !== 0) {
443
+ writer.uint32(16).uint64(message.height);
444
+ }
445
+ if (message.period !== 0) {
446
+ writer.uint32(24).uint64(message.period);
447
+ }
448
+ if (message.validatorSlashEvent !== undefined) {
449
+ distribution_1.ValidatorSlashEvent.encode(message.validatorSlashEvent, writer.uint32(34).fork()).ldelim();
450
+ }
451
+ return writer;
452
+ },
453
+ decode(input, length) {
454
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
455
+ let end = length === undefined ? reader.len : reader.pos + length;
456
+ const message = createBaseValidatorSlashEventRecord();
457
+ while (reader.pos < end) {
458
+ const tag = reader.uint32();
459
+ switch (tag >>> 3) {
460
+ case 1:
461
+ if (tag !== 10) {
462
+ break;
463
+ }
464
+ message.validatorAddress = reader.string();
465
+ continue;
466
+ case 2:
467
+ if (tag !== 16) {
468
+ break;
469
+ }
470
+ message.height = longToNumber(reader.uint64());
471
+ continue;
472
+ case 3:
473
+ if (tag !== 24) {
474
+ break;
475
+ }
476
+ message.period = longToNumber(reader.uint64());
477
+ continue;
478
+ case 4:
479
+ if (tag !== 34) {
480
+ break;
481
+ }
482
+ message.validatorSlashEvent = distribution_1.ValidatorSlashEvent.decode(reader, reader.uint32());
483
+ continue;
484
+ }
485
+ if ((tag & 7) === 4 || tag === 0) {
486
+ break;
487
+ }
488
+ reader.skipType(tag & 7);
489
+ }
490
+ return message;
491
+ },
492
+ fromJSON(object) {
493
+ return {
494
+ validatorAddress: isSet(object.validatorAddress) ? String(object.validatorAddress) : "",
495
+ height: isSet(object.height) ? Number(object.height) : 0,
496
+ period: isSet(object.period) ? Number(object.period) : 0,
497
+ validatorSlashEvent: isSet(object.validatorSlashEvent)
498
+ ? distribution_1.ValidatorSlashEvent.fromJSON(object.validatorSlashEvent)
499
+ : undefined,
500
+ };
501
+ },
502
+ toJSON(message) {
503
+ const obj = {};
504
+ message.validatorAddress !== undefined && (obj.validatorAddress = message.validatorAddress);
505
+ message.height !== undefined && (obj.height = Math.round(message.height));
506
+ message.period !== undefined && (obj.period = Math.round(message.period));
507
+ message.validatorSlashEvent !== undefined && (obj.validatorSlashEvent = message.validatorSlashEvent
508
+ ? distribution_1.ValidatorSlashEvent.toJSON(message.validatorSlashEvent)
509
+ : undefined);
510
+ return obj;
511
+ },
512
+ create(base) {
513
+ return exports.ValidatorSlashEventRecord.fromPartial(base !== null && base !== void 0 ? base : {});
514
+ },
515
+ fromPartial(object) {
516
+ var _a, _b, _c;
517
+ const message = createBaseValidatorSlashEventRecord();
518
+ message.validatorAddress = (_a = object.validatorAddress) !== null && _a !== void 0 ? _a : "";
519
+ message.height = (_b = object.height) !== null && _b !== void 0 ? _b : 0;
520
+ message.period = (_c = object.period) !== null && _c !== void 0 ? _c : 0;
521
+ message.validatorSlashEvent = (object.validatorSlashEvent !== undefined && object.validatorSlashEvent !== null)
522
+ ? distribution_1.ValidatorSlashEvent.fromPartial(object.validatorSlashEvent)
523
+ : undefined;
524
+ return message;
525
+ },
526
+ };
527
+ function createBaseGenesisState() {
528
+ return {
529
+ params: undefined,
530
+ feePool: undefined,
531
+ delegatorWithdrawInfos: [],
532
+ previousProposer: "",
533
+ outstandingRewards: [],
534
+ validatorAccumulatedCommissions: [],
535
+ validatorHistoricalRewards: [],
536
+ validatorCurrentRewards: [],
537
+ delegatorStartingInfos: [],
538
+ validatorSlashEvents: [],
539
+ };
540
+ }
541
+ exports.GenesisState = {
542
+ encode(message, writer = minimal_1.default.Writer.create()) {
543
+ if (message.params !== undefined) {
544
+ distribution_1.Params.encode(message.params, writer.uint32(10).fork()).ldelim();
545
+ }
546
+ if (message.feePool !== undefined) {
547
+ distribution_1.FeePool.encode(message.feePool, writer.uint32(18).fork()).ldelim();
548
+ }
549
+ for (const v of message.delegatorWithdrawInfos) {
550
+ exports.DelegatorWithdrawInfo.encode(v, writer.uint32(26).fork()).ldelim();
551
+ }
552
+ if (message.previousProposer !== "") {
553
+ writer.uint32(34).string(message.previousProposer);
554
+ }
555
+ for (const v of message.outstandingRewards) {
556
+ exports.ValidatorOutstandingRewardsRecord.encode(v, writer.uint32(42).fork()).ldelim();
557
+ }
558
+ for (const v of message.validatorAccumulatedCommissions) {
559
+ exports.ValidatorAccumulatedCommissionRecord.encode(v, writer.uint32(50).fork()).ldelim();
560
+ }
561
+ for (const v of message.validatorHistoricalRewards) {
562
+ exports.ValidatorHistoricalRewardsRecord.encode(v, writer.uint32(58).fork()).ldelim();
563
+ }
564
+ for (const v of message.validatorCurrentRewards) {
565
+ exports.ValidatorCurrentRewardsRecord.encode(v, writer.uint32(66).fork()).ldelim();
566
+ }
567
+ for (const v of message.delegatorStartingInfos) {
568
+ exports.DelegatorStartingInfoRecord.encode(v, writer.uint32(74).fork()).ldelim();
569
+ }
570
+ for (const v of message.validatorSlashEvents) {
571
+ exports.ValidatorSlashEventRecord.encode(v, writer.uint32(82).fork()).ldelim();
572
+ }
573
+ return writer;
574
+ },
575
+ decode(input, length) {
576
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
577
+ let end = length === undefined ? reader.len : reader.pos + length;
578
+ const message = createBaseGenesisState();
579
+ while (reader.pos < end) {
580
+ const tag = reader.uint32();
581
+ switch (tag >>> 3) {
582
+ case 1:
583
+ if (tag !== 10) {
584
+ break;
585
+ }
586
+ message.params = distribution_1.Params.decode(reader, reader.uint32());
587
+ continue;
588
+ case 2:
589
+ if (tag !== 18) {
590
+ break;
591
+ }
592
+ message.feePool = distribution_1.FeePool.decode(reader, reader.uint32());
593
+ continue;
594
+ case 3:
595
+ if (tag !== 26) {
596
+ break;
597
+ }
598
+ message.delegatorWithdrawInfos.push(exports.DelegatorWithdrawInfo.decode(reader, reader.uint32()));
599
+ continue;
600
+ case 4:
601
+ if (tag !== 34) {
602
+ break;
603
+ }
604
+ message.previousProposer = reader.string();
605
+ continue;
606
+ case 5:
607
+ if (tag !== 42) {
608
+ break;
609
+ }
610
+ message.outstandingRewards.push(exports.ValidatorOutstandingRewardsRecord.decode(reader, reader.uint32()));
611
+ continue;
612
+ case 6:
613
+ if (tag !== 50) {
614
+ break;
615
+ }
616
+ message.validatorAccumulatedCommissions.push(exports.ValidatorAccumulatedCommissionRecord.decode(reader, reader.uint32()));
617
+ continue;
618
+ case 7:
619
+ if (tag !== 58) {
620
+ break;
621
+ }
622
+ message.validatorHistoricalRewards.push(exports.ValidatorHistoricalRewardsRecord.decode(reader, reader.uint32()));
623
+ continue;
624
+ case 8:
625
+ if (tag !== 66) {
626
+ break;
627
+ }
628
+ message.validatorCurrentRewards.push(exports.ValidatorCurrentRewardsRecord.decode(reader, reader.uint32()));
629
+ continue;
630
+ case 9:
631
+ if (tag !== 74) {
632
+ break;
633
+ }
634
+ message.delegatorStartingInfos.push(exports.DelegatorStartingInfoRecord.decode(reader, reader.uint32()));
635
+ continue;
636
+ case 10:
637
+ if (tag !== 82) {
638
+ break;
639
+ }
640
+ message.validatorSlashEvents.push(exports.ValidatorSlashEventRecord.decode(reader, reader.uint32()));
641
+ continue;
642
+ }
643
+ if ((tag & 7) === 4 || tag === 0) {
644
+ break;
645
+ }
646
+ reader.skipType(tag & 7);
647
+ }
648
+ return message;
649
+ },
650
+ fromJSON(object) {
651
+ return {
652
+ params: isSet(object.params) ? distribution_1.Params.fromJSON(object.params) : undefined,
653
+ feePool: isSet(object.feePool) ? distribution_1.FeePool.fromJSON(object.feePool) : undefined,
654
+ delegatorWithdrawInfos: Array.isArray(object === null || object === void 0 ? void 0 : object.delegatorWithdrawInfos)
655
+ ? object.delegatorWithdrawInfos.map((e) => exports.DelegatorWithdrawInfo.fromJSON(e))
656
+ : [],
657
+ previousProposer: isSet(object.previousProposer) ? String(object.previousProposer) : "",
658
+ outstandingRewards: Array.isArray(object === null || object === void 0 ? void 0 : object.outstandingRewards)
659
+ ? object.outstandingRewards.map((e) => exports.ValidatorOutstandingRewardsRecord.fromJSON(e))
660
+ : [],
661
+ validatorAccumulatedCommissions: Array.isArray(object === null || object === void 0 ? void 0 : object.validatorAccumulatedCommissions)
662
+ ? object.validatorAccumulatedCommissions.map((e) => exports.ValidatorAccumulatedCommissionRecord.fromJSON(e))
663
+ : [],
664
+ validatorHistoricalRewards: Array.isArray(object === null || object === void 0 ? void 0 : object.validatorHistoricalRewards)
665
+ ? object.validatorHistoricalRewards.map((e) => exports.ValidatorHistoricalRewardsRecord.fromJSON(e))
666
+ : [],
667
+ validatorCurrentRewards: Array.isArray(object === null || object === void 0 ? void 0 : object.validatorCurrentRewards)
668
+ ? object.validatorCurrentRewards.map((e) => exports.ValidatorCurrentRewardsRecord.fromJSON(e))
669
+ : [],
670
+ delegatorStartingInfos: Array.isArray(object === null || object === void 0 ? void 0 : object.delegatorStartingInfos)
671
+ ? object.delegatorStartingInfos.map((e) => exports.DelegatorStartingInfoRecord.fromJSON(e))
672
+ : [],
673
+ validatorSlashEvents: Array.isArray(object === null || object === void 0 ? void 0 : object.validatorSlashEvents)
674
+ ? object.validatorSlashEvents.map((e) => exports.ValidatorSlashEventRecord.fromJSON(e))
675
+ : [],
676
+ };
677
+ },
678
+ toJSON(message) {
679
+ const obj = {};
680
+ message.params !== undefined && (obj.params = message.params ? distribution_1.Params.toJSON(message.params) : undefined);
681
+ message.feePool !== undefined && (obj.feePool = message.feePool ? distribution_1.FeePool.toJSON(message.feePool) : undefined);
682
+ if (message.delegatorWithdrawInfos) {
683
+ obj.delegatorWithdrawInfos = message.delegatorWithdrawInfos.map((e) => e ? exports.DelegatorWithdrawInfo.toJSON(e) : undefined);
684
+ }
685
+ else {
686
+ obj.delegatorWithdrawInfos = [];
687
+ }
688
+ message.previousProposer !== undefined && (obj.previousProposer = message.previousProposer);
689
+ if (message.outstandingRewards) {
690
+ obj.outstandingRewards = message.outstandingRewards.map((e) => e ? exports.ValidatorOutstandingRewardsRecord.toJSON(e) : undefined);
691
+ }
692
+ else {
693
+ obj.outstandingRewards = [];
694
+ }
695
+ if (message.validatorAccumulatedCommissions) {
696
+ obj.validatorAccumulatedCommissions = message.validatorAccumulatedCommissions.map((e) => e ? exports.ValidatorAccumulatedCommissionRecord.toJSON(e) : undefined);
697
+ }
698
+ else {
699
+ obj.validatorAccumulatedCommissions = [];
700
+ }
701
+ if (message.validatorHistoricalRewards) {
702
+ obj.validatorHistoricalRewards = message.validatorHistoricalRewards.map((e) => e ? exports.ValidatorHistoricalRewardsRecord.toJSON(e) : undefined);
703
+ }
704
+ else {
705
+ obj.validatorHistoricalRewards = [];
706
+ }
707
+ if (message.validatorCurrentRewards) {
708
+ obj.validatorCurrentRewards = message.validatorCurrentRewards.map((e) => e ? exports.ValidatorCurrentRewardsRecord.toJSON(e) : undefined);
709
+ }
710
+ else {
711
+ obj.validatorCurrentRewards = [];
712
+ }
713
+ if (message.delegatorStartingInfos) {
714
+ obj.delegatorStartingInfos = message.delegatorStartingInfos.map((e) => e ? exports.DelegatorStartingInfoRecord.toJSON(e) : undefined);
715
+ }
716
+ else {
717
+ obj.delegatorStartingInfos = [];
718
+ }
719
+ if (message.validatorSlashEvents) {
720
+ obj.validatorSlashEvents = message.validatorSlashEvents.map((e) => e ? exports.ValidatorSlashEventRecord.toJSON(e) : undefined);
721
+ }
722
+ else {
723
+ obj.validatorSlashEvents = [];
724
+ }
725
+ return obj;
726
+ },
727
+ create(base) {
728
+ return exports.GenesisState.fromPartial(base !== null && base !== void 0 ? base : {});
729
+ },
730
+ fromPartial(object) {
731
+ var _a, _b, _c, _d, _e, _f, _g, _h;
732
+ const message = createBaseGenesisState();
733
+ message.params = (object.params !== undefined && object.params !== null)
734
+ ? distribution_1.Params.fromPartial(object.params)
735
+ : undefined;
736
+ message.feePool = (object.feePool !== undefined && object.feePool !== null)
737
+ ? distribution_1.FeePool.fromPartial(object.feePool)
738
+ : undefined;
739
+ message.delegatorWithdrawInfos = ((_a = object.delegatorWithdrawInfos) === null || _a === void 0 ? void 0 : _a.map((e) => exports.DelegatorWithdrawInfo.fromPartial(e))) ||
740
+ [];
741
+ message.previousProposer = (_b = object.previousProposer) !== null && _b !== void 0 ? _b : "";
742
+ message.outstandingRewards =
743
+ ((_c = object.outstandingRewards) === null || _c === void 0 ? void 0 : _c.map((e) => exports.ValidatorOutstandingRewardsRecord.fromPartial(e))) || [];
744
+ message.validatorAccumulatedCommissions =
745
+ ((_d = object.validatorAccumulatedCommissions) === null || _d === void 0 ? void 0 : _d.map((e) => exports.ValidatorAccumulatedCommissionRecord.fromPartial(e))) || [];
746
+ message.validatorHistoricalRewards =
747
+ ((_e = object.validatorHistoricalRewards) === null || _e === void 0 ? void 0 : _e.map((e) => exports.ValidatorHistoricalRewardsRecord.fromPartial(e))) || [];
748
+ message.validatorCurrentRewards =
749
+ ((_f = object.validatorCurrentRewards) === null || _f === void 0 ? void 0 : _f.map((e) => exports.ValidatorCurrentRewardsRecord.fromPartial(e))) || [];
750
+ message.delegatorStartingInfos =
751
+ ((_g = object.delegatorStartingInfos) === null || _g === void 0 ? void 0 : _g.map((e) => exports.DelegatorStartingInfoRecord.fromPartial(e))) || [];
752
+ message.validatorSlashEvents = ((_h = object.validatorSlashEvents) === null || _h === void 0 ? void 0 : _h.map((e) => exports.ValidatorSlashEventRecord.fromPartial(e))) ||
753
+ [];
754
+ return message;
755
+ },
756
+ };
757
+ var tsProtoGlobalThis = (() => {
758
+ if (typeof globalThis !== "undefined") {
759
+ return globalThis;
760
+ }
761
+ if (typeof self !== "undefined") {
762
+ return self;
763
+ }
764
+ if (typeof window !== "undefined") {
765
+ return window;
766
+ }
767
+ if (typeof global !== "undefined") {
768
+ return global;
769
+ }
770
+ throw "Unable to locate global object";
771
+ })();
772
+ function longToNumber(long) {
773
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
774
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
775
+ }
776
+ return long.toNumber();
777
+ }
778
+ if (minimal_1.default.util.Long !== long_1.default) {
779
+ minimal_1.default.util.Long = long_1.default;
780
+ minimal_1.default.configure();
781
+ }
782
+ function isSet(value) {
783
+ return value !== null && value !== undefined;
784
+ }
785
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb3Ntb3MvZGlzdHJpYnV0aW9uL3YxYmV0YTEvZ2VuZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGlFQUFxQztBQUNyQyxrREFBa0Q7QUFDbEQsaURBUXdCO0FBRVgsUUFBQSxlQUFlLEdBQUcsNkJBQTZCLENBQUM7QUF3RzdELFNBQVMsK0JBQStCO0lBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFWSxRQUFBLHFCQUFxQixHQUFHO0lBQ25DLE1BQU0sQ0FBQyxPQUE4QixFQUFFLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3RSxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssRUFBRSxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMs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