coreum-js 2.5.4 → 2.5.7

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 (86) hide show
  1. package/README.md +8 -7
  2. package/dist/main/client/index.js +4 -4
  3. package/dist/main/coreum/asset/nft/v1/nft.d.ts +1 -1
  4. package/dist/main/coreum/asset/nft/v1/nft.js +2 -2
  5. package/dist/main/coreum/asset/nft/v1/query.d.ts +2 -2
  6. package/dist/main/coreum/asset/nft/v1/tx.d.ts +1 -1
  7. package/dist/main/coreum/asset/nft/v1/tx.js +2 -2
  8. package/dist/main/coreum/index.d.ts +2 -2
  9. package/dist/main/coreum/nft/v1beta1/genesis.d.ts +6 -6
  10. package/dist/main/coreum/nft/v1beta1/nft.d.ts +1 -1
  11. package/dist/main/coreum/nft/v1beta1/nft.js +2 -2
  12. package/dist/main/coreum/nft/v1beta1/query.d.ts +8 -8
  13. package/dist/main/cosmos/base/query/v1beta1/pagination.js +29 -11
  14. package/dist/main/{coreum/google → google}/api/annotations.js +1 -1
  15. package/dist/main/google/api/http.js +329 -0
  16. package/dist/main/google/protobuf/any.js +122 -0
  17. package/dist/main/types/core.d.ts +2 -0
  18. package/dist/main/types/core.js +1 -1
  19. package/dist/main/wasm/v1/authz.d.ts +570 -0
  20. package/dist/main/wasm/v1/authz.js +603 -0
  21. package/dist/main/wasm/v1/extensions/wasm.d.ts +17 -0
  22. package/dist/main/wasm/v1/extensions/wasm.js +48 -0
  23. package/dist/main/wasm/v1/genesis.d.ts +1059 -0
  24. package/dist/main/wasm/v1/genesis.js +427 -0
  25. package/dist/main/wasm/v1/ibc.d.ts +102 -0
  26. package/dist/main/wasm/v1/ibc.js +250 -0
  27. package/dist/main/wasm/v1/index.d.ts +308 -0
  28. package/dist/main/wasm/v1/index.js +87 -0
  29. package/dist/main/wasm/v1/pagination.d.ts +128 -0
  30. package/dist/main/wasm/v1/pagination.js +228 -0
  31. package/dist/main/wasm/v1/proposal.d.ts +1023 -0
  32. package/dist/main/wasm/v1/proposal.js +1638 -0
  33. package/dist/main/wasm/v1/query.d.ts +1443 -0
  34. package/dist/main/wasm/v1/query.js +1699 -0
  35. package/dist/main/wasm/v1/tx.d.ts +1167 -0
  36. package/dist/main/wasm/v1/tx.js +2088 -0
  37. package/dist/main/wasm/v1/types.d.ts +417 -0
  38. package/dist/main/wasm/v1/types.js +856 -0
  39. package/dist/module/client/index.js +4 -4
  40. package/dist/module/coreum/asset/nft/v1/nft.d.ts +1 -1
  41. package/dist/module/coreum/asset/nft/v1/nft.js +2 -2
  42. package/dist/module/coreum/asset/nft/v1/query.d.ts +2 -2
  43. package/dist/module/coreum/asset/nft/v1/tx.d.ts +1 -1
  44. package/dist/module/coreum/asset/nft/v1/tx.js +2 -2
  45. package/dist/module/coreum/index.d.ts +2 -2
  46. package/dist/module/coreum/nft/v1beta1/genesis.d.ts +6 -6
  47. package/dist/module/coreum/nft/v1beta1/nft.d.ts +1 -1
  48. package/dist/module/coreum/nft/v1beta1/nft.js +2 -2
  49. package/dist/module/coreum/nft/v1beta1/query.d.ts +8 -8
  50. package/dist/module/cosmos/base/query/v1beta1/pagination.js +29 -11
  51. package/dist/module/{coreum/google → google}/api/annotations.js +1 -1
  52. package/dist/module/google/api/http.js +320 -0
  53. package/dist/module/google/protobuf/any.js +115 -0
  54. package/dist/module/types/core.d.ts +2 -0
  55. package/dist/module/types/core.js +1 -1
  56. package/dist/module/wasm/v1/authz.d.ts +570 -0
  57. package/dist/module/wasm/v1/authz.js +589 -0
  58. package/dist/module/wasm/v1/extensions/wasm.d.ts +17 -0
  59. package/dist/module/wasm/v1/extensions/wasm.js +44 -0
  60. package/dist/module/wasm/v1/genesis.d.ts +1059 -0
  61. package/dist/module/wasm/v1/genesis.js +417 -0
  62. package/dist/module/wasm/v1/ibc.d.ts +102 -0
  63. package/dist/module/wasm/v1/ibc.js +241 -0
  64. package/dist/module/wasm/v1/index.d.ts +308 -0
  65. package/dist/module/wasm/v1/index.js +84 -0
  66. package/dist/module/wasm/v1/pagination.d.ts +128 -0
  67. package/dist/module/wasm/v1/pagination.js +220 -0
  68. package/dist/module/wasm/v1/proposal.d.ts +1023 -0
  69. package/dist/module/wasm/v1/proposal.js +1619 -0
  70. package/dist/module/wasm/v1/query.d.ts +1443 -0
  71. package/dist/module/wasm/v1/query.js +1675 -0
  72. package/dist/module/wasm/v1/tx.d.ts +1167 -0
  73. package/dist/module/wasm/v1/tx.js +2063 -0
  74. package/dist/module/wasm/v1/types.d.ts +417 -0
  75. package/dist/module/wasm/v1/types.js +838 -0
  76. package/package.json +2 -1
  77. package/dist/main/coreum/google/api/http.js +0 -329
  78. package/dist/main/coreum/google/protobuf/any.js +0 -122
  79. package/dist/module/coreum/google/api/http.js +0 -320
  80. package/dist/module/coreum/google/protobuf/any.js +0 -115
  81. /package/dist/main/{coreum/google → google}/api/annotations.d.ts +0 -0
  82. /package/dist/main/{coreum/google → google}/api/http.d.ts +0 -0
  83. /package/dist/main/{coreum/google → google}/protobuf/any.d.ts +0 -0
  84. /package/dist/module/{coreum/google → google}/api/annotations.d.ts +0 -0
  85. /package/dist/module/{coreum/google → google}/api/http.d.ts +0 -0
  86. /package/dist/module/{coreum/google → google}/protobuf/any.d.ts +0 -0
@@ -0,0 +1,838 @@
1
+ /* eslint-disable */
2
+ import Long from "long";
3
+ import _m0 from "protobufjs/minimal";
4
+ import { Any } from "../../google/protobuf/any";
5
+ export const protobufPackage = "cosmwasm.wasm.v1";
6
+ /** AccessType permission types */
7
+ export var AccessType;
8
+ (function (AccessType) {
9
+ /** ACCESS_TYPE_UNSPECIFIED - AccessTypeUnspecified placeholder for empty value */
10
+ AccessType[AccessType["ACCESS_TYPE_UNSPECIFIED"] = 0] = "ACCESS_TYPE_UNSPECIFIED";
11
+ /** ACCESS_TYPE_NOBODY - AccessTypeNobody forbidden */
12
+ AccessType[AccessType["ACCESS_TYPE_NOBODY"] = 1] = "ACCESS_TYPE_NOBODY";
13
+ /**
14
+ * ACCESS_TYPE_ONLY_ADDRESS - AccessTypeOnlyAddress restricted to a single address
15
+ * Deprecated: use AccessTypeAnyOfAddresses instead
16
+ */
17
+ AccessType[AccessType["ACCESS_TYPE_ONLY_ADDRESS"] = 2] = "ACCESS_TYPE_ONLY_ADDRESS";
18
+ /** ACCESS_TYPE_EVERYBODY - AccessTypeEverybody unrestricted */
19
+ AccessType[AccessType["ACCESS_TYPE_EVERYBODY"] = 3] = "ACCESS_TYPE_EVERYBODY";
20
+ /** ACCESS_TYPE_ANY_OF_ADDRESSES - AccessTypeAnyOfAddresses allow any of the addresses */
21
+ AccessType[AccessType["ACCESS_TYPE_ANY_OF_ADDRESSES"] = 4] = "ACCESS_TYPE_ANY_OF_ADDRESSES";
22
+ AccessType[AccessType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
23
+ })(AccessType || (AccessType = {}));
24
+ export function accessTypeFromJSON(object) {
25
+ switch (object) {
26
+ case 0:
27
+ case "ACCESS_TYPE_UNSPECIFIED":
28
+ return AccessType.ACCESS_TYPE_UNSPECIFIED;
29
+ case 1:
30
+ case "ACCESS_TYPE_NOBODY":
31
+ return AccessType.ACCESS_TYPE_NOBODY;
32
+ case 2:
33
+ case "ACCESS_TYPE_ONLY_ADDRESS":
34
+ return AccessType.ACCESS_TYPE_ONLY_ADDRESS;
35
+ case 3:
36
+ case "ACCESS_TYPE_EVERYBODY":
37
+ return AccessType.ACCESS_TYPE_EVERYBODY;
38
+ case 4:
39
+ case "ACCESS_TYPE_ANY_OF_ADDRESSES":
40
+ return AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES;
41
+ case -1:
42
+ case "UNRECOGNIZED":
43
+ default:
44
+ return AccessType.UNRECOGNIZED;
45
+ }
46
+ }
47
+ export function accessTypeToJSON(object) {
48
+ switch (object) {
49
+ case AccessType.ACCESS_TYPE_UNSPECIFIED:
50
+ return "ACCESS_TYPE_UNSPECIFIED";
51
+ case AccessType.ACCESS_TYPE_NOBODY:
52
+ return "ACCESS_TYPE_NOBODY";
53
+ case AccessType.ACCESS_TYPE_ONLY_ADDRESS:
54
+ return "ACCESS_TYPE_ONLY_ADDRESS";
55
+ case AccessType.ACCESS_TYPE_EVERYBODY:
56
+ return "ACCESS_TYPE_EVERYBODY";
57
+ case AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES:
58
+ return "ACCESS_TYPE_ANY_OF_ADDRESSES";
59
+ case AccessType.UNRECOGNIZED:
60
+ default:
61
+ return "UNRECOGNIZED";
62
+ }
63
+ }
64
+ /** ContractCodeHistoryOperationType actions that caused a code change */
65
+ export var ContractCodeHistoryOperationType;
66
+ (function (ContractCodeHistoryOperationType) {
67
+ /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED - ContractCodeHistoryOperationTypeUnspecified placeholder for empty value */
68
+ ContractCodeHistoryOperationType[ContractCodeHistoryOperationType["CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED"] = 0] = "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";
69
+ /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT - ContractCodeHistoryOperationTypeInit on chain contract instantiation */
70
+ ContractCodeHistoryOperationType[ContractCodeHistoryOperationType["CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT"] = 1] = "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";
71
+ /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE - ContractCodeHistoryOperationTypeMigrate code migration */
72
+ ContractCodeHistoryOperationType[ContractCodeHistoryOperationType["CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE"] = 2] = "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";
73
+ /** CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS - ContractCodeHistoryOperationTypeGenesis based on genesis data */
74
+ ContractCodeHistoryOperationType[ContractCodeHistoryOperationType["CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS"] = 3] = "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";
75
+ ContractCodeHistoryOperationType[ContractCodeHistoryOperationType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
76
+ })(ContractCodeHistoryOperationType || (ContractCodeHistoryOperationType = {}));
77
+ export function contractCodeHistoryOperationTypeFromJSON(object) {
78
+ switch (object) {
79
+ case 0:
80
+ case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":
81
+ return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;
82
+ case 1:
83
+ case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":
84
+ return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;
85
+ case 2:
86
+ case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":
87
+ return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;
88
+ case 3:
89
+ case "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":
90
+ return ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;
91
+ case -1:
92
+ case "UNRECOGNIZED":
93
+ default:
94
+ return ContractCodeHistoryOperationType.UNRECOGNIZED;
95
+ }
96
+ }
97
+ export function contractCodeHistoryOperationTypeToJSON(object) {
98
+ switch (object) {
99
+ case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:
100
+ return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";
101
+ case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:
102
+ return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";
103
+ case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:
104
+ return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";
105
+ case ContractCodeHistoryOperationType.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:
106
+ return "CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";
107
+ case ContractCodeHistoryOperationType.UNRECOGNIZED:
108
+ default:
109
+ return "UNRECOGNIZED";
110
+ }
111
+ }
112
+ function createBaseAccessTypeParam() {
113
+ return { value: 0 };
114
+ }
115
+ export const AccessTypeParam = {
116
+ encode(message, writer = _m0.Writer.create()) {
117
+ if (message.value !== 0) {
118
+ writer.uint32(8).int32(message.value);
119
+ }
120
+ return writer;
121
+ },
122
+ decode(input, length) {
123
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
124
+ let end = length === undefined ? reader.len : reader.pos + length;
125
+ const message = createBaseAccessTypeParam();
126
+ while (reader.pos < end) {
127
+ const tag = reader.uint32();
128
+ switch (tag >>> 3) {
129
+ case 1:
130
+ if (tag !== 8) {
131
+ break;
132
+ }
133
+ message.value = reader.int32();
134
+ continue;
135
+ }
136
+ if ((tag & 7) === 4 || tag === 0) {
137
+ break;
138
+ }
139
+ reader.skipType(tag & 7);
140
+ }
141
+ return message;
142
+ },
143
+ fromJSON(object) {
144
+ return {
145
+ value: isSet(object.value) ? accessTypeFromJSON(object.value) : 0,
146
+ };
147
+ },
148
+ toJSON(message) {
149
+ const obj = {};
150
+ message.value !== undefined &&
151
+ (obj.value = accessTypeToJSON(message.value));
152
+ return obj;
153
+ },
154
+ create(base) {
155
+ return AccessTypeParam.fromPartial(base ?? {});
156
+ },
157
+ fromPartial(object) {
158
+ const message = createBaseAccessTypeParam();
159
+ message.value = object.value ?? 0;
160
+ return message;
161
+ },
162
+ };
163
+ function createBaseAccessConfig() {
164
+ return { permission: 0, address: "", addresses: [] };
165
+ }
166
+ export const AccessConfig = {
167
+ encode(message, writer = _m0.Writer.create()) {
168
+ if (message.permission !== 0) {
169
+ writer.uint32(8).int32(message.permission);
170
+ }
171
+ if (message.address !== "") {
172
+ writer.uint32(18).string(message.address);
173
+ }
174
+ for (const v of message.addresses) {
175
+ writer.uint32(26).string(v);
176
+ }
177
+ return writer;
178
+ },
179
+ decode(input, length) {
180
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
181
+ let end = length === undefined ? reader.len : reader.pos + length;
182
+ const message = createBaseAccessConfig();
183
+ while (reader.pos < end) {
184
+ const tag = reader.uint32();
185
+ switch (tag >>> 3) {
186
+ case 1:
187
+ if (tag !== 8) {
188
+ break;
189
+ }
190
+ message.permission = reader.int32();
191
+ continue;
192
+ case 2:
193
+ if (tag !== 18) {
194
+ break;
195
+ }
196
+ message.address = reader.string();
197
+ continue;
198
+ case 3:
199
+ if (tag !== 26) {
200
+ break;
201
+ }
202
+ message.addresses.push(reader.string());
203
+ continue;
204
+ }
205
+ if ((tag & 7) === 4 || tag === 0) {
206
+ break;
207
+ }
208
+ reader.skipType(tag & 7);
209
+ }
210
+ return message;
211
+ },
212
+ fromJSON(object) {
213
+ return {
214
+ permission: isSet(object.permission)
215
+ ? accessTypeFromJSON(object.permission)
216
+ : 0,
217
+ address: isSet(object.address) ? String(object.address) : "",
218
+ addresses: Array.isArray(object?.addresses)
219
+ ? object.addresses.map((e) => String(e))
220
+ : [],
221
+ };
222
+ },
223
+ toJSON(message) {
224
+ const obj = {};
225
+ message.permission !== undefined &&
226
+ (obj.permission = accessTypeToJSON(message.permission));
227
+ message.address !== undefined && (obj.address = message.address);
228
+ if (message.addresses) {
229
+ obj.addresses = message.addresses.map((e) => e);
230
+ }
231
+ else {
232
+ obj.addresses = [];
233
+ }
234
+ return obj;
235
+ },
236
+ create(base) {
237
+ return AccessConfig.fromPartial(base ?? {});
238
+ },
239
+ fromPartial(object) {
240
+ const message = createBaseAccessConfig();
241
+ message.permission = object.permission ?? 0;
242
+ message.address = object.address ?? "";
243
+ message.addresses = object.addresses?.map((e) => e) || [];
244
+ return message;
245
+ },
246
+ };
247
+ function createBaseParams() {
248
+ return { codeUploadAccess: undefined, instantiateDefaultPermission: 0 };
249
+ }
250
+ export const Params = {
251
+ encode(message, writer = _m0.Writer.create()) {
252
+ if (message.codeUploadAccess !== undefined) {
253
+ AccessConfig.encode(message.codeUploadAccess, writer.uint32(10).fork()).ldelim();
254
+ }
255
+ if (message.instantiateDefaultPermission !== 0) {
256
+ writer.uint32(16).int32(message.instantiateDefaultPermission);
257
+ }
258
+ return writer;
259
+ },
260
+ decode(input, length) {
261
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
262
+ let end = length === undefined ? reader.len : reader.pos + length;
263
+ const message = createBaseParams();
264
+ while (reader.pos < end) {
265
+ const tag = reader.uint32();
266
+ switch (tag >>> 3) {
267
+ case 1:
268
+ if (tag !== 10) {
269
+ break;
270
+ }
271
+ message.codeUploadAccess = AccessConfig.decode(reader, reader.uint32());
272
+ continue;
273
+ case 2:
274
+ if (tag !== 16) {
275
+ break;
276
+ }
277
+ message.instantiateDefaultPermission = reader.int32();
278
+ continue;
279
+ }
280
+ if ((tag & 7) === 4 || tag === 0) {
281
+ break;
282
+ }
283
+ reader.skipType(tag & 7);
284
+ }
285
+ return message;
286
+ },
287
+ fromJSON(object) {
288
+ return {
289
+ codeUploadAccess: isSet(object.codeUploadAccess)
290
+ ? AccessConfig.fromJSON(object.codeUploadAccess)
291
+ : undefined,
292
+ instantiateDefaultPermission: isSet(object.instantiateDefaultPermission)
293
+ ? accessTypeFromJSON(object.instantiateDefaultPermission)
294
+ : 0,
295
+ };
296
+ },
297
+ toJSON(message) {
298
+ const obj = {};
299
+ message.codeUploadAccess !== undefined &&
300
+ (obj.codeUploadAccess = message.codeUploadAccess
301
+ ? AccessConfig.toJSON(message.codeUploadAccess)
302
+ : undefined);
303
+ message.instantiateDefaultPermission !== undefined &&
304
+ (obj.instantiateDefaultPermission = accessTypeToJSON(message.instantiateDefaultPermission));
305
+ return obj;
306
+ },
307
+ create(base) {
308
+ return Params.fromPartial(base ?? {});
309
+ },
310
+ fromPartial(object) {
311
+ const message = createBaseParams();
312
+ message.codeUploadAccess =
313
+ object.codeUploadAccess !== undefined && object.codeUploadAccess !== null
314
+ ? AccessConfig.fromPartial(object.codeUploadAccess)
315
+ : undefined;
316
+ message.instantiateDefaultPermission =
317
+ object.instantiateDefaultPermission ?? 0;
318
+ return message;
319
+ },
320
+ };
321
+ function createBaseCodeInfo() {
322
+ return {
323
+ codeHash: new Uint8Array(),
324
+ creator: "",
325
+ instantiateConfig: undefined,
326
+ };
327
+ }
328
+ export const CodeInfo = {
329
+ encode(message, writer = _m0.Writer.create()) {
330
+ if (message.codeHash.length !== 0) {
331
+ writer.uint32(10).bytes(message.codeHash);
332
+ }
333
+ if (message.creator !== "") {
334
+ writer.uint32(18).string(message.creator);
335
+ }
336
+ if (message.instantiateConfig !== undefined) {
337
+ AccessConfig.encode(message.instantiateConfig, writer.uint32(42).fork()).ldelim();
338
+ }
339
+ return writer;
340
+ },
341
+ decode(input, length) {
342
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
343
+ let end = length === undefined ? reader.len : reader.pos + length;
344
+ const message = createBaseCodeInfo();
345
+ while (reader.pos < end) {
346
+ const tag = reader.uint32();
347
+ switch (tag >>> 3) {
348
+ case 1:
349
+ if (tag !== 10) {
350
+ break;
351
+ }
352
+ message.codeHash = reader.bytes();
353
+ continue;
354
+ case 2:
355
+ if (tag !== 18) {
356
+ break;
357
+ }
358
+ message.creator = reader.string();
359
+ continue;
360
+ case 5:
361
+ if (tag !== 42) {
362
+ break;
363
+ }
364
+ message.instantiateConfig = AccessConfig.decode(reader, reader.uint32());
365
+ continue;
366
+ }
367
+ if ((tag & 7) === 4 || tag === 0) {
368
+ break;
369
+ }
370
+ reader.skipType(tag & 7);
371
+ }
372
+ return message;
373
+ },
374
+ fromJSON(object) {
375
+ return {
376
+ codeHash: isSet(object.codeHash)
377
+ ? bytesFromBase64(object.codeHash)
378
+ : new Uint8Array(),
379
+ creator: isSet(object.creator) ? String(object.creator) : "",
380
+ instantiateConfig: isSet(object.instantiateConfig)
381
+ ? AccessConfig.fromJSON(object.instantiateConfig)
382
+ : undefined,
383
+ };
384
+ },
385
+ toJSON(message) {
386
+ const obj = {};
387
+ message.codeHash !== undefined &&
388
+ (obj.codeHash = base64FromBytes(message.codeHash !== undefined ? message.codeHash : new Uint8Array()));
389
+ message.creator !== undefined && (obj.creator = message.creator);
390
+ message.instantiateConfig !== undefined &&
391
+ (obj.instantiateConfig = message.instantiateConfig
392
+ ? AccessConfig.toJSON(message.instantiateConfig)
393
+ : undefined);
394
+ return obj;
395
+ },
396
+ create(base) {
397
+ return CodeInfo.fromPartial(base ?? {});
398
+ },
399
+ fromPartial(object) {
400
+ const message = createBaseCodeInfo();
401
+ message.codeHash = object.codeHash ?? new Uint8Array();
402
+ message.creator = object.creator ?? "";
403
+ message.instantiateConfig =
404
+ object.instantiateConfig !== undefined &&
405
+ object.instantiateConfig !== null
406
+ ? AccessConfig.fromPartial(object.instantiateConfig)
407
+ : undefined;
408
+ return message;
409
+ },
410
+ };
411
+ function createBaseContractInfo() {
412
+ return {
413
+ codeId: 0,
414
+ creator: "",
415
+ admin: "",
416
+ label: "",
417
+ created: undefined,
418
+ ibcPortId: "",
419
+ extension: undefined,
420
+ };
421
+ }
422
+ export const ContractInfo = {
423
+ encode(message, writer = _m0.Writer.create()) {
424
+ if (message.codeId !== 0) {
425
+ writer.uint32(8).uint64(message.codeId);
426
+ }
427
+ if (message.creator !== "") {
428
+ writer.uint32(18).string(message.creator);
429
+ }
430
+ if (message.admin !== "") {
431
+ writer.uint32(26).string(message.admin);
432
+ }
433
+ if (message.label !== "") {
434
+ writer.uint32(34).string(message.label);
435
+ }
436
+ if (message.created !== undefined) {
437
+ AbsoluteTxPosition.encode(message.created, writer.uint32(42).fork()).ldelim();
438
+ }
439
+ if (message.ibcPortId !== "") {
440
+ writer.uint32(50).string(message.ibcPortId);
441
+ }
442
+ if (message.extension !== undefined) {
443
+ Any.encode(message.extension, writer.uint32(58).fork()).ldelim();
444
+ }
445
+ return writer;
446
+ },
447
+ decode(input, length) {
448
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
449
+ let end = length === undefined ? reader.len : reader.pos + length;
450
+ const message = createBaseContractInfo();
451
+ while (reader.pos < end) {
452
+ const tag = reader.uint32();
453
+ switch (tag >>> 3) {
454
+ case 1:
455
+ if (tag !== 8) {
456
+ break;
457
+ }
458
+ message.codeId = longToNumber(reader.uint64());
459
+ continue;
460
+ case 2:
461
+ if (tag !== 18) {
462
+ break;
463
+ }
464
+ message.creator = reader.string();
465
+ continue;
466
+ case 3:
467
+ if (tag !== 26) {
468
+ break;
469
+ }
470
+ message.admin = reader.string();
471
+ continue;
472
+ case 4:
473
+ if (tag !== 34) {
474
+ break;
475
+ }
476
+ message.label = reader.string();
477
+ continue;
478
+ case 5:
479
+ if (tag !== 42) {
480
+ break;
481
+ }
482
+ message.created = AbsoluteTxPosition.decode(reader, reader.uint32());
483
+ continue;
484
+ case 6:
485
+ if (tag !== 50) {
486
+ break;
487
+ }
488
+ message.ibcPortId = reader.string();
489
+ continue;
490
+ case 7:
491
+ if (tag !== 58) {
492
+ break;
493
+ }
494
+ message.extension = Any.decode(reader, reader.uint32());
495
+ continue;
496
+ }
497
+ if ((tag & 7) === 4 || tag === 0) {
498
+ break;
499
+ }
500
+ reader.skipType(tag & 7);
501
+ }
502
+ return message;
503
+ },
504
+ fromJSON(object) {
505
+ return {
506
+ codeId: isSet(object.codeId) ? Number(object.codeId) : 0,
507
+ creator: isSet(object.creator) ? String(object.creator) : "",
508
+ admin: isSet(object.admin) ? String(object.admin) : "",
509
+ label: isSet(object.label) ? String(object.label) : "",
510
+ created: isSet(object.created)
511
+ ? AbsoluteTxPosition.fromJSON(object.created)
512
+ : undefined,
513
+ ibcPortId: isSet(object.ibcPortId) ? String(object.ibcPortId) : "",
514
+ extension: isSet(object.extension)
515
+ ? Any.fromJSON(object.extension)
516
+ : undefined,
517
+ };
518
+ },
519
+ toJSON(message) {
520
+ const obj = {};
521
+ message.codeId !== undefined && (obj.codeId = Math.round(message.codeId));
522
+ message.creator !== undefined && (obj.creator = message.creator);
523
+ message.admin !== undefined && (obj.admin = message.admin);
524
+ message.label !== undefined && (obj.label = message.label);
525
+ message.created !== undefined &&
526
+ (obj.created = message.created
527
+ ? AbsoluteTxPosition.toJSON(message.created)
528
+ : undefined);
529
+ message.ibcPortId !== undefined && (obj.ibcPortId = message.ibcPortId);
530
+ message.extension !== undefined &&
531
+ (obj.extension = message.extension
532
+ ? Any.toJSON(message.extension)
533
+ : undefined);
534
+ return obj;
535
+ },
536
+ create(base) {
537
+ return ContractInfo.fromPartial(base ?? {});
538
+ },
539
+ fromPartial(object) {
540
+ const message = createBaseContractInfo();
541
+ message.codeId = object.codeId ?? 0;
542
+ message.creator = object.creator ?? "";
543
+ message.admin = object.admin ?? "";
544
+ message.label = object.label ?? "";
545
+ message.created =
546
+ object.created !== undefined && object.created !== null
547
+ ? AbsoluteTxPosition.fromPartial(object.created)
548
+ : undefined;
549
+ message.ibcPortId = object.ibcPortId ?? "";
550
+ message.extension =
551
+ object.extension !== undefined && object.extension !== null
552
+ ? Any.fromPartial(object.extension)
553
+ : undefined;
554
+ return message;
555
+ },
556
+ };
557
+ function createBaseContractCodeHistoryEntry() {
558
+ return { operation: 0, codeId: 0, updated: undefined, msg: new Uint8Array() };
559
+ }
560
+ export const ContractCodeHistoryEntry = {
561
+ encode(message, writer = _m0.Writer.create()) {
562
+ if (message.operation !== 0) {
563
+ writer.uint32(8).int32(message.operation);
564
+ }
565
+ if (message.codeId !== 0) {
566
+ writer.uint32(16).uint64(message.codeId);
567
+ }
568
+ if (message.updated !== undefined) {
569
+ AbsoluteTxPosition.encode(message.updated, writer.uint32(26).fork()).ldelim();
570
+ }
571
+ if (message.msg.length !== 0) {
572
+ writer.uint32(34).bytes(message.msg);
573
+ }
574
+ return writer;
575
+ },
576
+ decode(input, length) {
577
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
578
+ let end = length === undefined ? reader.len : reader.pos + length;
579
+ const message = createBaseContractCodeHistoryEntry();
580
+ while (reader.pos < end) {
581
+ const tag = reader.uint32();
582
+ switch (tag >>> 3) {
583
+ case 1:
584
+ if (tag !== 8) {
585
+ break;
586
+ }
587
+ message.operation = reader.int32();
588
+ continue;
589
+ case 2:
590
+ if (tag !== 16) {
591
+ break;
592
+ }
593
+ message.codeId = longToNumber(reader.uint64());
594
+ continue;
595
+ case 3:
596
+ if (tag !== 26) {
597
+ break;
598
+ }
599
+ message.updated = AbsoluteTxPosition.decode(reader, reader.uint32());
600
+ continue;
601
+ case 4:
602
+ if (tag !== 34) {
603
+ break;
604
+ }
605
+ message.msg = reader.bytes();
606
+ continue;
607
+ }
608
+ if ((tag & 7) === 4 || tag === 0) {
609
+ break;
610
+ }
611
+ reader.skipType(tag & 7);
612
+ }
613
+ return message;
614
+ },
615
+ fromJSON(object) {
616
+ return {
617
+ operation: isSet(object.operation)
618
+ ? contractCodeHistoryOperationTypeFromJSON(object.operation)
619
+ : 0,
620
+ codeId: isSet(object.codeId) ? Number(object.codeId) : 0,
621
+ updated: isSet(object.updated)
622
+ ? AbsoluteTxPosition.fromJSON(object.updated)
623
+ : undefined,
624
+ msg: isSet(object.msg) ? bytesFromBase64(object.msg) : new Uint8Array(),
625
+ };
626
+ },
627
+ toJSON(message) {
628
+ const obj = {};
629
+ message.operation !== undefined &&
630
+ (obj.operation = contractCodeHistoryOperationTypeToJSON(message.operation));
631
+ message.codeId !== undefined && (obj.codeId = Math.round(message.codeId));
632
+ message.updated !== undefined &&
633
+ (obj.updated = message.updated
634
+ ? AbsoluteTxPosition.toJSON(message.updated)
635
+ : undefined);
636
+ message.msg !== undefined &&
637
+ (obj.msg = base64FromBytes(message.msg !== undefined ? message.msg : new Uint8Array()));
638
+ return obj;
639
+ },
640
+ create(base) {
641
+ return ContractCodeHistoryEntry.fromPartial(base ?? {});
642
+ },
643
+ fromPartial(object) {
644
+ const message = createBaseContractCodeHistoryEntry();
645
+ message.operation = object.operation ?? 0;
646
+ message.codeId = object.codeId ?? 0;
647
+ message.updated =
648
+ object.updated !== undefined && object.updated !== null
649
+ ? AbsoluteTxPosition.fromPartial(object.updated)
650
+ : undefined;
651
+ message.msg = object.msg ?? new Uint8Array();
652
+ return message;
653
+ },
654
+ };
655
+ function createBaseAbsoluteTxPosition() {
656
+ return { blockHeight: 0, txIndex: 0 };
657
+ }
658
+ export const AbsoluteTxPosition = {
659
+ encode(message, writer = _m0.Writer.create()) {
660
+ if (message.blockHeight !== 0) {
661
+ writer.uint32(8).uint64(message.blockHeight);
662
+ }
663
+ if (message.txIndex !== 0) {
664
+ writer.uint32(16).uint64(message.txIndex);
665
+ }
666
+ return writer;
667
+ },
668
+ decode(input, length) {
669
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
670
+ let end = length === undefined ? reader.len : reader.pos + length;
671
+ const message = createBaseAbsoluteTxPosition();
672
+ while (reader.pos < end) {
673
+ const tag = reader.uint32();
674
+ switch (tag >>> 3) {
675
+ case 1:
676
+ if (tag !== 8) {
677
+ break;
678
+ }
679
+ message.blockHeight = longToNumber(reader.uint64());
680
+ continue;
681
+ case 2:
682
+ if (tag !== 16) {
683
+ break;
684
+ }
685
+ message.txIndex = longToNumber(reader.uint64());
686
+ continue;
687
+ }
688
+ if ((tag & 7) === 4 || tag === 0) {
689
+ break;
690
+ }
691
+ reader.skipType(tag & 7);
692
+ }
693
+ return message;
694
+ },
695
+ fromJSON(object) {
696
+ return {
697
+ blockHeight: isSet(object.blockHeight) ? Number(object.blockHeight) : 0,
698
+ txIndex: isSet(object.txIndex) ? Number(object.txIndex) : 0,
699
+ };
700
+ },
701
+ toJSON(message) {
702
+ const obj = {};
703
+ message.blockHeight !== undefined &&
704
+ (obj.blockHeight = Math.round(message.blockHeight));
705
+ message.txIndex !== undefined &&
706
+ (obj.txIndex = Math.round(message.txIndex));
707
+ return obj;
708
+ },
709
+ create(base) {
710
+ return AbsoluteTxPosition.fromPartial(base ?? {});
711
+ },
712
+ fromPartial(object) {
713
+ const message = createBaseAbsoluteTxPosition();
714
+ message.blockHeight = object.blockHeight ?? 0;
715
+ message.txIndex = object.txIndex ?? 0;
716
+ return message;
717
+ },
718
+ };
719
+ function createBaseModel() {
720
+ return { key: new Uint8Array(), value: new Uint8Array() };
721
+ }
722
+ export const Model = {
723
+ encode(message, writer = _m0.Writer.create()) {
724
+ if (message.key.length !== 0) {
725
+ writer.uint32(10).bytes(message.key);
726
+ }
727
+ if (message.value.length !== 0) {
728
+ writer.uint32(18).bytes(message.value);
729
+ }
730
+ return writer;
731
+ },
732
+ decode(input, length) {
733
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
734
+ let end = length === undefined ? reader.len : reader.pos + length;
735
+ const message = createBaseModel();
736
+ while (reader.pos < end) {
737
+ const tag = reader.uint32();
738
+ switch (tag >>> 3) {
739
+ case 1:
740
+ if (tag !== 10) {
741
+ break;
742
+ }
743
+ message.key = reader.bytes();
744
+ continue;
745
+ case 2:
746
+ if (tag !== 18) {
747
+ break;
748
+ }
749
+ message.value = reader.bytes();
750
+ continue;
751
+ }
752
+ if ((tag & 7) === 4 || tag === 0) {
753
+ break;
754
+ }
755
+ reader.skipType(tag & 7);
756
+ }
757
+ return message;
758
+ },
759
+ fromJSON(object) {
760
+ return {
761
+ key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(),
762
+ value: isSet(object.value)
763
+ ? bytesFromBase64(object.value)
764
+ : new Uint8Array(),
765
+ };
766
+ },
767
+ toJSON(message) {
768
+ const obj = {};
769
+ message.key !== undefined &&
770
+ (obj.key = base64FromBytes(message.key !== undefined ? message.key : new Uint8Array()));
771
+ message.value !== undefined &&
772
+ (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array()));
773
+ return obj;
774
+ },
775
+ create(base) {
776
+ return Model.fromPartial(base ?? {});
777
+ },
778
+ fromPartial(object) {
779
+ const message = createBaseModel();
780
+ message.key = object.key ?? new Uint8Array();
781
+ message.value = object.value ?? new Uint8Array();
782
+ return message;
783
+ },
784
+ };
785
+ var tsProtoGlobalThis = (() => {
786
+ if (typeof globalThis !== "undefined") {
787
+ return globalThis;
788
+ }
789
+ if (typeof self !== "undefined") {
790
+ return self;
791
+ }
792
+ if (typeof window !== "undefined") {
793
+ return window;
794
+ }
795
+ if (typeof global !== "undefined") {
796
+ return global;
797
+ }
798
+ throw "Unable to locate global object";
799
+ })();
800
+ function bytesFromBase64(b64) {
801
+ if (tsProtoGlobalThis.Buffer) {
802
+ return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64"));
803
+ }
804
+ else {
805
+ const bin = tsProtoGlobalThis.atob(b64);
806
+ const arr = new Uint8Array(bin.length);
807
+ for (let i = 0; i < bin.length; ++i) {
808
+ arr[i] = bin.charCodeAt(i);
809
+ }
810
+ return arr;
811
+ }
812
+ }
813
+ function base64FromBytes(arr) {
814
+ if (tsProtoGlobalThis.Buffer) {
815
+ return tsProtoGlobalThis.Buffer.from(arr).toString("base64");
816
+ }
817
+ else {
818
+ const bin = [];
819
+ arr.forEach((byte) => {
820
+ bin.push(String.fromCharCode(byte));
821
+ });
822
+ return tsProtoGlobalThis.btoa(bin.join(""));
823
+ }
824
+ }
825
+ function longToNumber(long) {
826
+ if (long.gt(Number.MAX_SAFE_INTEGER)) {
827
+ throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
828
+ }
829
+ return long.toNumber();
830
+ }
831
+ if (_m0.util.Long !== Long) {
832
+ _m0.util.Long = Long;
833
+ _m0.configure();
834
+ }
835
+ function isSet(value) {
836
+ return value !== null && value !== undefined;
837
+ }
838
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd2FzbS92MS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFFbEQsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBTixJQUFZLFVBZVg7QUFmRCxXQUFZLFVBQVU7SUFDcEIsa0ZBQWtGO0lBQ2xGLGlGQUEyQixDQUFBO0lBQzNCLHNEQUFzRDtJQUN0RCx1RUFBc0IsQ0FBQTtJQUN0Qjs7O09BR0c7SUFDSCxtRkFBNEIsQ0FBQTtJQUM1QiwrREFBK0Q7SUFDL0QsNkVBQXlCLENBQUE7SUFDekIseUZBQXlGO0lBQ3pGLDJGQUFnQyxDQUFBO0lBQ2hDLDREQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxVQUFVLEtBQVYsVUFBVSxRQWVyQjtBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFXO0lBQzVDLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHlCQUF5QjtZQUM1QixPQUFPLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQztRQUM1QyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssb0JBQW9CO1lBQ3ZCLE9BQU8sVUFBVSxDQUFDLGtCQUFrQixDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSywwQkFBMEI7WUFDN0IsT0FBTyxVQUFVLENBQUMsd0JBQXdCLENBQUM7UUFDN0MsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLHVCQUF1QjtZQUMxQixPQUFPLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUMxQyxLQUFLLENBQUMsQ0FBQztR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