@inco/js 0.1.31 → 0.1.32

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 (89) hide show
  1. package/dist/binary.js +67 -0
  2. package/dist/chain.js +24 -0
  3. package/dist/encryption/encryption.js +98 -0
  4. package/dist/encryption/index.js +2 -0
  5. package/dist/fhevm/fhe-environment.js +8 -0
  6. package/dist/fhevm/fhevm.js +139 -0
  7. package/dist/fhevm/index.js +2 -0
  8. package/dist/fhevm/reencrypt.js +123 -0
  9. package/dist/fhevm/tfhe.js +324 -0
  10. package/dist/fhevm/types.js +26 -0
  11. package/dist/generated/abis/addTwo.js +59 -0
  12. package/dist/generated/abis/inco-fhevm.js +6242 -0
  13. package/dist/generated/abis/index.js +3 -0
  14. package/dist/generated/abis/lightning.js +12489 -0
  15. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +198 -0
  16. package/dist/generated/es/cosmos/msg/v1/msg_pb.js +33 -0
  17. package/dist/generated/es/cosmos_proto/cosmos_pb.js +115 -0
  18. package/dist/generated/es/google/api/annotations_pb.js +27 -0
  19. package/dist/generated/es/google/api/http_pb.js +34 -0
  20. package/dist/generated/es/inco/fhe/v1/events_pb.js +21 -0
  21. package/dist/generated/es/inco/fhe/v1/genesis_pb.js +46 -0
  22. package/dist/generated/es/inco/fhe/v1/query_pb.js +108 -0
  23. package/dist/generated/es/inco/fhe/v1/tx_pb.js +108 -0
  24. package/dist/generated/es/inco/fhe/v1/types_pb.js +133 -0
  25. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +43 -0
  26. package/dist/generated/es/inco/kms/lite/v1/types_pb.js +44 -0
  27. package/dist/generated/es/inco/preflight/v1/genesis_pb.js +20 -0
  28. package/dist/generated/es/inco/preflight/v1/query_pb.js +38 -0
  29. package/dist/generated/es/inco/preflight/v1/tx_pb.js +48 -0
  30. package/dist/generated/es/inco/preflight/v1/types_pb.js +34 -0
  31. package/dist/generated/es/kms/base_pb.js +238 -0
  32. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +571 -0
  33. package/dist/generated/fhe-environments.js +15 -0
  34. package/dist/generated/lightning.js +399 -0
  35. package/dist/generated/local-node.js +8 -0
  36. package/dist/generated/ts/amino/amino.js +8 -0
  37. package/dist/generated/ts/cometbft/abci/v1/types.js +5063 -0
  38. package/dist/generated/ts/cometbft/crypto/v1/keys.js +105 -0
  39. package/dist/generated/ts/cometbft/crypto/v1/proof.js +430 -0
  40. package/dist/generated/ts/cometbft/types/v1/params.js +713 -0
  41. package/dist/generated/ts/cometbft/types/v1/validator.js +353 -0
  42. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +218 -0
  43. package/dist/generated/ts/cosmos/msg/v1/msg.js +8 -0
  44. package/dist/generated/ts/cosmos_proto/cosmos.js +211 -0
  45. package/dist/generated/ts/gogoproto/gogo.js +8 -0
  46. package/dist/generated/ts/google/api/annotations.js +8 -0
  47. package/dist/generated/ts/google/api/http.js +353 -0
  48. package/dist/generated/ts/google/protobuf/descriptor.js +5070 -0
  49. package/dist/generated/ts/google/protobuf/duration.js +90 -0
  50. package/dist/generated/ts/google/protobuf/timestamp.js +90 -0
  51. package/dist/generated/ts/google/protobuf/wrappers.js +506 -0
  52. package/dist/generated/ts/inco/abci/v1/types.js +70 -0
  53. package/dist/generated/ts/inco/fhe/module/v1/module.js +63 -0
  54. package/dist/generated/ts/inco/fhe/v1/events.js +187 -0
  55. package/dist/generated/ts/inco/fhe/v1/genesis.js +711 -0
  56. package/dist/generated/ts/inco/fhe/v1/query.js +1391 -0
  57. package/dist/generated/ts/inco/fhe/v1/tx.js +1233 -0
  58. package/dist/generated/ts/inco/fhe/v1/types.js +985 -0
  59. package/dist/generated/ts/inco/originchain/module/v1/module.js +63 -0
  60. package/dist/generated/ts/inco/originchain/v1/abci.js +328 -0
  61. package/dist/generated/ts/inco/originchain/v1/events.js +213 -0
  62. package/dist/generated/ts/inco/originchain/v1/genesis.js +66 -0
  63. package/dist/generated/ts/inco/originchain/v1/query.js +277 -0
  64. package/dist/generated/ts/inco/originchain/v1/tx.js +137 -0
  65. package/dist/generated/ts/inco/originchain/v1/types.js +200 -0
  66. package/dist/generated/ts/inco/preflight/module/v1/module.js +63 -0
  67. package/dist/generated/ts/inco/preflight/v1/genesis.js +182 -0
  68. package/dist/generated/ts/inco/preflight/v1/query.js +256 -0
  69. package/dist/generated/ts/inco/preflight/v1/tx.js +445 -0
  70. package/dist/generated/ts/inco/preflight/v1/types.js +395 -0
  71. package/dist/handle.js +94 -0
  72. package/dist/index.js +6 -0
  73. package/dist/l1/client.js +93 -0
  74. package/dist/l1/index.js +3 -0
  75. package/dist/l1/preflight.js +39 -0
  76. package/dist/lite/deployments.js +17 -0
  77. package/dist/lite/ecies.js +124 -0
  78. package/dist/lite/hadu.js +36 -0
  79. package/dist/lite/index.js +7 -0
  80. package/dist/lite/lightning.js +179 -0
  81. package/dist/lite/reencrypt.js +129 -0
  82. package/dist/local/index.js +2 -0
  83. package/dist/local/local-node.js +24 -0
  84. package/dist/reencryption/eip712.js +81 -0
  85. package/dist/reencryption/index.js +3 -0
  86. package/dist/reencryption/types.js +2 -0
  87. package/dist/schema.js +15 -0
  88. package/dist/viem.js +8 -0
  89. package/package.json +11 -48
@@ -0,0 +1,713 @@
1
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
+ // versions:
3
+ // protoc-gen-ts_proto v2.7.0
4
+ // protoc unknown
5
+ // source: cometbft/types/v1/params.proto
6
+ /* eslint-disable */
7
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
8
+ import { Duration } from "../../../google/protobuf/duration";
9
+ import { Int64Value } from "../../../google/protobuf/wrappers";
10
+ export const protobufPackage = "cometbft.types.v1";
11
+ function createBaseConsensusParams() {
12
+ return {
13
+ block: undefined,
14
+ evidence: undefined,
15
+ validator: undefined,
16
+ version: undefined,
17
+ abci: undefined,
18
+ synchrony: undefined,
19
+ feature: undefined,
20
+ };
21
+ }
22
+ export const ConsensusParams = {
23
+ encode(message, writer = new BinaryWriter()) {
24
+ if (message.block !== undefined) {
25
+ BlockParams.encode(message.block, writer.uint32(10).fork()).join();
26
+ }
27
+ if (message.evidence !== undefined) {
28
+ EvidenceParams.encode(message.evidence, writer.uint32(18).fork()).join();
29
+ }
30
+ if (message.validator !== undefined) {
31
+ ValidatorParams.encode(message.validator, writer.uint32(26).fork()).join();
32
+ }
33
+ if (message.version !== undefined) {
34
+ VersionParams.encode(message.version, writer.uint32(34).fork()).join();
35
+ }
36
+ if (message.abci !== undefined) {
37
+ ABCIParams.encode(message.abci, writer.uint32(42).fork()).join();
38
+ }
39
+ if (message.synchrony !== undefined) {
40
+ SynchronyParams.encode(message.synchrony, writer.uint32(50).fork()).join();
41
+ }
42
+ if (message.feature !== undefined) {
43
+ FeatureParams.encode(message.feature, writer.uint32(58).fork()).join();
44
+ }
45
+ return writer;
46
+ },
47
+ decode(input, length) {
48
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
49
+ let end = length === undefined ? reader.len : reader.pos + length;
50
+ const message = createBaseConsensusParams();
51
+ while (reader.pos < end) {
52
+ const tag = reader.uint32();
53
+ switch (tag >>> 3) {
54
+ case 1: {
55
+ if (tag !== 10) {
56
+ break;
57
+ }
58
+ message.block = BlockParams.decode(reader, reader.uint32());
59
+ continue;
60
+ }
61
+ case 2: {
62
+ if (tag !== 18) {
63
+ break;
64
+ }
65
+ message.evidence = EvidenceParams.decode(reader, reader.uint32());
66
+ continue;
67
+ }
68
+ case 3: {
69
+ if (tag !== 26) {
70
+ break;
71
+ }
72
+ message.validator = ValidatorParams.decode(reader, reader.uint32());
73
+ continue;
74
+ }
75
+ case 4: {
76
+ if (tag !== 34) {
77
+ break;
78
+ }
79
+ message.version = VersionParams.decode(reader, reader.uint32());
80
+ continue;
81
+ }
82
+ case 5: {
83
+ if (tag !== 42) {
84
+ break;
85
+ }
86
+ message.abci = ABCIParams.decode(reader, reader.uint32());
87
+ continue;
88
+ }
89
+ case 6: {
90
+ if (tag !== 50) {
91
+ break;
92
+ }
93
+ message.synchrony = SynchronyParams.decode(reader, reader.uint32());
94
+ continue;
95
+ }
96
+ case 7: {
97
+ if (tag !== 58) {
98
+ break;
99
+ }
100
+ message.feature = FeatureParams.decode(reader, reader.uint32());
101
+ continue;
102
+ }
103
+ }
104
+ if ((tag & 7) === 4 || tag === 0) {
105
+ break;
106
+ }
107
+ reader.skip(tag & 7);
108
+ }
109
+ return message;
110
+ },
111
+ fromJSON(object) {
112
+ return {
113
+ block: isSet(object.block) ? BlockParams.fromJSON(object.block) : undefined,
114
+ evidence: isSet(object.evidence) ? EvidenceParams.fromJSON(object.evidence) : undefined,
115
+ validator: isSet(object.validator) ? ValidatorParams.fromJSON(object.validator) : undefined,
116
+ version: isSet(object.version) ? VersionParams.fromJSON(object.version) : undefined,
117
+ abci: isSet(object.abci) ? ABCIParams.fromJSON(object.abci) : undefined,
118
+ synchrony: isSet(object.synchrony) ? SynchronyParams.fromJSON(object.synchrony) : undefined,
119
+ feature: isSet(object.feature) ? FeatureParams.fromJSON(object.feature) : undefined,
120
+ };
121
+ },
122
+ toJSON(message) {
123
+ const obj = {};
124
+ if (message.block !== undefined) {
125
+ obj.block = BlockParams.toJSON(message.block);
126
+ }
127
+ if (message.evidence !== undefined) {
128
+ obj.evidence = EvidenceParams.toJSON(message.evidence);
129
+ }
130
+ if (message.validator !== undefined) {
131
+ obj.validator = ValidatorParams.toJSON(message.validator);
132
+ }
133
+ if (message.version !== undefined) {
134
+ obj.version = VersionParams.toJSON(message.version);
135
+ }
136
+ if (message.abci !== undefined) {
137
+ obj.abci = ABCIParams.toJSON(message.abci);
138
+ }
139
+ if (message.synchrony !== undefined) {
140
+ obj.synchrony = SynchronyParams.toJSON(message.synchrony);
141
+ }
142
+ if (message.feature !== undefined) {
143
+ obj.feature = FeatureParams.toJSON(message.feature);
144
+ }
145
+ return obj;
146
+ },
147
+ create(base) {
148
+ return ConsensusParams.fromPartial(base ?? {});
149
+ },
150
+ fromPartial(object) {
151
+ const message = createBaseConsensusParams();
152
+ message.block = (object.block !== undefined && object.block !== null)
153
+ ? BlockParams.fromPartial(object.block)
154
+ : undefined;
155
+ message.evidence = (object.evidence !== undefined && object.evidence !== null)
156
+ ? EvidenceParams.fromPartial(object.evidence)
157
+ : undefined;
158
+ message.validator = (object.validator !== undefined && object.validator !== null)
159
+ ? ValidatorParams.fromPartial(object.validator)
160
+ : undefined;
161
+ message.version = (object.version !== undefined && object.version !== null)
162
+ ? VersionParams.fromPartial(object.version)
163
+ : undefined;
164
+ message.abci = (object.abci !== undefined && object.abci !== null)
165
+ ? ABCIParams.fromPartial(object.abci)
166
+ : undefined;
167
+ message.synchrony = (object.synchrony !== undefined && object.synchrony !== null)
168
+ ? SynchronyParams.fromPartial(object.synchrony)
169
+ : undefined;
170
+ message.feature = (object.feature !== undefined && object.feature !== null)
171
+ ? FeatureParams.fromPartial(object.feature)
172
+ : undefined;
173
+ return message;
174
+ },
175
+ };
176
+ function createBaseBlockParams() {
177
+ return { maxBytes: 0, maxGas: 0 };
178
+ }
179
+ export const BlockParams = {
180
+ encode(message, writer = new BinaryWriter()) {
181
+ if (message.maxBytes !== 0) {
182
+ writer.uint32(8).int64(message.maxBytes);
183
+ }
184
+ if (message.maxGas !== 0) {
185
+ writer.uint32(16).int64(message.maxGas);
186
+ }
187
+ return writer;
188
+ },
189
+ decode(input, length) {
190
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
191
+ let end = length === undefined ? reader.len : reader.pos + length;
192
+ const message = createBaseBlockParams();
193
+ while (reader.pos < end) {
194
+ const tag = reader.uint32();
195
+ switch (tag >>> 3) {
196
+ case 1: {
197
+ if (tag !== 8) {
198
+ break;
199
+ }
200
+ message.maxBytes = longToNumber(reader.int64());
201
+ continue;
202
+ }
203
+ case 2: {
204
+ if (tag !== 16) {
205
+ break;
206
+ }
207
+ message.maxGas = longToNumber(reader.int64());
208
+ continue;
209
+ }
210
+ }
211
+ if ((tag & 7) === 4 || tag === 0) {
212
+ break;
213
+ }
214
+ reader.skip(tag & 7);
215
+ }
216
+ return message;
217
+ },
218
+ fromJSON(object) {
219
+ return {
220
+ maxBytes: isSet(object.maxBytes) ? globalThis.Number(object.maxBytes) : 0,
221
+ maxGas: isSet(object.maxGas) ? globalThis.Number(object.maxGas) : 0,
222
+ };
223
+ },
224
+ toJSON(message) {
225
+ const obj = {};
226
+ if (message.maxBytes !== 0) {
227
+ obj.maxBytes = Math.round(message.maxBytes);
228
+ }
229
+ if (message.maxGas !== 0) {
230
+ obj.maxGas = Math.round(message.maxGas);
231
+ }
232
+ return obj;
233
+ },
234
+ create(base) {
235
+ return BlockParams.fromPartial(base ?? {});
236
+ },
237
+ fromPartial(object) {
238
+ const message = createBaseBlockParams();
239
+ message.maxBytes = object.maxBytes ?? 0;
240
+ message.maxGas = object.maxGas ?? 0;
241
+ return message;
242
+ },
243
+ };
244
+ function createBaseEvidenceParams() {
245
+ return { maxAgeNumBlocks: 0, maxAgeDuration: undefined, maxBytes: 0 };
246
+ }
247
+ export const EvidenceParams = {
248
+ encode(message, writer = new BinaryWriter()) {
249
+ if (message.maxAgeNumBlocks !== 0) {
250
+ writer.uint32(8).int64(message.maxAgeNumBlocks);
251
+ }
252
+ if (message.maxAgeDuration !== undefined) {
253
+ Duration.encode(message.maxAgeDuration, writer.uint32(18).fork()).join();
254
+ }
255
+ if (message.maxBytes !== 0) {
256
+ writer.uint32(24).int64(message.maxBytes);
257
+ }
258
+ return writer;
259
+ },
260
+ decode(input, length) {
261
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
262
+ let end = length === undefined ? reader.len : reader.pos + length;
263
+ const message = createBaseEvidenceParams();
264
+ while (reader.pos < end) {
265
+ const tag = reader.uint32();
266
+ switch (tag >>> 3) {
267
+ case 1: {
268
+ if (tag !== 8) {
269
+ break;
270
+ }
271
+ message.maxAgeNumBlocks = longToNumber(reader.int64());
272
+ continue;
273
+ }
274
+ case 2: {
275
+ if (tag !== 18) {
276
+ break;
277
+ }
278
+ message.maxAgeDuration = Duration.decode(reader, reader.uint32());
279
+ continue;
280
+ }
281
+ case 3: {
282
+ if (tag !== 24) {
283
+ break;
284
+ }
285
+ message.maxBytes = longToNumber(reader.int64());
286
+ continue;
287
+ }
288
+ }
289
+ if ((tag & 7) === 4 || tag === 0) {
290
+ break;
291
+ }
292
+ reader.skip(tag & 7);
293
+ }
294
+ return message;
295
+ },
296
+ fromJSON(object) {
297
+ return {
298
+ maxAgeNumBlocks: isSet(object.maxAgeNumBlocks) ? globalThis.Number(object.maxAgeNumBlocks) : 0,
299
+ maxAgeDuration: isSet(object.maxAgeDuration) ? Duration.fromJSON(object.maxAgeDuration) : undefined,
300
+ maxBytes: isSet(object.maxBytes) ? globalThis.Number(object.maxBytes) : 0,
301
+ };
302
+ },
303
+ toJSON(message) {
304
+ const obj = {};
305
+ if (message.maxAgeNumBlocks !== 0) {
306
+ obj.maxAgeNumBlocks = Math.round(message.maxAgeNumBlocks);
307
+ }
308
+ if (message.maxAgeDuration !== undefined) {
309
+ obj.maxAgeDuration = Duration.toJSON(message.maxAgeDuration);
310
+ }
311
+ if (message.maxBytes !== 0) {
312
+ obj.maxBytes = Math.round(message.maxBytes);
313
+ }
314
+ return obj;
315
+ },
316
+ create(base) {
317
+ return EvidenceParams.fromPartial(base ?? {});
318
+ },
319
+ fromPartial(object) {
320
+ const message = createBaseEvidenceParams();
321
+ message.maxAgeNumBlocks = object.maxAgeNumBlocks ?? 0;
322
+ message.maxAgeDuration = (object.maxAgeDuration !== undefined && object.maxAgeDuration !== null)
323
+ ? Duration.fromPartial(object.maxAgeDuration)
324
+ : undefined;
325
+ message.maxBytes = object.maxBytes ?? 0;
326
+ return message;
327
+ },
328
+ };
329
+ function createBaseValidatorParams() {
330
+ return { pubKeyTypes: [] };
331
+ }
332
+ export const ValidatorParams = {
333
+ encode(message, writer = new BinaryWriter()) {
334
+ for (const v of message.pubKeyTypes) {
335
+ writer.uint32(10).string(v);
336
+ }
337
+ return writer;
338
+ },
339
+ decode(input, length) {
340
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
341
+ let end = length === undefined ? reader.len : reader.pos + length;
342
+ const message = createBaseValidatorParams();
343
+ while (reader.pos < end) {
344
+ const tag = reader.uint32();
345
+ switch (tag >>> 3) {
346
+ case 1: {
347
+ if (tag !== 10) {
348
+ break;
349
+ }
350
+ message.pubKeyTypes.push(reader.string());
351
+ continue;
352
+ }
353
+ }
354
+ if ((tag & 7) === 4 || tag === 0) {
355
+ break;
356
+ }
357
+ reader.skip(tag & 7);
358
+ }
359
+ return message;
360
+ },
361
+ fromJSON(object) {
362
+ return {
363
+ pubKeyTypes: globalThis.Array.isArray(object?.pubKeyTypes)
364
+ ? object.pubKeyTypes.map((e) => globalThis.String(e))
365
+ : [],
366
+ };
367
+ },
368
+ toJSON(message) {
369
+ const obj = {};
370
+ if (message.pubKeyTypes?.length) {
371
+ obj.pubKeyTypes = message.pubKeyTypes;
372
+ }
373
+ return obj;
374
+ },
375
+ create(base) {
376
+ return ValidatorParams.fromPartial(base ?? {});
377
+ },
378
+ fromPartial(object) {
379
+ const message = createBaseValidatorParams();
380
+ message.pubKeyTypes = object.pubKeyTypes?.map((e) => e) || [];
381
+ return message;
382
+ },
383
+ };
384
+ function createBaseVersionParams() {
385
+ return { app: 0 };
386
+ }
387
+ export const VersionParams = {
388
+ encode(message, writer = new BinaryWriter()) {
389
+ if (message.app !== 0) {
390
+ writer.uint32(8).uint64(message.app);
391
+ }
392
+ return writer;
393
+ },
394
+ decode(input, length) {
395
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
396
+ let end = length === undefined ? reader.len : reader.pos + length;
397
+ const message = createBaseVersionParams();
398
+ while (reader.pos < end) {
399
+ const tag = reader.uint32();
400
+ switch (tag >>> 3) {
401
+ case 1: {
402
+ if (tag !== 8) {
403
+ break;
404
+ }
405
+ message.app = longToNumber(reader.uint64());
406
+ continue;
407
+ }
408
+ }
409
+ if ((tag & 7) === 4 || tag === 0) {
410
+ break;
411
+ }
412
+ reader.skip(tag & 7);
413
+ }
414
+ return message;
415
+ },
416
+ fromJSON(object) {
417
+ return { app: isSet(object.app) ? globalThis.Number(object.app) : 0 };
418
+ },
419
+ toJSON(message) {
420
+ const obj = {};
421
+ if (message.app !== 0) {
422
+ obj.app = Math.round(message.app);
423
+ }
424
+ return obj;
425
+ },
426
+ create(base) {
427
+ return VersionParams.fromPartial(base ?? {});
428
+ },
429
+ fromPartial(object) {
430
+ const message = createBaseVersionParams();
431
+ message.app = object.app ?? 0;
432
+ return message;
433
+ },
434
+ };
435
+ function createBaseHashedParams() {
436
+ return { blockMaxBytes: 0, blockMaxGas: 0 };
437
+ }
438
+ export const HashedParams = {
439
+ encode(message, writer = new BinaryWriter()) {
440
+ if (message.blockMaxBytes !== 0) {
441
+ writer.uint32(8).int64(message.blockMaxBytes);
442
+ }
443
+ if (message.blockMaxGas !== 0) {
444
+ writer.uint32(16).int64(message.blockMaxGas);
445
+ }
446
+ return writer;
447
+ },
448
+ decode(input, length) {
449
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
450
+ let end = length === undefined ? reader.len : reader.pos + length;
451
+ const message = createBaseHashedParams();
452
+ while (reader.pos < end) {
453
+ const tag = reader.uint32();
454
+ switch (tag >>> 3) {
455
+ case 1: {
456
+ if (tag !== 8) {
457
+ break;
458
+ }
459
+ message.blockMaxBytes = longToNumber(reader.int64());
460
+ continue;
461
+ }
462
+ case 2: {
463
+ if (tag !== 16) {
464
+ break;
465
+ }
466
+ message.blockMaxGas = longToNumber(reader.int64());
467
+ continue;
468
+ }
469
+ }
470
+ if ((tag & 7) === 4 || tag === 0) {
471
+ break;
472
+ }
473
+ reader.skip(tag & 7);
474
+ }
475
+ return message;
476
+ },
477
+ fromJSON(object) {
478
+ return {
479
+ blockMaxBytes: isSet(object.blockMaxBytes) ? globalThis.Number(object.blockMaxBytes) : 0,
480
+ blockMaxGas: isSet(object.blockMaxGas) ? globalThis.Number(object.blockMaxGas) : 0,
481
+ };
482
+ },
483
+ toJSON(message) {
484
+ const obj = {};
485
+ if (message.blockMaxBytes !== 0) {
486
+ obj.blockMaxBytes = Math.round(message.blockMaxBytes);
487
+ }
488
+ if (message.blockMaxGas !== 0) {
489
+ obj.blockMaxGas = Math.round(message.blockMaxGas);
490
+ }
491
+ return obj;
492
+ },
493
+ create(base) {
494
+ return HashedParams.fromPartial(base ?? {});
495
+ },
496
+ fromPartial(object) {
497
+ const message = createBaseHashedParams();
498
+ message.blockMaxBytes = object.blockMaxBytes ?? 0;
499
+ message.blockMaxGas = object.blockMaxGas ?? 0;
500
+ return message;
501
+ },
502
+ };
503
+ function createBaseSynchronyParams() {
504
+ return { precision: undefined, messageDelay: undefined };
505
+ }
506
+ export const SynchronyParams = {
507
+ encode(message, writer = new BinaryWriter()) {
508
+ if (message.precision !== undefined) {
509
+ Duration.encode(message.precision, writer.uint32(10).fork()).join();
510
+ }
511
+ if (message.messageDelay !== undefined) {
512
+ Duration.encode(message.messageDelay, writer.uint32(18).fork()).join();
513
+ }
514
+ return writer;
515
+ },
516
+ decode(input, length) {
517
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
518
+ let end = length === undefined ? reader.len : reader.pos + length;
519
+ const message = createBaseSynchronyParams();
520
+ while (reader.pos < end) {
521
+ const tag = reader.uint32();
522
+ switch (tag >>> 3) {
523
+ case 1: {
524
+ if (tag !== 10) {
525
+ break;
526
+ }
527
+ message.precision = Duration.decode(reader, reader.uint32());
528
+ continue;
529
+ }
530
+ case 2: {
531
+ if (tag !== 18) {
532
+ break;
533
+ }
534
+ message.messageDelay = Duration.decode(reader, reader.uint32());
535
+ continue;
536
+ }
537
+ }
538
+ if ((tag & 7) === 4 || tag === 0) {
539
+ break;
540
+ }
541
+ reader.skip(tag & 7);
542
+ }
543
+ return message;
544
+ },
545
+ fromJSON(object) {
546
+ return {
547
+ precision: isSet(object.precision) ? Duration.fromJSON(object.precision) : undefined,
548
+ messageDelay: isSet(object.messageDelay) ? Duration.fromJSON(object.messageDelay) : undefined,
549
+ };
550
+ },
551
+ toJSON(message) {
552
+ const obj = {};
553
+ if (message.precision !== undefined) {
554
+ obj.precision = Duration.toJSON(message.precision);
555
+ }
556
+ if (message.messageDelay !== undefined) {
557
+ obj.messageDelay = Duration.toJSON(message.messageDelay);
558
+ }
559
+ return obj;
560
+ },
561
+ create(base) {
562
+ return SynchronyParams.fromPartial(base ?? {});
563
+ },
564
+ fromPartial(object) {
565
+ const message = createBaseSynchronyParams();
566
+ message.precision = (object.precision !== undefined && object.precision !== null)
567
+ ? Duration.fromPartial(object.precision)
568
+ : undefined;
569
+ message.messageDelay = (object.messageDelay !== undefined && object.messageDelay !== null)
570
+ ? Duration.fromPartial(object.messageDelay)
571
+ : undefined;
572
+ return message;
573
+ },
574
+ };
575
+ function createBaseFeatureParams() {
576
+ return { voteExtensionsEnableHeight: undefined, pbtsEnableHeight: undefined };
577
+ }
578
+ export const FeatureParams = {
579
+ encode(message, writer = new BinaryWriter()) {
580
+ if (message.voteExtensionsEnableHeight !== undefined) {
581
+ Int64Value.encode({ value: message.voteExtensionsEnableHeight }, writer.uint32(10).fork()).join();
582
+ }
583
+ if (message.pbtsEnableHeight !== undefined) {
584
+ Int64Value.encode({ value: message.pbtsEnableHeight }, writer.uint32(18).fork()).join();
585
+ }
586
+ return writer;
587
+ },
588
+ decode(input, length) {
589
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
590
+ let end = length === undefined ? reader.len : reader.pos + length;
591
+ const message = createBaseFeatureParams();
592
+ while (reader.pos < end) {
593
+ const tag = reader.uint32();
594
+ switch (tag >>> 3) {
595
+ case 1: {
596
+ if (tag !== 10) {
597
+ break;
598
+ }
599
+ message.voteExtensionsEnableHeight = Int64Value.decode(reader, reader.uint32()).value;
600
+ continue;
601
+ }
602
+ case 2: {
603
+ if (tag !== 18) {
604
+ break;
605
+ }
606
+ message.pbtsEnableHeight = Int64Value.decode(reader, reader.uint32()).value;
607
+ continue;
608
+ }
609
+ }
610
+ if ((tag & 7) === 4 || tag === 0) {
611
+ break;
612
+ }
613
+ reader.skip(tag & 7);
614
+ }
615
+ return message;
616
+ },
617
+ fromJSON(object) {
618
+ return {
619
+ voteExtensionsEnableHeight: isSet(object.voteExtensionsEnableHeight)
620
+ ? Number(object.voteExtensionsEnableHeight)
621
+ : undefined,
622
+ pbtsEnableHeight: isSet(object.pbtsEnableHeight) ? Number(object.pbtsEnableHeight) : undefined,
623
+ };
624
+ },
625
+ toJSON(message) {
626
+ const obj = {};
627
+ if (message.voteExtensionsEnableHeight !== undefined) {
628
+ obj.voteExtensionsEnableHeight = message.voteExtensionsEnableHeight;
629
+ }
630
+ if (message.pbtsEnableHeight !== undefined) {
631
+ obj.pbtsEnableHeight = message.pbtsEnableHeight;
632
+ }
633
+ return obj;
634
+ },
635
+ create(base) {
636
+ return FeatureParams.fromPartial(base ?? {});
637
+ },
638
+ fromPartial(object) {
639
+ const message = createBaseFeatureParams();
640
+ message.voteExtensionsEnableHeight = object.voteExtensionsEnableHeight ?? undefined;
641
+ message.pbtsEnableHeight = object.pbtsEnableHeight ?? undefined;
642
+ return message;
643
+ },
644
+ };
645
+ function createBaseABCIParams() {
646
+ return { voteExtensionsEnableHeight: 0 };
647
+ }
648
+ export const ABCIParams = {
649
+ encode(message, writer = new BinaryWriter()) {
650
+ if (message.voteExtensionsEnableHeight !== 0) {
651
+ writer.uint32(8).int64(message.voteExtensionsEnableHeight);
652
+ }
653
+ return writer;
654
+ },
655
+ decode(input, length) {
656
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
657
+ let end = length === undefined ? reader.len : reader.pos + length;
658
+ const message = createBaseABCIParams();
659
+ while (reader.pos < end) {
660
+ const tag = reader.uint32();
661
+ switch (tag >>> 3) {
662
+ case 1: {
663
+ if (tag !== 8) {
664
+ break;
665
+ }
666
+ message.voteExtensionsEnableHeight = longToNumber(reader.int64());
667
+ continue;
668
+ }
669
+ }
670
+ if ((tag & 7) === 4 || tag === 0) {
671
+ break;
672
+ }
673
+ reader.skip(tag & 7);
674
+ }
675
+ return message;
676
+ },
677
+ fromJSON(object) {
678
+ return {
679
+ voteExtensionsEnableHeight: isSet(object.voteExtensionsEnableHeight)
680
+ ? globalThis.Number(object.voteExtensionsEnableHeight)
681
+ : 0,
682
+ };
683
+ },
684
+ toJSON(message) {
685
+ const obj = {};
686
+ if (message.voteExtensionsEnableHeight !== 0) {
687
+ obj.voteExtensionsEnableHeight = Math.round(message.voteExtensionsEnableHeight);
688
+ }
689
+ return obj;
690
+ },
691
+ create(base) {
692
+ return ABCIParams.fromPartial(base ?? {});
693
+ },
694
+ fromPartial(object) {
695
+ const message = createBaseABCIParams();
696
+ message.voteExtensionsEnableHeight = object.voteExtensionsEnableHeight ?? 0;
697
+ return message;
698
+ },
699
+ };
700
+ function longToNumber(int64) {
701
+ const num = globalThis.Number(int64.toString());
702
+ if (num > globalThis.Number.MAX_SAFE_INTEGER) {
703
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
704
+ }
705
+ if (num < globalThis.Number.MIN_SAFE_INTEGER) {
706
+ throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
707
+ }
708
+ return num;
709
+ }
710
+ function isSet(value) {
711
+ return value !== null && value !== undefined;
712
+ }
713
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC90cy9jb21ldGJmdC90eXBlcy92MS9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixnQ0FBZ0M7QUFDaEMsaUNBQWlDO0FBQ2pDLHlDQUF5QztBQUV6QyxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQXVLbkQsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTztRQUNMLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLFNBQVM7UUFDcEIsT0FBTyxFQUFFLFNBQVM7S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWdDO0lBQzFELE1BQU0sQ0FBQyxPQUF3QixFQUFFLFNBQXVCLElBQUksWUFBWSxFQUFFO1FBQ3hFLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVB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