@inco/js 0.6.1 → 0.6.8

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 (64) hide show
  1. package/dist/cjs/binary.d.ts +1 -0
  2. package/dist/cjs/binary.js +6 -2
  3. package/dist/cjs/encryption/encryption.d.ts +17 -20
  4. package/dist/cjs/encryption/encryption.js +30 -12
  5. package/dist/cjs/generated/abis/lightning-preview.d.ts +8 -106
  6. package/dist/cjs/generated/abis/lightning-preview.js +5 -55
  7. package/dist/cjs/generated/abis/lightning.d.ts +54 -115
  8. package/dist/cjs/generated/abis/lightning.js +32 -65
  9. package/dist/cjs/generated/abis/verifier.d.ts +86 -36
  10. package/dist/cjs/generated/abis/verifier.js +57 -21
  11. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +2 -2
  12. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +775 -0
  13. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +261 -0
  14. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +186 -0
  15. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +47 -0
  16. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +2 -2
  17. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -2
  18. package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +2 -2
  19. package/dist/cjs/handle.d.ts +16 -0
  20. package/dist/cjs/handle.js +28 -3
  21. package/dist/cjs/lite/ecies.d.ts +0 -2
  22. package/dist/cjs/lite/ecies.js +24 -13
  23. package/dist/cjs/lite/hadu.d.ts +3 -23
  24. package/dist/cjs/lite/hadu.js +26 -29
  25. package/dist/cjs/lite/lightning.js +1 -2
  26. package/dist/cjs/viem.d.ts +44 -47
  27. package/dist/esm/binary.d.ts +1 -0
  28. package/dist/esm/binary.js +5 -2
  29. package/dist/esm/encryption/encryption.d.ts +17 -20
  30. package/dist/esm/encryption/encryption.js +26 -12
  31. package/dist/esm/generated/abis/lightning-preview.d.ts +8 -106
  32. package/dist/esm/generated/abis/lightning-preview.js +5 -55
  33. package/dist/esm/generated/abis/lightning.d.ts +54 -115
  34. package/dist/esm/generated/abis/lightning.js +32 -65
  35. package/dist/esm/generated/abis/verifier.d.ts +86 -36
  36. package/dist/esm/generated/abis/verifier.js +57 -21
  37. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +2 -2
  38. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +775 -0
  39. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +258 -0
  40. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +186 -0
  41. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +44 -0
  42. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +2 -2
  43. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -2
  44. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +2 -2
  45. package/dist/esm/handle.d.ts +16 -0
  46. package/dist/esm/handle.js +27 -3
  47. package/dist/esm/lite/ecies.d.ts +0 -2
  48. package/dist/esm/lite/ecies.js +26 -15
  49. package/dist/esm/lite/hadu.d.ts +3 -23
  50. package/dist/esm/lite/hadu.js +28 -30
  51. package/dist/esm/lite/lightning.js +1 -2
  52. package/dist/esm/viem.d.ts +44 -47
  53. package/dist/types/binary.d.ts +1 -0
  54. package/dist/types/encryption/encryption.d.ts +17 -20
  55. package/dist/types/generated/abis/lightning-preview.d.ts +8 -106
  56. package/dist/types/generated/abis/lightning.d.ts +54 -115
  57. package/dist/types/generated/abis/verifier.d.ts +86 -36
  58. package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +775 -0
  59. package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +186 -0
  60. package/dist/types/handle.d.ts +16 -0
  61. package/dist/types/lite/ecies.d.ts +0 -2
  62. package/dist/types/lite/hadu.d.ts +3 -23
  63. package/dist/types/viem.d.ts +44 -47
  64. package/package.json +3 -1
@@ -116,7 +116,7 @@ export declare const chains: {
116
116
  formatters: {
117
117
  readonly block: {
118
118
  exclude: [] | undefined;
119
- format: (args: import("viem/chains").OpStackRpcBlock) => {
119
+ format: (args: import("viem/chains").OpStackRpcBlock, action?: string | undefined) => {
120
120
  baseFeePerGas: bigint | null;
121
121
  blobGasUsed: bigint;
122
122
  difficulty: bigint;
@@ -126,7 +126,7 @@ export declare const chains: {
126
126
  gasUsed: bigint;
127
127
  hash: `0x${string}` | null;
128
128
  logsBloom: `0x${string}` | null;
129
- miner: import("abitype").Address;
129
+ miner: import("viem").Address;
130
130
  mixHash: import("viem").Hash;
131
131
  nonce: `0x${string}` | null;
132
132
  number: bigint | null;
@@ -149,17 +149,17 @@ export declare const chains: {
149
149
  };
150
150
  readonly transaction: {
151
151
  exclude: [] | undefined;
152
- format: (args: import("viem/chains").OpStackRpcTransaction) => ({
152
+ format: (args: import("viem/chains").OpStackRpcTransaction, action?: string | undefined) => ({
153
153
  blockHash: `0x${string}` | null;
154
154
  blockNumber: bigint | null;
155
- from: import("abitype").Address;
155
+ from: import("viem").Address;
156
156
  gas: bigint;
157
157
  hash: import("viem").Hash;
158
158
  input: import("viem").Hex;
159
159
  nonce: number;
160
160
  r: import("viem").Hex;
161
161
  s: import("viem").Hex;
162
- to: import("abitype").Address | null;
162
+ to: import("viem").Address | null;
163
163
  transactionIndex: number | null;
164
164
  typeHex: import("viem").Hex | null;
165
165
  v: bigint;
@@ -179,8 +179,8 @@ export declare const chains: {
179
179
  v: bigint;
180
180
  value: bigint;
181
181
  gas: bigint;
182
- to: import("abitype").Address | null;
183
- from: import("abitype").Address;
182
+ to: import("viem").Address | null;
183
+ from: import("viem").Address;
184
184
  nonce: number;
185
185
  blockHash: `0x${string}` | null;
186
186
  blockNumber: bigint | null;
@@ -204,14 +204,14 @@ export declare const chains: {
204
204
  } | {
205
205
  blockHash: `0x${string}` | null;
206
206
  blockNumber: bigint | null;
207
- from: import("abitype").Address;
207
+ from: import("viem").Address;
208
208
  gas: bigint;
209
209
  hash: import("viem").Hash;
210
210
  input: import("viem").Hex;
211
211
  nonce: number;
212
212
  r: import("viem").Hex;
213
213
  s: import("viem").Hex;
214
- to: import("abitype").Address | null;
214
+ to: import("viem").Address | null;
215
215
  transactionIndex: number | null;
216
216
  typeHex: import("viem").Hex | null;
217
217
  v: bigint;
@@ -232,14 +232,14 @@ export declare const chains: {
232
232
  } | {
233
233
  blockHash: `0x${string}` | null;
234
234
  blockNumber: bigint | null;
235
- from: import("abitype").Address;
235
+ from: import("viem").Address;
236
236
  gas: bigint;
237
237
  hash: import("viem").Hash;
238
238
  input: import("viem").Hex;
239
239
  nonce: number;
240
240
  r: import("viem").Hex;
241
241
  s: import("viem").Hex;
242
- to: import("abitype").Address | null;
242
+ to: import("viem").Address | null;
243
243
  transactionIndex: number | null;
244
244
  typeHex: import("viem").Hex | null;
245
245
  v: bigint;
@@ -260,14 +260,14 @@ export declare const chains: {
260
260
  } | {
261
261
  blockHash: `0x${string}` | null;
262
262
  blockNumber: bigint | null;
263
- from: import("abitype").Address;
263
+ from: import("viem").Address;
264
264
  gas: bigint;
265
265
  hash: import("viem").Hash;
266
266
  input: import("viem").Hex;
267
267
  nonce: number;
268
268
  r: import("viem").Hex;
269
269
  s: import("viem").Hex;
270
- to: import("abitype").Address | null;
270
+ to: import("viem").Address | null;
271
271
  transactionIndex: number | null;
272
272
  typeHex: import("viem").Hex | null;
273
273
  v: bigint;
@@ -288,14 +288,14 @@ export declare const chains: {
288
288
  } | {
289
289
  blockHash: `0x${string}` | null;
290
290
  blockNumber: bigint | null;
291
- from: import("abitype").Address;
291
+ from: import("viem").Address;
292
292
  gas: bigint;
293
293
  hash: import("viem").Hash;
294
294
  input: import("viem").Hex;
295
295
  nonce: number;
296
296
  r: import("viem").Hex;
297
297
  s: import("viem").Hex;
298
- to: import("abitype").Address | null;
298
+ to: import("viem").Address | null;
299
299
  transactionIndex: number | null;
300
300
  typeHex: import("viem").Hex | null;
301
301
  v: bigint;
@@ -318,21 +318,21 @@ export declare const chains: {
318
318
  };
319
319
  readonly transactionReceipt: {
320
320
  exclude: [] | undefined;
321
- format: (args: import("viem/chains").OpStackRpcTransactionReceipt) => {
321
+ format: (args: import("viem/chains").OpStackRpcTransactionReceipt, action?: string | undefined) => {
322
322
  blobGasPrice?: bigint | undefined;
323
323
  blobGasUsed?: bigint | undefined;
324
324
  blockHash: import("viem").Hash;
325
325
  blockNumber: bigint;
326
- contractAddress: import("abitype").Address | null | undefined;
326
+ contractAddress: import("viem").Address | null | undefined;
327
327
  cumulativeGasUsed: bigint;
328
328
  effectiveGasPrice: bigint;
329
- from: import("abitype").Address;
329
+ from: import("viem").Address;
330
330
  gasUsed: bigint;
331
331
  logs: import("viem").Log<bigint, number, false>[];
332
332
  logsBloom: import("viem").Hex;
333
333
  root?: `0x${string}` | undefined;
334
334
  status: "success" | "reverted";
335
- to: import("abitype").Address | null;
335
+ to: import("viem").Address | null;
336
336
  transactionHash: import("viem").Hash;
337
337
  transactionIndex: number;
338
338
  type: import("viem").TransactionType;
@@ -392,15 +392,12 @@ export declare const chains: {
392
392
  };
393
393
  };
394
394
  blockTime?: number | undefined | undefined;
395
- contracts?: {
396
- [x: string]: import("viem").ChainContract | {
397
- [sourceId: number]: import("viem").ChainContract | undefined;
398
- } | undefined;
399
- ensRegistry?: import("viem").ChainContract | undefined;
400
- ensUniversalResolver?: import("viem").ChainContract | undefined;
401
- multicall3?: import("viem").ChainContract | undefined;
402
- erc6492Verifier?: import("viem").ChainContract | undefined;
403
- } | undefined;
395
+ contracts: {
396
+ readonly multicall3: {
397
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
398
+ readonly blockCreated: 0;
399
+ };
400
+ };
404
401
  ensTlds?: readonly string[] | undefined;
405
402
  id: 9746;
406
403
  name: "Plasma Testnet";
@@ -546,7 +543,7 @@ export declare const chains: {
546
543
  formatters: {
547
544
  readonly block: {
548
545
  exclude: [] | undefined;
549
- format: (args: import("viem/chains").OpStackRpcBlock) => {
546
+ format: (args: import("viem/chains").OpStackRpcBlock, action?: string | undefined) => {
550
547
  baseFeePerGas: bigint | null;
551
548
  blobGasUsed: bigint;
552
549
  difficulty: bigint;
@@ -556,7 +553,7 @@ export declare const chains: {
556
553
  gasUsed: bigint;
557
554
  hash: `0x${string}` | null;
558
555
  logsBloom: `0x${string}` | null;
559
- miner: import("abitype").Address;
556
+ miner: import("viem").Address;
560
557
  mixHash: import("viem").Hash;
561
558
  nonce: `0x${string}` | null;
562
559
  number: bigint | null;
@@ -579,17 +576,17 @@ export declare const chains: {
579
576
  };
580
577
  readonly transaction: {
581
578
  exclude: [] | undefined;
582
- format: (args: import("viem/chains").OpStackRpcTransaction) => ({
579
+ format: (args: import("viem/chains").OpStackRpcTransaction, action?: string | undefined) => ({
583
580
  blockHash: `0x${string}` | null;
584
581
  blockNumber: bigint | null;
585
- from: import("abitype").Address;
582
+ from: import("viem").Address;
586
583
  gas: bigint;
587
584
  hash: import("viem").Hash;
588
585
  input: import("viem").Hex;
589
586
  nonce: number;
590
587
  r: import("viem").Hex;
591
588
  s: import("viem").Hex;
592
- to: import("abitype").Address | null;
589
+ to: import("viem").Address | null;
593
590
  transactionIndex: number | null;
594
591
  typeHex: import("viem").Hex | null;
595
592
  v: bigint;
@@ -609,8 +606,8 @@ export declare const chains: {
609
606
  v: bigint;
610
607
  value: bigint;
611
608
  gas: bigint;
612
- to: import("abitype").Address | null;
613
- from: import("abitype").Address;
609
+ to: import("viem").Address | null;
610
+ from: import("viem").Address;
614
611
  nonce: number;
615
612
  blockHash: `0x${string}` | null;
616
613
  blockNumber: bigint | null;
@@ -634,14 +631,14 @@ export declare const chains: {
634
631
  } | {
635
632
  blockHash: `0x${string}` | null;
636
633
  blockNumber: bigint | null;
637
- from: import("abitype").Address;
634
+ from: import("viem").Address;
638
635
  gas: bigint;
639
636
  hash: import("viem").Hash;
640
637
  input: import("viem").Hex;
641
638
  nonce: number;
642
639
  r: import("viem").Hex;
643
640
  s: import("viem").Hex;
644
- to: import("abitype").Address | null;
641
+ to: import("viem").Address | null;
645
642
  transactionIndex: number | null;
646
643
  typeHex: import("viem").Hex | null;
647
644
  v: bigint;
@@ -662,14 +659,14 @@ export declare const chains: {
662
659
  } | {
663
660
  blockHash: `0x${string}` | null;
664
661
  blockNumber: bigint | null;
665
- from: import("abitype").Address;
662
+ from: import("viem").Address;
666
663
  gas: bigint;
667
664
  hash: import("viem").Hash;
668
665
  input: import("viem").Hex;
669
666
  nonce: number;
670
667
  r: import("viem").Hex;
671
668
  s: import("viem").Hex;
672
- to: import("abitype").Address | null;
669
+ to: import("viem").Address | null;
673
670
  transactionIndex: number | null;
674
671
  typeHex: import("viem").Hex | null;
675
672
  v: bigint;
@@ -690,14 +687,14 @@ export declare const chains: {
690
687
  } | {
691
688
  blockHash: `0x${string}` | null;
692
689
  blockNumber: bigint | null;
693
- from: import("abitype").Address;
690
+ from: import("viem").Address;
694
691
  gas: bigint;
695
692
  hash: import("viem").Hash;
696
693
  input: import("viem").Hex;
697
694
  nonce: number;
698
695
  r: import("viem").Hex;
699
696
  s: import("viem").Hex;
700
- to: import("abitype").Address | null;
697
+ to: import("viem").Address | null;
701
698
  transactionIndex: number | null;
702
699
  typeHex: import("viem").Hex | null;
703
700
  v: bigint;
@@ -718,14 +715,14 @@ export declare const chains: {
718
715
  } | {
719
716
  blockHash: `0x${string}` | null;
720
717
  blockNumber: bigint | null;
721
- from: import("abitype").Address;
718
+ from: import("viem").Address;
722
719
  gas: bigint;
723
720
  hash: import("viem").Hash;
724
721
  input: import("viem").Hex;
725
722
  nonce: number;
726
723
  r: import("viem").Hex;
727
724
  s: import("viem").Hex;
728
- to: import("abitype").Address | null;
725
+ to: import("viem").Address | null;
729
726
  transactionIndex: number | null;
730
727
  typeHex: import("viem").Hex | null;
731
728
  v: bigint;
@@ -748,21 +745,21 @@ export declare const chains: {
748
745
  };
749
746
  readonly transactionReceipt: {
750
747
  exclude: [] | undefined;
751
- format: (args: import("viem/chains").OpStackRpcTransactionReceipt) => {
748
+ format: (args: import("viem/chains").OpStackRpcTransactionReceipt, action?: string | undefined) => {
752
749
  blobGasPrice?: bigint | undefined;
753
750
  blobGasUsed?: bigint | undefined;
754
751
  blockHash: import("viem").Hash;
755
752
  blockNumber: bigint;
756
- contractAddress: import("abitype").Address | null | undefined;
753
+ contractAddress: import("viem").Address | null | undefined;
757
754
  cumulativeGasUsed: bigint;
758
755
  effectiveGasPrice: bigint;
759
- from: import("abitype").Address;
756
+ from: import("viem").Address;
760
757
  gasUsed: bigint;
761
758
  logs: import("viem").Log<bigint, number, false>[];
762
759
  logsBloom: import("viem").Hex;
763
760
  root?: `0x${string}` | undefined;
764
761
  status: "success" | "reverted";
765
- to: import("abitype").Address | null;
762
+ to: import("viem").Address | null;
766
763
  transactionHash: import("viem").Hash;
767
764
  transactionIndex: number;
768
765
  type: import("viem").TransactionType;
@@ -5,6 +5,7 @@ export type HexString = typeof HexString.Type;
5
5
  export type BytesIsh = string | Uint8Array;
6
6
  export declare function bytesToBigInt(byteArray: Uint8Array): bigint;
7
7
  export declare function bufferToBigInt(buffer: Buffer): bigint;
8
+ export declare function bigintToBytes(value: bigint): Buffer;
8
9
  export declare function bigintToBytes32(value: bigint): Bytes32;
9
10
  export declare function padLeft(bs: Uint8Array, n: number): Buffer;
10
11
  export declare function bytes32ToBigint(bs: BytesIsh): bigint;
@@ -11,11 +11,14 @@ export function bytesToBigInt(byteArray) {
11
11
  export function bufferToBigInt(buffer) {
12
12
  return bytesToBigInt(Uint8Array.from(buffer));
13
13
  }
14
+ export function bigintToBytes(value) {
15
+ return Buffer.from(value.toString(16).padStart(64, '0'), 'hex');
16
+ }
14
17
  // Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is
15
18
  // caller's responsibility to ensure that the bigint is not too large to fit in
16
19
  // 32 bytes, or else the result will be truncated.
17
20
  export function bigintToBytes32(value) {
18
- return parse(Bytes32, Buffer.from(value.toString(16).padStart(64, '0'), 'hex').toString('hex'));
21
+ return parse(Bytes32, bigintToBytes(value).toString('hex'));
19
22
  }
20
23
  export function padLeft(bs, n) {
21
24
  if (bs.length > n) {
@@ -67,4 +70,4 @@ export function parseAddress(address) {
67
70
  export function parseHex(hex) {
68
71
  return parse(HexString, hex);
69
72
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDM0MsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsK0VBQStFO0FBQy9FLGtEQUFrRDtBQUNsRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDM0MsT0FBTyxLQUFLLENBQ1YsT0FBTyxFQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFFRCxN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
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU07UUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDM0MsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSxrREFBa0Q7QUFDbEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8s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
@@ -1,8 +1,8 @@
1
1
  import { Schema } from 'effect';
2
+ import { ByteArray, Hex } from 'viem';
2
3
  import { Bytes32 } from '../binary.js';
3
- import { InputContext } from '../handle.js';
4
4
  export type Encryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(plaintext: PlaintextWithContextOf<S, T>) => Promise<EncryptResultOf<S, T>>;
5
- export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(ciphertext: CiphertextOf<S, T>, context?: InputContext) => Promise<PlaintextOf<S, T>>;
5
+ export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(ciphertext: CiphertextOf<S, T>) => Promise<PlaintextOf<S, T>>;
6
6
  export declare const supportedFheTypes: {
7
7
  readonly euint64: 5;
8
8
  readonly euint160: 7;
@@ -16,38 +16,29 @@ export type SupportedFheType = typeof SupportedFheType.Type;
16
16
  export declare const encryptionSchemes: {
17
17
  readonly tfhe: 0;
18
18
  readonly ecies: 1;
19
- readonly cryptobox: 2;
20
19
  };
21
20
  export declare function getEncryptionSchemeName(scheme: number): string;
22
21
  export type EncryptionSchemes = typeof encryptionSchemes;
23
22
  export type EciesScheme = EncryptionSchemes['ecies'];
24
23
  export type TfheScheme = EncryptionSchemes['tfhe'];
25
- export type CryptoboxScheme = EncryptionSchemes['cryptobox'];
26
- export declare const EncryptionScheme: Schema.Literal<[0, 1, 2]>;
24
+ export declare const EncryptionScheme: Schema.Literal<[0, 1]>;
27
25
  export type EncryptionScheme = typeof EncryptionScheme.Type;
28
26
  type DistType<P, S extends EncryptionScheme, T extends SupportedFheType> = P extends any ? P & {
29
27
  scheme: S;
30
28
  type: T;
31
29
  } : never;
32
- export declare const ciphertextEnvelopes: {
33
- readonly none: 0;
34
- readonly hadu: 1;
35
- };
36
- export declare const CiphertextEnvelope: Schema.SchemaClass<0 | 1, 0 | 1, never>;
37
30
  export declare const Ciphertext: Schema.Struct<{
38
- scheme: Schema.Literal<[0, 1, 2]>;
31
+ scheme: Schema.Literal<[0, 1]>;
39
32
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
40
33
  value: Schema.TemplateLiteral<`0x${string}`>;
41
- envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
42
34
  }>;
43
35
  export type Ciphertext = typeof Ciphertext.Type;
44
36
  export type CiphertextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Ciphertext, S, T>;
45
37
  export declare const CiphertextWithContext: Schema.Struct<{
46
38
  ciphertext: Schema.Struct<{
47
- scheme: Schema.Literal<[0, 1, 2]>;
39
+ scheme: Schema.Literal<[0, 1]>;
48
40
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
49
41
  value: Schema.TemplateLiteral<`0x${string}`>;
50
- envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
51
42
  }>;
52
43
  context: Schema.Struct<{
53
44
  hostChainId: typeof Schema.BigInt;
@@ -62,10 +53,9 @@ export type CiphertextWithContextOf<S extends EncryptionScheme, T extends Suppor
62
53
  };
63
54
  export declare const EncryptResult: Schema.Struct<{
64
55
  ciphertext: Schema.Struct<{
65
- scheme: Schema.Literal<[0, 1, 2]>;
56
+ scheme: Schema.Literal<[0, 1]>;
66
57
  type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
67
58
  value: Schema.TemplateLiteral<`0x${string}`>;
68
- envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
69
59
  }>;
70
60
  context: Schema.Struct<{
71
61
  hostChainId: typeof Schema.BigInt;
@@ -81,11 +71,11 @@ export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedFheTy
81
71
  ciphertext: CiphertextOf<S, T>;
82
72
  };
83
73
  export declare const Plaintext: Schema.Union<[Schema.Struct<{
84
- scheme: Schema.Literal<[0, 1, 2]>;
74
+ scheme: Schema.Literal<[0, 1]>;
85
75
  type: Schema.Literal<[5, 7, 8]>;
86
76
  value: typeof Schema.BigInt;
87
77
  }>, Schema.Struct<{
88
- scheme: Schema.Literal<[0, 1, 2]>;
78
+ scheme: Schema.Literal<[0, 1]>;
89
79
  type: Schema.Literal<[0]>;
90
80
  value: typeof Schema.Boolean;
91
81
  }>]>;
@@ -93,11 +83,11 @@ export type Plaintext = typeof Plaintext.Type;
93
83
  export type PlaintextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Plaintext, S, T>;
94
84
  export declare const PlaintextWithContext: Schema.Struct<{
95
85
  plaintext: Schema.Union<[Schema.Struct<{
96
- scheme: Schema.Literal<[0, 1, 2]>;
86
+ scheme: Schema.Literal<[0, 1]>;
97
87
  type: Schema.Literal<[5, 7, 8]>;
98
88
  value: typeof Schema.BigInt;
99
89
  }>, Schema.Struct<{
100
- scheme: Schema.Literal<[0, 1, 2]>;
90
+ scheme: Schema.Literal<[0, 1]>;
101
91
  type: Schema.Literal<[0]>;
102
92
  value: typeof Schema.Boolean;
103
93
  }>]>;
@@ -113,7 +103,14 @@ export type PlaintextWithContextOf<S extends EncryptionScheme, T extends Support
113
103
  plaintext: PlaintextOf<S, T>;
114
104
  };
115
105
  export declare function bigintToPlaintext<S extends EncryptionScheme, T extends SupportedFheType>(scheme: S, type: T, bigPt: bigint): PlaintextOf<S, T>;
106
+ export declare function decodeCiphertextInput(input: ByteArray | Hex): {
107
+ handle: Hex;
108
+ ciphertext: Hex;
109
+ };
110
+ export declare function encodeCiphertextInput(handle: Hex, ciphertext: Hex): Hex;
116
111
  export declare function plaintextToBigint(plaintext: Plaintext): bigint;
117
112
  export declare function plaintextToBytes32(plaintext: Plaintext): Bytes32;
113
+ export declare function plaintextToBytes(plaintext: Plaintext): Buffer;
118
114
  export declare function bytes32ToPlaintext(plaintext: Bytes32, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
115
+ export declare function bytesToPlaintext(plaintext: Uint8Array, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
119
116
  export {};
@@ -1,5 +1,6 @@
1
1
  import { Schema } from 'effect';
2
- import { bigintToBytes32, Bytes32, HexString } from '../binary.js';
2
+ import { decodeAbiParameters, encodeAbiParameters, } from 'viem';
3
+ import { bigintToBytes, bigintToBytes32, Bytes32, bytesToBigInt, HexString, } from '../binary.js';
3
4
  import { handleTypes, InputContext } from '../handle.js';
4
5
  export const supportedFheTypes = {
5
6
  euint64: handleTypes.euint64,
@@ -14,7 +15,6 @@ export const SupportedFheType = Schema.Literal(...Object.values(supportedFheType
14
15
  export const encryptionSchemes = {
15
16
  tfhe: 0,
16
17
  ecies: 1,
17
- cryptobox: 2,
18
18
  };
19
19
  export function getEncryptionSchemeName(scheme) {
20
20
  switch (scheme) {
@@ -22,23 +22,15 @@ export function getEncryptionSchemeName(scheme) {
22
22
  return 'TFHE';
23
23
  case encryptionSchemes.ecies:
24
24
  return 'ECIES';
25
- case encryptionSchemes.cryptobox:
26
- return 'NACLCryptoBox';
27
25
  default:
28
26
  throw new Error(`Unknown encryption scheme: ${scheme}`);
29
27
  }
30
28
  }
31
- export const EncryptionScheme = Schema.Literal(encryptionSchemes.tfhe, encryptionSchemes.ecies, encryptionSchemes.cryptobox);
32
- export const ciphertextEnvelopes = {
33
- none: 0,
34
- hadu: 1,
35
- };
36
- export const CiphertextEnvelope = Schema.Literal(...Object.values(ciphertextEnvelopes));
29
+ export const EncryptionScheme = Schema.Literal(encryptionSchemes.tfhe, encryptionSchemes.ecies);
37
30
  export const Ciphertext = Schema.Struct({
38
31
  scheme: EncryptionScheme,
39
32
  type: SupportedFheType,
40
33
  value: HexString,
41
- envelope: Schema.optional(CiphertextEnvelope),
42
34
  });
43
35
  export const CiphertextWithContext = Schema.Struct({
44
36
  ciphertext: Ciphertext,
@@ -82,6 +74,22 @@ export function bigintToPlaintext(scheme, type, bigPt) {
82
74
  }
83
75
  throw new Error(`Unsupported FHE type: ${type}`);
84
76
  }
77
+ // This defines the schema we use for input encoding compatible with abi.decode
78
+ // on chain:
79
+ // (bytes32 externalHandle, bytes memory ciphertext) = abi.decode(input, (bytes32, bytes));
80
+ // It does not refer to an actual contract or Solidity type's ABI
81
+ // We consider this location the source of truth for the encoding
82
+ const ciphertextInputAbi = [
83
+ { name: 'handle', type: 'bytes32' },
84
+ { name: 'ciphertext', type: 'bytes' },
85
+ ];
86
+ export function decodeCiphertextInput(input) {
87
+ const [handle, ciphertext] = decodeAbiParameters(ciphertextInputAbi, input);
88
+ return { handle, ciphertext };
89
+ }
90
+ export function encodeCiphertextInput(handle, ciphertext) {
91
+ return encodeAbiParameters(ciphertextInputAbi, [handle, ciphertext]);
92
+ }
85
93
  export function plaintextToBigint(plaintext) {
86
94
  switch (plaintext.type) {
87
95
  case handleTypes.euint64:
@@ -95,7 +103,13 @@ export function plaintextToBigint(plaintext) {
95
103
  export function plaintextToBytes32(plaintext) {
96
104
  return bigintToBytes32(plaintextToBigint(plaintext));
97
105
  }
106
+ export function plaintextToBytes(plaintext) {
107
+ return bigintToBytes(plaintextToBigint(plaintext));
108
+ }
98
109
  export function bytes32ToPlaintext(plaintext, scheme, type) {
99
110
  return bigintToPlaintext(scheme, type, BigInt(plaintext));
100
111
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFpQnpELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztJQUM1QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO0lBQzlCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztDQUNoQixDQUFDO0FBRVgsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN2QyxpQkFBaUIsQ0FDb0IsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQztBQUk3RSw0QkFBNEI7QUFDNUIsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDNUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQ3BDLENBQUM7QUFJRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsU0FBUyxFQUFFLENBQUM7Q0FDSixDQUFDO0FBRVgsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssaUJBQWlCLENBQUMsSUFBSTtZQUN6QixPQUFPLE1B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
112
+ export function bytesToPlaintext(plaintext, scheme, type) {
113
+ return bigintToPlaintext(scheme, type, BigInt(bytesToBigInt(plaintext)));
114
+ }
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUVwQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxHQUNWLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBZ0J6RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDNUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO0lBQzlCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7Q0FDaEIsQ0FBQztBQUVYLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDdkMsaUJBQWlCLENBQ29CLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUM7QUFJN0UsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQzVDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUNwQyxDQUFDO0FBSUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztDQUNBLENBQUM7QUFFWCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxRQUFR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