@inco/js 0.8.0-devnet-12 → 0.8.0-devnet-20

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 (77) hide show
  1. package/README.md +18 -76
  2. package/dist/cjs/advancedacl/session-key.d.ts +1 -1
  3. package/dist/cjs/advancedacl/session-key.js +3 -2
  4. package/dist/cjs/binary.d.ts +2 -4
  5. package/dist/cjs/binary.js +11 -6
  6. package/dist/cjs/encryption/index.d.ts +1 -1
  7. package/dist/cjs/encryption/index.js +17 -16
  8. package/dist/cjs/generated/abis/lightning.d.ts +70 -17
  9. package/dist/cjs/generated/abis/lightning.js +44 -19
  10. package/dist/cjs/generated/abis/test-elist.d.ts +10 -2
  11. package/dist/cjs/generated/abis/test-elist.js +8 -3
  12. package/dist/cjs/generated/abis/verifier.d.ts +8 -4
  13. package/dist/cjs/generated/abis/verifier.js +4 -4
  14. package/dist/cjs/generated/lightning.d.ts +60 -0
  15. package/dist/cjs/generated/lightning.js +64 -1
  16. package/dist/cjs/generated/local-node.d.ts +4 -4
  17. package/dist/cjs/generated/local-node.js +4 -4
  18. package/dist/cjs/index.d.ts +1 -1
  19. package/dist/cjs/index.js +11 -2
  20. package/dist/cjs/kms/quorumClient.d.ts +1 -10
  21. package/dist/cjs/kms/quorumClient.js +21 -237
  22. package/dist/cjs/kms/quorumConsistency.d.ts +58 -0
  23. package/dist/cjs/kms/quorumConsistency.js +200 -0
  24. package/dist/cjs/kms/thresholdPromises.d.ts +4 -3
  25. package/dist/cjs/kms/thresholdPromises.js +25 -15
  26. package/dist/cjs/lite/hadu.d.ts +1 -1
  27. package/dist/cjs/lite/hadu.js +3 -3
  28. package/dist/cjs/lite/index.d.ts +0 -2
  29. package/dist/cjs/lite/index.js +1 -15
  30. package/dist/cjs/lite/lightning.d.ts +1 -1
  31. package/dist/cjs/lite/lightning.js +10 -33
  32. package/dist/esm/advancedacl/session-key.d.ts +1 -1
  33. package/dist/esm/advancedacl/session-key.js +3 -2
  34. package/dist/esm/binary.d.ts +2 -4
  35. package/dist/esm/binary.js +11 -6
  36. package/dist/esm/encryption/index.d.ts +1 -1
  37. package/dist/esm/encryption/index.js +2 -2
  38. package/dist/esm/generated/abis/lightning.d.ts +70 -17
  39. package/dist/esm/generated/abis/lightning.js +44 -19
  40. package/dist/esm/generated/abis/test-elist.d.ts +10 -2
  41. package/dist/esm/generated/abis/test-elist.js +8 -3
  42. package/dist/esm/generated/abis/verifier.d.ts +8 -4
  43. package/dist/esm/generated/abis/verifier.js +4 -4
  44. package/dist/esm/generated/lightning.d.ts +60 -0
  45. package/dist/esm/generated/lightning.js +64 -1
  46. package/dist/esm/generated/local-node.d.ts +4 -4
  47. package/dist/esm/generated/local-node.js +4 -4
  48. package/dist/esm/index.d.ts +1 -1
  49. package/dist/esm/index.js +2 -2
  50. package/dist/esm/kms/quorumClient.d.ts +1 -10
  51. package/dist/esm/kms/quorumClient.js +21 -237
  52. package/dist/esm/kms/quorumConsistency.d.ts +58 -0
  53. package/dist/esm/kms/quorumConsistency.js +193 -0
  54. package/dist/esm/kms/thresholdPromises.d.ts +4 -3
  55. package/dist/esm/kms/thresholdPromises.js +25 -15
  56. package/dist/esm/lite/hadu.d.ts +1 -1
  57. package/dist/esm/lite/hadu.js +2 -2
  58. package/dist/esm/lite/index.d.ts +0 -2
  59. package/dist/esm/lite/index.js +1 -3
  60. package/dist/esm/lite/lightning.d.ts +1 -1
  61. package/dist/esm/lite/lightning.js +4 -27
  62. package/dist/types/advancedacl/session-key.d.ts +1 -1
  63. package/dist/types/binary.d.ts +2 -4
  64. package/dist/types/encryption/index.d.ts +1 -1
  65. package/dist/types/generated/abis/lightning.d.ts +70 -17
  66. package/dist/types/generated/abis/test-elist.d.ts +10 -2
  67. package/dist/types/generated/abis/verifier.d.ts +8 -4
  68. package/dist/types/generated/lightning.d.ts +60 -0
  69. package/dist/types/generated/local-node.d.ts +4 -4
  70. package/dist/types/index.d.ts +1 -1
  71. package/dist/types/kms/quorumClient.d.ts +1 -10
  72. package/dist/types/kms/quorumConsistency.d.ts +58 -0
  73. package/dist/types/kms/thresholdPromises.d.ts +4 -3
  74. package/dist/types/lite/hadu.d.ts +1 -1
  75. package/dist/types/lite/index.d.ts +0 -2
  76. package/dist/types/lite/lightning.d.ts +1 -1
  77. package/package.json +12 -12
@@ -155,7 +155,11 @@ export declare const advancedAccessControlAbi: readonly [{
155
155
  readonly stateMutability: "nonpayable";
156
156
  }, {
157
157
  readonly type: "function";
158
- readonly inputs: readonly [];
158
+ readonly inputs: readonly [{
159
+ readonly name: "salt";
160
+ readonly internalType: "bytes32";
161
+ readonly type: "bytes32";
162
+ }];
159
163
  readonly name: "updateActiveVouchersSessionNonce";
160
164
  readonly outputs: readonly [];
161
165
  readonly stateMutability: "nonpayable";
@@ -242,6 +246,9 @@ export declare const incoLightningAbi: readonly [{
242
246
  }, {
243
247
  readonly type: "fallback";
244
248
  readonly stateMutability: "nonpayable";
249
+ }, {
250
+ readonly type: "receive";
251
+ readonly stateMutability: "payable";
245
252
  }, {
246
253
  readonly type: "function";
247
254
  readonly inputs: readonly [];
@@ -398,12 +405,6 @@ export declare const incoLightningAbi: readonly [{
398
405
  readonly name: "claimHandle";
399
406
  readonly outputs: readonly [];
400
407
  readonly stateMutability: "nonpayable";
401
- }, {
402
- readonly type: "function";
403
- readonly inputs: readonly [];
404
- readonly name: "cleanTransientStorage";
405
- readonly outputs: readonly [];
406
- readonly stateMutability: "nonpayable";
407
408
  }, {
408
409
  readonly type: "function";
409
410
  readonly inputs: readonly [{
@@ -850,6 +851,34 @@ export declare const incoLightningAbi: readonly [{
850
851
  readonly type: "bytes32";
851
852
  }];
852
853
  readonly stateMutability: "nonpayable";
854
+ }, {
855
+ readonly type: "function";
856
+ readonly inputs: readonly [];
857
+ readonly name: "getBitFee";
858
+ readonly outputs: readonly [{
859
+ readonly name: "";
860
+ readonly internalType: "uint256";
861
+ readonly type: "uint256";
862
+ }];
863
+ readonly stateMutability: "pure";
864
+ }, {
865
+ readonly type: "function";
866
+ readonly inputs: readonly [{
867
+ readonly name: "nOfElements";
868
+ readonly internalType: "uint16";
869
+ readonly type: "uint16";
870
+ }, {
871
+ readonly name: "elType";
872
+ readonly internalType: "enum ETypes";
873
+ readonly type: "uint8";
874
+ }];
875
+ readonly name: "getEListFee";
876
+ readonly outputs: readonly [{
877
+ readonly name: "";
878
+ readonly internalType: "uint256";
879
+ readonly type: "uint256";
880
+ }];
881
+ readonly stateMutability: "pure";
853
882
  }, {
854
883
  readonly type: "function";
855
884
  readonly inputs: readonly [];
@@ -1057,7 +1086,7 @@ export declare const incoLightningAbi: readonly [{
1057
1086
  readonly internalType: "elist";
1058
1087
  readonly type: "bytes32";
1059
1088
  }];
1060
- readonly stateMutability: "nonpayable";
1089
+ readonly stateMutability: "payable";
1061
1090
  }, {
1062
1091
  readonly type: "function";
1063
1092
  readonly inputs: readonly [{
@@ -1075,7 +1104,7 @@ export declare const incoLightningAbi: readonly [{
1075
1104
  readonly internalType: "elist";
1076
1105
  readonly type: "bytes32";
1077
1106
  }];
1078
- readonly stateMutability: "nonpayable";
1107
+ readonly stateMutability: "payable";
1079
1108
  }, {
1080
1109
  readonly type: "function";
1081
1110
  readonly inputs: readonly [{
@@ -1137,7 +1166,7 @@ export declare const incoLightningAbi: readonly [{
1137
1166
  readonly internalType: "elist";
1138
1167
  readonly type: "bytes32";
1139
1168
  }];
1140
- readonly stateMutability: "nonpayable";
1169
+ readonly stateMutability: "payable";
1141
1170
  }, {
1142
1171
  readonly type: "function";
1143
1172
  readonly inputs: readonly [{
@@ -1155,7 +1184,7 @@ export declare const incoLightningAbi: readonly [{
1155
1184
  readonly internalType: "elist";
1156
1185
  readonly type: "bytes32";
1157
1186
  }];
1158
- readonly stateMutability: "nonpayable";
1187
+ readonly stateMutability: "payable";
1159
1188
  }, {
1160
1189
  readonly type: "function";
1161
1190
  readonly inputs: readonly [{
@@ -1169,7 +1198,7 @@ export declare const incoLightningAbi: readonly [{
1169
1198
  readonly internalType: "elist";
1170
1199
  readonly type: "bytes32";
1171
1200
  }];
1172
- readonly stateMutability: "nonpayable";
1201
+ readonly stateMutability: "payable";
1173
1202
  }, {
1174
1203
  readonly type: "function";
1175
1204
  readonly inputs: readonly [{
@@ -1191,7 +1220,7 @@ export declare const incoLightningAbi: readonly [{
1191
1220
  readonly internalType: "elist";
1192
1221
  readonly type: "bytes32";
1193
1222
  }];
1194
- readonly stateMutability: "nonpayable";
1223
+ readonly stateMutability: "payable";
1195
1224
  }, {
1196
1225
  readonly type: "function";
1197
1226
  readonly inputs: readonly [{
@@ -1231,7 +1260,7 @@ export declare const incoLightningAbi: readonly [{
1231
1260
  readonly internalType: "elist";
1232
1261
  readonly type: "bytes32";
1233
1262
  }];
1234
- readonly stateMutability: "nonpayable";
1263
+ readonly stateMutability: "payable";
1235
1264
  }, {
1236
1265
  readonly type: "function";
1237
1266
  readonly inputs: readonly [];
@@ -1269,7 +1298,7 @@ export declare const incoLightningAbi: readonly [{
1269
1298
  readonly internalType: "elist";
1270
1299
  readonly type: "bytes32";
1271
1300
  }];
1272
- readonly stateMutability: "nonpayable";
1301
+ readonly stateMutability: "payable";
1273
1302
  }, {
1274
1303
  readonly type: "function";
1275
1304
  readonly inputs: readonly [{
@@ -2522,7 +2551,7 @@ export declare const incoLightningAbi: readonly [{
2522
2551
  readonly name: "version";
2523
2552
  readonly internalType: "uint16";
2524
2553
  readonly type: "uint16";
2525
- readonly indexed: false;
2554
+ readonly indexed: true;
2526
2555
  }];
2527
2556
  readonly name: "VersionAccepted";
2528
2557
  }, {
@@ -2532,7 +2561,7 @@ export declare const incoLightningAbi: readonly [{
2532
2561
  readonly name: "version";
2533
2562
  readonly internalType: "uint16";
2534
2563
  readonly type: "uint16";
2535
- readonly indexed: false;
2564
+ readonly indexed: true;
2536
2565
  }];
2537
2566
  readonly name: "VersionRemoved";
2538
2567
  }, {
@@ -2555,6 +2584,10 @@ export declare const incoLightningAbi: readonly [{
2555
2584
  readonly type: "error";
2556
2585
  readonly inputs: readonly [];
2557
2586
  readonly name: "ERC1967NonPayable";
2587
+ }, {
2588
+ readonly type: "error";
2589
+ readonly inputs: readonly [];
2590
+ readonly name: "EthInboundTransferUnsupported";
2558
2591
  }, {
2559
2592
  readonly type: "error";
2560
2593
  readonly inputs: readonly [{
@@ -2655,6 +2688,18 @@ export declare const incoLightningAbi: readonly [{
2655
2688
  readonly type: "error";
2656
2689
  readonly inputs: readonly [];
2657
2690
  readonly name: "InvalidShortString";
2691
+ }, {
2692
+ readonly type: "error";
2693
+ readonly inputs: readonly [{
2694
+ readonly name: "provided";
2695
+ readonly internalType: "uint32";
2696
+ readonly type: "uint32";
2697
+ }, {
2698
+ readonly name: "max";
2699
+ readonly internalType: "uint16";
2700
+ readonly type: "uint16";
2701
+ }];
2702
+ readonly name: "ListTooLong";
2658
2703
  }, {
2659
2704
  readonly type: "error";
2660
2705
  readonly inputs: readonly [{
@@ -2759,6 +2804,14 @@ export declare const incoLightningAbi: readonly [{
2759
2804
  readonly type: "uint8";
2760
2805
  }];
2761
2806
  readonly name: "UnsupportedType";
2807
+ }, {
2808
+ readonly type: "error";
2809
+ readonly inputs: readonly [{
2810
+ readonly name: "actual";
2811
+ readonly internalType: "enum ETypes";
2812
+ readonly type: "uint8";
2813
+ }];
2814
+ readonly name: "UnsupportedType";
2762
2815
  }];
2763
2816
  export declare const sessionVerifierAbi: readonly [{
2764
2817
  readonly type: "constructor";
@@ -136,7 +136,7 @@ export declare const elistTesterAbi: readonly [{
136
136
  readonly internalType: "elist";
137
137
  readonly type: "bytes32";
138
138
  }];
139
- readonly stateMutability: "nonpayable";
139
+ readonly stateMutability: "payable";
140
140
  }, {
141
141
  readonly type: "function";
142
142
  readonly inputs: readonly [];
@@ -146,7 +146,7 @@ export declare const elistTesterAbi: readonly [{
146
146
  readonly internalType: "elist";
147
147
  readonly type: "bytes32";
148
148
  }];
149
- readonly stateMutability: "nonpayable";
149
+ readonly stateMutability: "payable";
150
150
  }, {
151
151
  readonly type: "function";
152
152
  readonly inputs: readonly [{
@@ -255,4 +255,12 @@ export declare const elistTesterAbi: readonly [{
255
255
  readonly type: "error";
256
256
  readonly inputs: readonly [];
257
257
  readonly name: "RefundFailed";
258
+ }, {
259
+ readonly type: "error";
260
+ readonly inputs: readonly [{
261
+ readonly name: "actual";
262
+ readonly internalType: "enum ETypes";
263
+ readonly type: "uint8";
264
+ }];
265
+ readonly name: "UnsupportedType";
258
266
  }];
@@ -437,7 +437,7 @@ export declare const incoVerifierAbi: readonly [{
437
437
  readonly type: "bytes32";
438
438
  }, {
439
439
  readonly name: "proofElements";
440
- readonly internalType: "struct ElementDecryptionProof[]";
440
+ readonly internalType: "struct ElementAttestationWithProof[]";
441
441
  readonly type: "tuple[]";
442
442
  readonly components: readonly [{
443
443
  readonly name: "pairHash";
@@ -449,8 +449,8 @@ export declare const incoVerifierAbi: readonly [{
449
449
  readonly type: "bytes32";
450
450
  }, {
451
451
  readonly name: "value";
452
- readonly internalType: "uint256";
453
- readonly type: "uint256";
452
+ readonly internalType: "bytes32";
453
+ readonly type: "bytes32";
454
454
  }];
455
455
  }, {
456
456
  readonly name: "proof";
@@ -724,7 +724,11 @@ export declare const incoVerifierAbi: readonly [{
724
724
  readonly stateMutability: "nonpayable";
725
725
  }, {
726
726
  readonly type: "function";
727
- readonly inputs: readonly [];
727
+ readonly inputs: readonly [{
728
+ readonly name: "salt";
729
+ readonly internalType: "bytes32";
730
+ readonly type: "bytes32";
731
+ }];
728
732
  readonly name: "updateActiveVouchersSessionNonce";
729
733
  readonly outputs: readonly [];
730
734
  readonly stateMutability: "nonpayable";
@@ -1,4 +1,64 @@
1
1
  export declare const lightningDeployments: readonly [{
2
+ readonly name: "incoLightning_9_0_0__269218568";
3
+ readonly majorVersion: 9;
4
+ readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
5
+ readonly pepper: "devnet";
6
+ readonly executorAddress: "0x6c9132D324231D2F68a1491686b0d4c10ee7d257";
7
+ readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc007202d6e9ea2805def71308";
8
+ readonly chainId: 84532;
9
+ readonly chainName: "Base Sepolia";
10
+ readonly version: {
11
+ readonly major: 9;
12
+ readonly minor: 0;
13
+ readonly patch: 0;
14
+ readonly shortSalt: "269218568";
15
+ };
16
+ readonly blockNumber: 39033718;
17
+ readonly deployDate: "2026-03-18T12:08:48.915Z";
18
+ readonly commit: "v0.8.0-devnet-13-40-gc1ceef103-dirty";
19
+ readonly active: true;
20
+ readonly includesPreviewFeatures: false;
21
+ }, {
22
+ readonly name: "incoLightning_8_0_0__985328058";
23
+ readonly majorVersion: 8;
24
+ readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
25
+ readonly pepper: "devnet";
26
+ readonly executorAddress: "0x43119Ad1F673E998CE4f3BB305bB92Bd5ab97E3B";
27
+ readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc009045f766b38e5a773da9ba";
28
+ readonly chainId: 84532;
29
+ readonly chainName: "Base Sepolia";
30
+ readonly version: {
31
+ readonly major: 8;
32
+ readonly minor: 0;
33
+ readonly patch: 0;
34
+ readonly shortSalt: "985328058";
35
+ };
36
+ readonly blockNumber: 39028741;
37
+ readonly deployDate: "2026-03-18T09:22:53.919Z";
38
+ readonly commit: "v0.8.0-devnet-13-40-gc1ceef103-dirty";
39
+ readonly active: true;
40
+ readonly includesPreviewFeatures: false;
41
+ }, {
42
+ readonly name: "incoLightning_7_0_0__24560427";
43
+ readonly majorVersion: 7;
44
+ readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
45
+ readonly pepper: "devnet";
46
+ readonly executorAddress: "0xA2275E60cCEd081fFD7373593c44ebc30E6Efe66";
47
+ readonly salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc0057b7694d1492d2775d132b";
48
+ readonly chainId: 84532;
49
+ readonly chainName: "Base Sepolia";
50
+ readonly version: {
51
+ readonly major: 7;
52
+ readonly minor: 0;
53
+ readonly patch: 0;
54
+ readonly shortSalt: "24560427";
55
+ };
56
+ readonly blockNumber: 38991058;
57
+ readonly deployDate: "2026-03-17T12:26:47.504Z";
58
+ readonly commit: "v0.8.0-devnet-13-38-g52b1dfef3";
59
+ readonly active: true;
60
+ readonly includesPreviewFeatures: false;
61
+ }, {
2
62
  readonly name: "incoLightning_6_0_0__281949651";
3
63
  readonly majorVersion: 6;
4
64
  readonly deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC";
@@ -16,12 +16,12 @@ export declare const localNodeLightningConfig: {
16
16
  readonly senderPrivateKey: "0x3ff395b755c4dc09837d0672dd421915e9b9835a4733edf63d8fd12b3fe4475c";
17
17
  };
18
18
  readonly devnet: {
19
- readonly executorAddress: "0xDF3830489208461f72Df6E45D0e6cbF9DBB74fe1";
19
+ readonly executorAddress: "0x6c9132D324231D2F68a1491686b0d4c10ee7d257";
20
20
  readonly chainId: 31337;
21
21
  readonly covalidatorUrls: readonly ["http://localhost:50055"];
22
- readonly signers: readonly ["0x16844D5b82DdA890dc4DFc1407Ce4b1ebFdF6a93"];
22
+ readonly signers: readonly ["0xD413DF212d2aeDf4F66241441c018Ce71a2119F1"];
23
23
  readonly hostChainRpcUrl: "http://localhost:8545";
24
- readonly senderPrivateKey: "0x3f9007c8e8de6208a5af414990834e80920255754b247f8a2cdeb293587cab1b";
24
+ readonly senderPrivateKey: "0x5683b966233cfbb5e8355f45cdb5fca9d6c713701909d01086cb85276fb9f474";
25
25
  };
26
26
  readonly alphanet: {
27
27
  readonly executorAddress: "0xc0d693DeEF0A91CE39208676b6da09B822abd199";
@@ -32,7 +32,7 @@ export declare const localNodeLightningConfig: {
32
32
  readonly senderPrivateKey: "0x279c172cf3638a79642daa5f7666c600befde318550d7579cf96280920e318b6";
33
33
  };
34
34
  readonly scratch: {
35
- readonly executorAddress: "0xF253724506f9aF666C301c0aD94f92f92Ff390E4";
35
+ readonly executorAddress: "0x4d71c2268a5a0d525519d2055eaee6b3f5597999";
36
36
  readonly chainId: 31337;
37
37
  readonly covalidatorUrls: readonly ["http://localhost:50055"];
38
38
  readonly signers: readonly ["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"];
@@ -1,5 +1,5 @@
1
1
  export * from './binary.js';
2
2
  export * from './chain.js';
3
- export * from './handle.js';
3
+ export { HANDLE_LENGTH_BYTES, HANDLE_VERSION, HandleTypeName, InputContext, getHandleType, handleTypes, isFheType, validateHandle, type FheType, type Handle, type HandleTypes, } from './handle.js';
4
4
  export * from './schema.js';
5
5
  export * from './viem.js';
@@ -2,7 +2,7 @@ import type { Address } from 'viem';
2
2
  import type { DecryptionAttestation, EncryptedDecryptionAttestation } from '../attesteddecrypt/types.js';
3
3
  import type { EncryptionScheme, SupportedFheType } from '../encryption/encryption.js';
4
4
  import type { AttestedComputeRequest, AttestedDecryptRequest, AttestedRevealRequest } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
5
- import type { XwingKeypair } from '../lite/index.js';
5
+ import type { XwingKeypair } from '../lite/xwing.js';
6
6
  import type { BackoffConfig } from '../retry.js';
7
7
  import { type KmsClient } from './client.js';
8
8
  export declare class KmsQuorumClient {
@@ -48,13 +48,4 @@ export declare class KmsQuorumClient {
48
48
  private buildPlaintextAttestation;
49
49
  private buildAggregatedAttestations;
50
50
  private buildAggregatedComputeAttestation;
51
- private verifyResponseConsistency;
52
- private verifyComputeResponseConsistency;
53
- /**
54
- * Verifies that two plaintext byte arrays are identical.
55
- * Uses constant-time comparison to prevent timing side-channel attacks.
56
- */
57
- private verifyPlaintextBytesConsistency;
58
- private verifyPlaintextConsistency;
59
- private verifyCiphertextConsistency;
60
51
  }
@@ -0,0 +1,58 @@
1
+ import type { Address } from 'viem';
2
+ import type { AttestedComputeRequest, AttestedComputeResponse, AttestedDecryptResponse, AttestedRevealResponse, DecryptionAttestation as ProtoDecryptionAttestation } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
3
+ import type { XwingKeypair } from '../lite/xwing.js';
4
+ /**
5
+ * Computes a canonical key for a single attestation.
6
+ * For plaintext/reencryption+keypair, the key is handle:hex(value).
7
+ * For reencryption without a keypair (XWing ciphertexts are non-deterministic),
8
+ * falls back to handle:op-type as a structural stand-in.
9
+ */
10
+ export declare function computeAttestationKey(att: ProtoDecryptionAttestation, reencryptKeypair?: XwingKeypair): Promise<string>;
11
+ /**
12
+ * Validates that all responses in a winning bucket have the same attestation
13
+ * count and types as the quorum-elected reference (bucket[0]).
14
+ */
15
+ export declare function validateDecryptResponseStructure<T extends AttestedDecryptResponse | AttestedRevealResponse>(bucket: Array<{
16
+ response: T;
17
+ signer: Address;
18
+ }>): void;
19
+ /**
20
+ * Validates that all responses in a winning bucket have a decryption
21
+ * attestation with the same case as the quorum-elected reference (bucket[0]),
22
+ * and that the case is consistent with the request's reencryptPubKey.
23
+ */
24
+ export declare function validateComputeResponseStructure(bucket: Array<{
25
+ response: AttestedComputeResponse;
26
+ signer: Address;
27
+ }>, request?: AttestedComputeRequest): void;
28
+ /**
29
+ * Verifies decrypt/reveal response consistency using hash-bucket voting.
30
+ * Collects all N responses, buckets them by content key, and returns the
31
+ * winning bucket (the first one with >= threshold votes).
32
+ *
33
+ * This is robust against a faulty first-responding node: even if responses[0]
34
+ * disagrees, a quorum of agreeing responses will form a winning bucket.
35
+ */
36
+ export declare function verifyDecryptResponseConsistency<T extends AttestedDecryptResponse | AttestedRevealResponse>(allResults: Array<{
37
+ response: T;
38
+ signer: Address;
39
+ }>, threshold: number, reencryptKeypair?: XwingKeypair): Promise<{
40
+ reference: T;
41
+ winningResults: Array<{
42
+ response: T;
43
+ signer: Address;
44
+ }>;
45
+ }>;
46
+ /**
47
+ * Verifies compute response consistency using hash-bucket voting.
48
+ */
49
+ export declare function verifyComputeResponseConsistency(allResults: Array<{
50
+ response: AttestedComputeResponse;
51
+ signer: Address;
52
+ }>, threshold: number, request?: AttestedComputeRequest, reencryptKeypair?: XwingKeypair): Promise<{
53
+ reference: AttestedComputeResponse;
54
+ winningResults: Array<{
55
+ response: AttestedComputeResponse;
56
+ signer: Address;
57
+ }>;
58
+ }>;
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Executes promises and returns results as soon as threshold is reached
2
+ * Executes all promises and returns all successful results.
3
+ * Rejects early if it becomes mathematically impossible to reach the threshold.
3
4
  * @param promises Array of promises to execute
4
- * @param threshold Number of successful responses needed
5
- * @returns Promise that resolves with threshold number of results
5
+ * @param threshold Minimum number of successful responses required
6
+ * @returns Promise that resolves with all successful results (length >= threshold)
6
7
  */
7
8
  export declare function executeWithThreshold<T>(promises: Promise<T>[], threshold: number): Promise<T[]>;
@@ -1,4 +1,4 @@
1
- import { PlaintextWithContext } from '../encryption/index.js';
1
+ import { PlaintextWithContext } from '../encryption/encryption.js';
2
2
  import { InputPayload } from '../generated/es/inco/covalidator/compute/v1/types_pb.js';
3
3
  export declare function encodeInput({ plaintext, context, }: PlaintextWithContext): Uint8Array;
4
4
  export declare function decodeInput(input: Uint8Array): InputPayload;
@@ -4,6 +4,4 @@ export type { HandleWithProof } from '../generated/es/inco/kms/lite/v1/types_pb.
4
4
  export * from './attested-compute.js';
5
5
  export * from './attested-decrypt.js';
6
6
  export * from './deployments.js';
7
- export * from './hadu.js';
8
7
  export * from './lightning.js';
9
- export { TEST_NETWORK_SEED_KEY, XWING_PUBLIC_KEY_SIZE, decodeXwingPrivateKey, decodeXwingPublicKey, decrypt, deriveXwingKeypairFromSeed, encodeXwingPublicKey, encrypt, generateXwingKeypair, getXwingDecryptor, getXwingEncryptor, type XwingDecryptorArgs, type XwingEncryptorArgs, type XwingKeypair, } from './xwing.js';
@@ -4,7 +4,7 @@ import { AllowanceVoucherWithSig } from '../advancedacl/types.js';
4
4
  import { AttestedComputeOP } from '../attestedcompute/types.js';
5
5
  import { DecryptionAttestation, EncryptedDecryptionAttestation } from '../attesteddecrypt/index.js';
6
6
  import { Address, HexString } from '../binary.js';
7
- import { EncryptionScheme, SupportedFheType } from '../encryption/index.js';
7
+ import { EncryptionScheme, SupportedFheType } from '../encryption/encryption.js';
8
8
  import { incoVerifierAbi } from '../generated/abis/verifier.js';
9
9
  import { lightningDeployments } from '../generated/lightning.js';
10
10
  import { localNodeLightningConfig } from '../generated/local-node.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inco/js",
3
- "version": "0.8.0-devnet-12",
3
+ "version": "0.8.0-devnet-20",
4
4
  "repository": "https://github.com/Inco-fhevm/inco-monorepo",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -80,17 +80,17 @@
80
80
  "test:update-snapshots": "bun vitest run --project unit --update"
81
81
  },
82
82
  "dependencies": {
83
- "@bufbuild/protobuf": "^2.2.3",
84
- "@connectrpc/connect": "^2.0.0",
85
- "@connectrpc/connect-node": "^2.0.0",
86
- "@connectrpc/connect-web": "^2.0.1",
87
- "@grpc/grpc-js": "^1.13.4",
88
- "@hpke/hybridkem-x-wing": "^0.6.1",
89
- "@hpke/core": "^1.7.5",
90
- "@hpke/chacha20poly1305": "^1.7.1",
91
- "effect": "^3.17.13",
92
- "sha3": "^2.1.4",
93
- "viem": "^2.39.3"
83
+ "@bufbuild/protobuf": "2.10.0",
84
+ "@connectrpc/connect": "2.1.0",
85
+ "@connectrpc/connect-node": "2.1.0",
86
+ "@connectrpc/connect-web": "2.1.0",
87
+ "@grpc/grpc-js": "1.14.0",
88
+ "@hpke/hybridkem-x-wing": "0.6.1",
89
+ "@hpke/core": "1.7.5",
90
+ "@hpke/chacha20poly1305": "1.7.1",
91
+ "effect": "3.18.4",
92
+ "sha3": "2.1.4",
93
+ "viem": "2.39.3"
94
94
  },
95
95
  "devDependencies": {
96
96
  "@inco/pega": "workspace:*",