@inco/js 0.1.31 → 0.1.33

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 (102) hide show
  1. package/README.md +28 -57
  2. package/dist/binary.js +67 -0
  3. package/dist/chain.js +24 -0
  4. package/dist/encryption/encryption.js +98 -0
  5. package/dist/encryption/index.cjs +132 -123
  6. package/dist/encryption/index.js +2 -0
  7. package/dist/encryption/index.mjs +132 -123
  8. package/dist/fhevm/fhe-environment.js +8 -0
  9. package/dist/fhevm/fhevm.js +139 -0
  10. package/dist/fhevm/index.js +2 -0
  11. package/dist/fhevm/reencrypt.js +123 -0
  12. package/dist/fhevm/tfhe.js +324 -0
  13. package/dist/fhevm/types.js +26 -0
  14. package/dist/generated/abis/addTwo.js +59 -0
  15. package/dist/generated/abis/inco-fhevm.js +6242 -0
  16. package/dist/generated/abis/index.js +3 -0
  17. package/dist/generated/abis/lightning.js +12489 -0
  18. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +198 -0
  19. package/dist/generated/es/cosmos/msg/v1/msg_pb.js +33 -0
  20. package/dist/generated/es/cosmos_proto/cosmos_pb.js +115 -0
  21. package/dist/generated/es/google/api/annotations_pb.js +27 -0
  22. package/dist/generated/es/google/api/http_pb.js +34 -0
  23. package/dist/generated/es/inco/fhe/v1/events_pb.js +21 -0
  24. package/dist/generated/es/inco/fhe/v1/genesis_pb.js +46 -0
  25. package/dist/generated/es/inco/fhe/v1/query_pb.js +108 -0
  26. package/dist/generated/es/inco/fhe/v1/tx_pb.js +108 -0
  27. package/dist/generated/es/inco/fhe/v1/types_pb.js +133 -0
  28. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +43 -0
  29. package/dist/generated/es/inco/kms/lite/v1/types_pb.js +44 -0
  30. package/dist/generated/es/inco/preflight/v1/genesis_pb.js +20 -0
  31. package/dist/generated/es/inco/preflight/v1/query_pb.js +38 -0
  32. package/dist/generated/es/inco/preflight/v1/tx_pb.js +48 -0
  33. package/dist/generated/es/inco/preflight/v1/types_pb.js +34 -0
  34. package/dist/generated/es/kms/base_pb.js +238 -0
  35. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +571 -0
  36. package/dist/generated/fhe-environments.js +15 -0
  37. package/dist/generated/lightning.js +399 -0
  38. package/dist/generated/local-node.js +8 -0
  39. package/dist/generated/ts/amino/amino.js +8 -0
  40. package/dist/generated/ts/cometbft/abci/v1/types.js +5063 -0
  41. package/dist/generated/ts/cometbft/crypto/v1/keys.js +105 -0
  42. package/dist/generated/ts/cometbft/crypto/v1/proof.js +430 -0
  43. package/dist/generated/ts/cometbft/types/v1/params.js +713 -0
  44. package/dist/generated/ts/cometbft/types/v1/validator.js +353 -0
  45. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +218 -0
  46. package/dist/generated/ts/cosmos/msg/v1/msg.js +8 -0
  47. package/dist/generated/ts/cosmos_proto/cosmos.js +211 -0
  48. package/dist/generated/ts/gogoproto/gogo.js +8 -0
  49. package/dist/generated/ts/google/api/annotations.js +8 -0
  50. package/dist/generated/ts/google/api/http.js +353 -0
  51. package/dist/generated/ts/google/protobuf/descriptor.js +5070 -0
  52. package/dist/generated/ts/google/protobuf/duration.js +90 -0
  53. package/dist/generated/ts/google/protobuf/timestamp.js +90 -0
  54. package/dist/generated/ts/google/protobuf/wrappers.js +506 -0
  55. package/dist/generated/ts/inco/abci/v1/types.js +70 -0
  56. package/dist/generated/ts/inco/fhe/module/v1/module.js +63 -0
  57. package/dist/generated/ts/inco/fhe/v1/events.js +187 -0
  58. package/dist/generated/ts/inco/fhe/v1/genesis.js +711 -0
  59. package/dist/generated/ts/inco/fhe/v1/query.js +1391 -0
  60. package/dist/generated/ts/inco/fhe/v1/tx.js +1233 -0
  61. package/dist/generated/ts/inco/fhe/v1/types.js +985 -0
  62. package/dist/generated/ts/inco/originchain/module/v1/module.js +63 -0
  63. package/dist/generated/ts/inco/originchain/v1/abci.js +328 -0
  64. package/dist/generated/ts/inco/originchain/v1/events.js +213 -0
  65. package/dist/generated/ts/inco/originchain/v1/genesis.js +66 -0
  66. package/dist/generated/ts/inco/originchain/v1/query.js +277 -0
  67. package/dist/generated/ts/inco/originchain/v1/tx.js +137 -0
  68. package/dist/generated/ts/inco/originchain/v1/types.js +200 -0
  69. package/dist/generated/ts/inco/preflight/module/v1/module.js +63 -0
  70. package/dist/generated/ts/inco/preflight/v1/genesis.js +182 -0
  71. package/dist/generated/ts/inco/preflight/v1/query.js +256 -0
  72. package/dist/generated/ts/inco/preflight/v1/tx.js +445 -0
  73. package/dist/generated/ts/inco/preflight/v1/types.js +395 -0
  74. package/dist/handle.js +94 -0
  75. package/dist/index.cjs +140 -131
  76. package/dist/index.js +6 -0
  77. package/dist/index.mjs +140 -131
  78. package/dist/l1/client.js +93 -0
  79. package/dist/l1/index.js +3 -0
  80. package/dist/l1/preflight.js +39 -0
  81. package/dist/lite/deployments.js +17 -0
  82. package/dist/lite/ecies.js +124 -0
  83. package/dist/lite/hadu.js +36 -0
  84. package/dist/lite/index.cjs +186 -146
  85. package/dist/lite/index.js +7 -0
  86. package/dist/lite/index.mjs +3890 -3788
  87. package/dist/lite/lightning.js +179 -0
  88. package/dist/lite/reencrypt.d.ts +1 -0
  89. package/dist/lite/reencrypt.js +148 -0
  90. package/dist/local/index.cjs +25 -2573
  91. package/dist/local/index.js +2 -0
  92. package/dist/local/index.mjs +5352 -7837
  93. package/dist/local/local-node.js +24 -0
  94. package/dist/reencryption/eip712.js +81 -0
  95. package/dist/reencryption/index.cjs +132 -123
  96. package/dist/reencryption/index.js +3 -0
  97. package/dist/reencryption/index.mjs +132 -123
  98. package/dist/reencryption/types.js +2 -0
  99. package/dist/schema.js +15 -0
  100. package/dist/viem.d.ts +53 -52
  101. package/dist/viem.js +8 -0
  102. package/package.json +11 -48
@@ -0,0 +1,105 @@
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/crypto/v1/keys.proto
6
+ /* eslint-disable */
7
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
8
+ export const protobufPackage = "cometbft.crypto.v1";
9
+ function createBasePublicKey() {
10
+ return { ed25519: undefined, secp256k1: undefined };
11
+ }
12
+ export const PublicKey = {
13
+ encode(message, writer = new BinaryWriter()) {
14
+ if (message.ed25519 !== undefined) {
15
+ writer.uint32(10).bytes(message.ed25519);
16
+ }
17
+ if (message.secp256k1 !== undefined) {
18
+ writer.uint32(18).bytes(message.secp256k1);
19
+ }
20
+ return writer;
21
+ },
22
+ decode(input, length) {
23
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
24
+ let end = length === undefined ? reader.len : reader.pos + length;
25
+ const message = createBasePublicKey();
26
+ while (reader.pos < end) {
27
+ const tag = reader.uint32();
28
+ switch (tag >>> 3) {
29
+ case 1: {
30
+ if (tag !== 10) {
31
+ break;
32
+ }
33
+ message.ed25519 = reader.bytes();
34
+ continue;
35
+ }
36
+ case 2: {
37
+ if (tag !== 18) {
38
+ break;
39
+ }
40
+ message.secp256k1 = reader.bytes();
41
+ continue;
42
+ }
43
+ }
44
+ if ((tag & 7) === 4 || tag === 0) {
45
+ break;
46
+ }
47
+ reader.skip(tag & 7);
48
+ }
49
+ return message;
50
+ },
51
+ fromJSON(object) {
52
+ return {
53
+ ed25519: isSet(object.ed25519) ? bytesFromBase64(object.ed25519) : undefined,
54
+ secp256k1: isSet(object.secp256k1) ? bytesFromBase64(object.secp256k1) : undefined,
55
+ };
56
+ },
57
+ toJSON(message) {
58
+ const obj = {};
59
+ if (message.ed25519 !== undefined) {
60
+ obj.ed25519 = base64FromBytes(message.ed25519);
61
+ }
62
+ if (message.secp256k1 !== undefined) {
63
+ obj.secp256k1 = base64FromBytes(message.secp256k1);
64
+ }
65
+ return obj;
66
+ },
67
+ create(base) {
68
+ return PublicKey.fromPartial(base ?? {});
69
+ },
70
+ fromPartial(object) {
71
+ const message = createBasePublicKey();
72
+ message.ed25519 = object.ed25519 ?? undefined;
73
+ message.secp256k1 = object.secp256k1 ?? undefined;
74
+ return message;
75
+ },
76
+ };
77
+ function bytesFromBase64(b64) {
78
+ if (globalThis.Buffer) {
79
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
80
+ }
81
+ else {
82
+ const bin = globalThis.atob(b64);
83
+ const arr = new Uint8Array(bin.length);
84
+ for (let i = 0; i < bin.length; ++i) {
85
+ arr[i] = bin.charCodeAt(i);
86
+ }
87
+ return arr;
88
+ }
89
+ }
90
+ function base64FromBytes(arr) {
91
+ if (globalThis.Buffer) {
92
+ return globalThis.Buffer.from(arr).toString("base64");
93
+ }
94
+ else {
95
+ const bin = [];
96
+ arr.forEach((byte) => {
97
+ bin.push(globalThis.String.fromCharCode(byte));
98
+ });
99
+ return globalThis.btoa(bin.join(""));
100
+ }
101
+ }
102
+ function isSet(value) {
103
+ return value !== null && value !== undefined;
104
+ }
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvdHMvY29tZXRiZnQvY3J5cHRvL3YxL2tleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELFlBQVk7QUFDWixnQ0FBZ0M7QUFDaEMsaUNBQWlDO0FBQ2pDLHdDQUF3QztBQUV4QyxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUM7QUFRcEQsU0FBUyxtQkFBbUI7SUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ3RELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQTBCO0lBQzlDLE1BQU0sQ0FBQyxPQUFrQixFQUFFLFNBQXVCLElBQUksWUFBWSxFQUFFO1FBQ2xFLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsS0FB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
@@ -0,0 +1,430 @@
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/crypto/v1/proof.proto
6
+ /* eslint-disable */
7
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
8
+ export const protobufPackage = "cometbft.crypto.v1";
9
+ function createBaseProof() {
10
+ return { total: 0, index: 0, leafHash: new Uint8Array(0), aunts: [] };
11
+ }
12
+ export const Proof = {
13
+ encode(message, writer = new BinaryWriter()) {
14
+ if (message.total !== 0) {
15
+ writer.uint32(8).int64(message.total);
16
+ }
17
+ if (message.index !== 0) {
18
+ writer.uint32(16).int64(message.index);
19
+ }
20
+ if (message.leafHash.length !== 0) {
21
+ writer.uint32(26).bytes(message.leafHash);
22
+ }
23
+ for (const v of message.aunts) {
24
+ writer.uint32(34).bytes(v);
25
+ }
26
+ return writer;
27
+ },
28
+ decode(input, length) {
29
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
30
+ let end = length === undefined ? reader.len : reader.pos + length;
31
+ const message = createBaseProof();
32
+ while (reader.pos < end) {
33
+ const tag = reader.uint32();
34
+ switch (tag >>> 3) {
35
+ case 1: {
36
+ if (tag !== 8) {
37
+ break;
38
+ }
39
+ message.total = longToNumber(reader.int64());
40
+ continue;
41
+ }
42
+ case 2: {
43
+ if (tag !== 16) {
44
+ break;
45
+ }
46
+ message.index = longToNumber(reader.int64());
47
+ continue;
48
+ }
49
+ case 3: {
50
+ if (tag !== 26) {
51
+ break;
52
+ }
53
+ message.leafHash = reader.bytes();
54
+ continue;
55
+ }
56
+ case 4: {
57
+ if (tag !== 34) {
58
+ break;
59
+ }
60
+ message.aunts.push(reader.bytes());
61
+ continue;
62
+ }
63
+ }
64
+ if ((tag & 7) === 4 || tag === 0) {
65
+ break;
66
+ }
67
+ reader.skip(tag & 7);
68
+ }
69
+ return message;
70
+ },
71
+ fromJSON(object) {
72
+ return {
73
+ total: isSet(object.total) ? globalThis.Number(object.total) : 0,
74
+ index: isSet(object.index) ? globalThis.Number(object.index) : 0,
75
+ leafHash: isSet(object.leafHash) ? bytesFromBase64(object.leafHash) : new Uint8Array(0),
76
+ aunts: globalThis.Array.isArray(object?.aunts) ? object.aunts.map((e) => bytesFromBase64(e)) : [],
77
+ };
78
+ },
79
+ toJSON(message) {
80
+ const obj = {};
81
+ if (message.total !== 0) {
82
+ obj.total = Math.round(message.total);
83
+ }
84
+ if (message.index !== 0) {
85
+ obj.index = Math.round(message.index);
86
+ }
87
+ if (message.leafHash.length !== 0) {
88
+ obj.leafHash = base64FromBytes(message.leafHash);
89
+ }
90
+ if (message.aunts?.length) {
91
+ obj.aunts = message.aunts.map((e) => base64FromBytes(e));
92
+ }
93
+ return obj;
94
+ },
95
+ create(base) {
96
+ return Proof.fromPartial(base ?? {});
97
+ },
98
+ fromPartial(object) {
99
+ const message = createBaseProof();
100
+ message.total = object.total ?? 0;
101
+ message.index = object.index ?? 0;
102
+ message.leafHash = object.leafHash ?? new Uint8Array(0);
103
+ message.aunts = object.aunts?.map((e) => e) || [];
104
+ return message;
105
+ },
106
+ };
107
+ function createBaseValueOp() {
108
+ return { key: new Uint8Array(0), proof: undefined };
109
+ }
110
+ export const ValueOp = {
111
+ encode(message, writer = new BinaryWriter()) {
112
+ if (message.key.length !== 0) {
113
+ writer.uint32(10).bytes(message.key);
114
+ }
115
+ if (message.proof !== undefined) {
116
+ Proof.encode(message.proof, writer.uint32(18).fork()).join();
117
+ }
118
+ return writer;
119
+ },
120
+ decode(input, length) {
121
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
122
+ let end = length === undefined ? reader.len : reader.pos + length;
123
+ const message = createBaseValueOp();
124
+ while (reader.pos < end) {
125
+ const tag = reader.uint32();
126
+ switch (tag >>> 3) {
127
+ case 1: {
128
+ if (tag !== 10) {
129
+ break;
130
+ }
131
+ message.key = reader.bytes();
132
+ continue;
133
+ }
134
+ case 2: {
135
+ if (tag !== 18) {
136
+ break;
137
+ }
138
+ message.proof = Proof.decode(reader, reader.uint32());
139
+ continue;
140
+ }
141
+ }
142
+ if ((tag & 7) === 4 || tag === 0) {
143
+ break;
144
+ }
145
+ reader.skip(tag & 7);
146
+ }
147
+ return message;
148
+ },
149
+ fromJSON(object) {
150
+ return {
151
+ key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),
152
+ proof: isSet(object.proof) ? Proof.fromJSON(object.proof) : undefined,
153
+ };
154
+ },
155
+ toJSON(message) {
156
+ const obj = {};
157
+ if (message.key.length !== 0) {
158
+ obj.key = base64FromBytes(message.key);
159
+ }
160
+ if (message.proof !== undefined) {
161
+ obj.proof = Proof.toJSON(message.proof);
162
+ }
163
+ return obj;
164
+ },
165
+ create(base) {
166
+ return ValueOp.fromPartial(base ?? {});
167
+ },
168
+ fromPartial(object) {
169
+ const message = createBaseValueOp();
170
+ message.key = object.key ?? new Uint8Array(0);
171
+ message.proof = (object.proof !== undefined && object.proof !== null) ? Proof.fromPartial(object.proof) : undefined;
172
+ return message;
173
+ },
174
+ };
175
+ function createBaseDominoOp() {
176
+ return { key: "", input: "", output: "" };
177
+ }
178
+ export const DominoOp = {
179
+ encode(message, writer = new BinaryWriter()) {
180
+ if (message.key !== "") {
181
+ writer.uint32(10).string(message.key);
182
+ }
183
+ if (message.input !== "") {
184
+ writer.uint32(18).string(message.input);
185
+ }
186
+ if (message.output !== "") {
187
+ writer.uint32(26).string(message.output);
188
+ }
189
+ return writer;
190
+ },
191
+ decode(input, length) {
192
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
193
+ let end = length === undefined ? reader.len : reader.pos + length;
194
+ const message = createBaseDominoOp();
195
+ while (reader.pos < end) {
196
+ const tag = reader.uint32();
197
+ switch (tag >>> 3) {
198
+ case 1: {
199
+ if (tag !== 10) {
200
+ break;
201
+ }
202
+ message.key = reader.string();
203
+ continue;
204
+ }
205
+ case 2: {
206
+ if (tag !== 18) {
207
+ break;
208
+ }
209
+ message.input = reader.string();
210
+ continue;
211
+ }
212
+ case 3: {
213
+ if (tag !== 26) {
214
+ break;
215
+ }
216
+ message.output = reader.string();
217
+ continue;
218
+ }
219
+ }
220
+ if ((tag & 7) === 4 || tag === 0) {
221
+ break;
222
+ }
223
+ reader.skip(tag & 7);
224
+ }
225
+ return message;
226
+ },
227
+ fromJSON(object) {
228
+ return {
229
+ key: isSet(object.key) ? globalThis.String(object.key) : "",
230
+ input: isSet(object.input) ? globalThis.String(object.input) : "",
231
+ output: isSet(object.output) ? globalThis.String(object.output) : "",
232
+ };
233
+ },
234
+ toJSON(message) {
235
+ const obj = {};
236
+ if (message.key !== "") {
237
+ obj.key = message.key;
238
+ }
239
+ if (message.input !== "") {
240
+ obj.input = message.input;
241
+ }
242
+ if (message.output !== "") {
243
+ obj.output = message.output;
244
+ }
245
+ return obj;
246
+ },
247
+ create(base) {
248
+ return DominoOp.fromPartial(base ?? {});
249
+ },
250
+ fromPartial(object) {
251
+ const message = createBaseDominoOp();
252
+ message.key = object.key ?? "";
253
+ message.input = object.input ?? "";
254
+ message.output = object.output ?? "";
255
+ return message;
256
+ },
257
+ };
258
+ function createBaseProofOp() {
259
+ return { type: "", key: new Uint8Array(0), data: new Uint8Array(0) };
260
+ }
261
+ export const ProofOp = {
262
+ encode(message, writer = new BinaryWriter()) {
263
+ if (message.type !== "") {
264
+ writer.uint32(10).string(message.type);
265
+ }
266
+ if (message.key.length !== 0) {
267
+ writer.uint32(18).bytes(message.key);
268
+ }
269
+ if (message.data.length !== 0) {
270
+ writer.uint32(26).bytes(message.data);
271
+ }
272
+ return writer;
273
+ },
274
+ decode(input, length) {
275
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
276
+ let end = length === undefined ? reader.len : reader.pos + length;
277
+ const message = createBaseProofOp();
278
+ while (reader.pos < end) {
279
+ const tag = reader.uint32();
280
+ switch (tag >>> 3) {
281
+ case 1: {
282
+ if (tag !== 10) {
283
+ break;
284
+ }
285
+ message.type = reader.string();
286
+ continue;
287
+ }
288
+ case 2: {
289
+ if (tag !== 18) {
290
+ break;
291
+ }
292
+ message.key = reader.bytes();
293
+ continue;
294
+ }
295
+ case 3: {
296
+ if (tag !== 26) {
297
+ break;
298
+ }
299
+ message.data = reader.bytes();
300
+ continue;
301
+ }
302
+ }
303
+ if ((tag & 7) === 4 || tag === 0) {
304
+ break;
305
+ }
306
+ reader.skip(tag & 7);
307
+ }
308
+ return message;
309
+ },
310
+ fromJSON(object) {
311
+ return {
312
+ type: isSet(object.type) ? globalThis.String(object.type) : "",
313
+ key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(0),
314
+ data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),
315
+ };
316
+ },
317
+ toJSON(message) {
318
+ const obj = {};
319
+ if (message.type !== "") {
320
+ obj.type = message.type;
321
+ }
322
+ if (message.key.length !== 0) {
323
+ obj.key = base64FromBytes(message.key);
324
+ }
325
+ if (message.data.length !== 0) {
326
+ obj.data = base64FromBytes(message.data);
327
+ }
328
+ return obj;
329
+ },
330
+ create(base) {
331
+ return ProofOp.fromPartial(base ?? {});
332
+ },
333
+ fromPartial(object) {
334
+ const message = createBaseProofOp();
335
+ message.type = object.type ?? "";
336
+ message.key = object.key ?? new Uint8Array(0);
337
+ message.data = object.data ?? new Uint8Array(0);
338
+ return message;
339
+ },
340
+ };
341
+ function createBaseProofOps() {
342
+ return { ops: [] };
343
+ }
344
+ export const ProofOps = {
345
+ encode(message, writer = new BinaryWriter()) {
346
+ for (const v of message.ops) {
347
+ ProofOp.encode(v, writer.uint32(10).fork()).join();
348
+ }
349
+ return writer;
350
+ },
351
+ decode(input, length) {
352
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
353
+ let end = length === undefined ? reader.len : reader.pos + length;
354
+ const message = createBaseProofOps();
355
+ while (reader.pos < end) {
356
+ const tag = reader.uint32();
357
+ switch (tag >>> 3) {
358
+ case 1: {
359
+ if (tag !== 10) {
360
+ break;
361
+ }
362
+ message.ops.push(ProofOp.decode(reader, reader.uint32()));
363
+ continue;
364
+ }
365
+ }
366
+ if ((tag & 7) === 4 || tag === 0) {
367
+ break;
368
+ }
369
+ reader.skip(tag & 7);
370
+ }
371
+ return message;
372
+ },
373
+ fromJSON(object) {
374
+ return { ops: globalThis.Array.isArray(object?.ops) ? object.ops.map((e) => ProofOp.fromJSON(e)) : [] };
375
+ },
376
+ toJSON(message) {
377
+ const obj = {};
378
+ if (message.ops?.length) {
379
+ obj.ops = message.ops.map((e) => ProofOp.toJSON(e));
380
+ }
381
+ return obj;
382
+ },
383
+ create(base) {
384
+ return ProofOps.fromPartial(base ?? {});
385
+ },
386
+ fromPartial(object) {
387
+ const message = createBaseProofOps();
388
+ message.ops = object.ops?.map((e) => ProofOp.fromPartial(e)) || [];
389
+ return message;
390
+ },
391
+ };
392
+ function bytesFromBase64(b64) {
393
+ if (globalThis.Buffer) {
394
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
395
+ }
396
+ else {
397
+ const bin = globalThis.atob(b64);
398
+ const arr = new Uint8Array(bin.length);
399
+ for (let i = 0; i < bin.length; ++i) {
400
+ arr[i] = bin.charCodeAt(i);
401
+ }
402
+ return arr;
403
+ }
404
+ }
405
+ function base64FromBytes(arr) {
406
+ if (globalThis.Buffer) {
407
+ return globalThis.Buffer.from(arr).toString("base64");
408
+ }
409
+ else {
410
+ const bin = [];
411
+ arr.forEach((byte) => {
412
+ bin.push(globalThis.String.fromCharCode(byte));
413
+ });
414
+ return globalThis.btoa(bin.join(""));
415
+ }
416
+ }
417
+ function longToNumber(int64) {
418
+ const num = globalThis.Number(int64.toString());
419
+ if (num > globalThis.Number.MAX_SAFE_INTEGER) {
420
+ throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
421
+ }
422
+ if (num < globalThis.Number.MIN_SAFE_INTEGER) {
423
+ throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
424
+ }
425
+ return num;
426
+ }
427
+ function isSet(value) {
428
+ return value !== null && value !== undefined;
429
+ }
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3RzL2NvbWV0YmZ0L2NyeXB0by92MS9wcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMseUNBQXlDO0FBRXpDLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQztBQXlDcEQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUN4RSxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFzQjtJQUN0QyxNQUFNLENBQUMsT0FBYyxFQUFFLFNBQXVCLElBQUksWUFBWSxFQUFFO1FBQzlELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMs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