@inco/js 0.7.1 → 0.7.2

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 (46) hide show
  1. package/dist/cjs/advancedacl/session-key.d.ts +9 -3
  2. package/dist/cjs/advancedacl/session-key.js +18 -7
  3. package/dist/cjs/attestedcompute/attested-compute.d.ts +32 -4
  4. package/dist/cjs/attestedcompute/attested-compute.js +13 -13
  5. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +12 -6
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.js +40 -7
  7. package/dist/cjs/attesteddecrypt/types.d.ts +1 -0
  8. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +28 -14
  9. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -2
  10. package/dist/cjs/kms/quorumClient.d.ts +1 -1
  11. package/dist/cjs/kms/quorumClient.js +118 -17
  12. package/dist/cjs/lite/attested-compute.d.ts +2 -2
  13. package/dist/cjs/lite/attested-compute.js +3 -3
  14. package/dist/cjs/lite/attested-decrypt.d.ts +2 -2
  15. package/dist/cjs/lite/attested-decrypt.js +3 -3
  16. package/dist/cjs/lite/lightning.d.ts +67 -7
  17. package/dist/cjs/lite/lightning.js +105 -40
  18. package/dist/cjs/test/mocks.js +4 -2
  19. package/dist/esm/advancedacl/session-key.d.ts +9 -3
  20. package/dist/esm/advancedacl/session-key.js +20 -9
  21. package/dist/esm/attestedcompute/attested-compute.d.ts +32 -4
  22. package/dist/esm/attestedcompute/attested-compute.js +14 -14
  23. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +12 -6
  24. package/dist/esm/attesteddecrypt/attested-decrypt.js +39 -7
  25. package/dist/esm/attesteddecrypt/types.d.ts +1 -0
  26. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +28 -14
  27. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +2 -2
  28. package/dist/esm/kms/quorumClient.d.ts +1 -1
  29. package/dist/esm/kms/quorumClient.js +118 -17
  30. package/dist/esm/lite/attested-compute.d.ts +2 -2
  31. package/dist/esm/lite/attested-compute.js +3 -3
  32. package/dist/esm/lite/attested-decrypt.d.ts +2 -2
  33. package/dist/esm/lite/attested-decrypt.js +3 -3
  34. package/dist/esm/lite/lightning.d.ts +67 -7
  35. package/dist/esm/lite/lightning.js +105 -40
  36. package/dist/esm/test/mocks.js +4 -2
  37. package/dist/types/advancedacl/session-key.d.ts +9 -3
  38. package/dist/types/attestedcompute/attested-compute.d.ts +32 -4
  39. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +12 -6
  40. package/dist/types/attesteddecrypt/types.d.ts +1 -0
  41. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +28 -14
  42. package/dist/types/kms/quorumClient.d.ts +1 -1
  43. package/dist/types/lite/attested-compute.d.ts +2 -2
  44. package/dist/types/lite/attested-decrypt.d.ts +2 -2
  45. package/dist/types/lite/lightning.d.ts +67 -7
  46. package/package.json +1 -1
@@ -9,7 +9,7 @@ const types_pb_1 = require("./types_pb");
9
9
  /**
10
10
  * Describes the file inco/kms/lite/v1/kms_service.proto.
11
11
  */
12
- exports.file_inco_kms_lite_v1_kms_service = (0, codegenv2_1.fileDesc)("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJItkBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIYChBlaXA3MTJfc2lnbmF0dXJlGAIgASgMEjUKAm9wGAMgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAQgASgJEhUKDXJoc19wbGFpbnRleHQYBSABKAkSLQoJYWNsX3Byb29mGAYgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIjcKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSDgoGaGFuZGxlGAIgASgJIq0BChVEZWNyeXB0aW9uQXR0ZXN0YXRpb24SDgoGaGFuZGxlGAEgASgJEjAKCXBsYWludGV4dBgCIAEoCzIbLmluY28ua21zLmxpdGUudjEuUGxhaW50ZXh0SAASNgoMcmVlbmNyeXB0aW9uGAMgASgLMh4uaW5jby5rbXMubGl0ZS52MS5SZWVuY3J5cHRpb25IABIRCglzaWduYXR1cmUYBCABKAxCBwoFdmFsdWUqpAIKF1N1cHBvcnRlZFNjYWxhckJpbmFyeU9wEgsKB0ZIRV9BREQQABILCgdGSEVfU1VCEAESCwoHRkhFX01VTBACEgsKB0ZIRV9ESVYQAxILCgdGSEVfUkVNEAQSDwoLRkhFX0JJVF9BTkQQBRIOCgpGSEVfQklUX09SEAYSDwoLRkhFX0JJVF9YT1IQBxILCgdGSEVfU0hMEAgSCwoHRkhFX1NIUhAJEgwKCEZIRV9ST1RMEAoSDAoIRkhFX1JPVFIQCxIKCgZGSEVfRVEQDBIKCgZGSEVfTkUQDRIKCgZGSEVfR0UQDhIKCgZGSEVfR1QQDxIKCgZGSEVfTEUQEBIKCgZGSEVfTFQQERILCgdGSEVfTUlOEBISCwoHRkhFX01BWBATMoUDCgpLbXNTZXJ2aWNlEkIKA0tleRIcLmluY28ua21zLmxpdGUudjEuS2V5UmVxdWVzdBodLmluY28ua21zLmxpdGUudjEuS2V5UmVzcG9uc2USZgoPQXR0ZXN0ZWREZWNyeXB0EiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZERlY3J5cHRSZXNwb25zZRJmCg9BdHRlc3RlZENvbXB1dGUSKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlcXVlc3QaKS5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkQ29tcHV0ZVJlc3BvbnNlEmMKDkF0dGVzdGVkUmV2ZWFsEicuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlcXVlc3QaKC5pbmNvLmttcy5saXRlLnYxLkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9pbmNvLWZoZXZtL2luY28tbW9ub3JlcG8vY292YWxpZGF0b3Iva21zL3R5cGVzYgZwcm90bzM", [types_pb_1.file_inco_kms_lite_v1_types]);
12
+ exports.file_inco_kms_lite_v1_kms_service = (0, codegenv2_1.fileDesc)("CiJpbmNvL2ttcy9saXRlL3YxL2ttc19zZXJ2aWNlLnByb3RvEhBpbmNvLmttcy5saXRlLnYxIgwKCktleVJlcXVlc3QiVQoLS2V5UmVzcG9uc2USLQoGa2V5c2V0GAEgASgLMh0uaW5jby5rbXMubGl0ZS52MS5FQ0lFU0tleXNldBIXCg9zaWduaW5nX2FkZHJlc3MYAiABKAkiowEKFkF0dGVzdGVkRGVjcnlwdFJlcXVlc3QSFAoMdXNlcl9hZGRyZXNzGAEgASgJEhkKEXJlZW5jcnlwdF9wdWJfa2V5GAIgASgMEhgKEGVpcDcxMl9zaWduYXR1cmUYAyABKAwSPgoTaGFuZGxlc193aXRoX3Byb29mcxgEIAMoCzIhLmluY28ua21zLmxpdGUudjEuSGFuZGxlV2l0aFByb29mIigKFUF0dGVzdGVkUmV2ZWFsUmVxdWVzdBIPCgdoYW5kbGVzGAMgAygJIvQBChZBdHRlc3RlZENvbXB1dGVSZXF1ZXN0EhQKDHVzZXJfYWRkcmVzcxgBIAEoCRIZChFyZWVuY3J5cHRfcHViX2tleRgCIAEoDBIYChBlaXA3MTJfc2lnbmF0dXJlGAMgASgMEjUKAm9wGAQgASgOMikuaW5jby5rbXMubGl0ZS52MS5TdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBISCgpsaHNfaGFuZGxlGAUgASgJEhUKDXJoc19wbGFpbnRleHQYBiABKAkSLQoJYWNsX3Byb29mGAcgASgLMhouaW5jby5rbXMubGl0ZS52MS5BQ0xQcm9vZiJjChdBdHRlc3RlZERlY3J5cHRSZXNwb25zZRJIChdkZWNyeXB0aW9uX2F0dGVzdGF0aW9ucxgBIAMoCzInLmluY28ua21zLmxpdGUudjEuRGVjcnlwdGlvbkF0dGVzdGF0aW9uImIKFkF0dGVzdGVkUmV2ZWFsUmVzcG9uc2USSAoXZGVjcnlwdGlvbl9hdHRlc3RhdGlvbnMYASADKAsyJy5pbmNvLmttcy5saXRlLnYxLkRlY3J5cHRpb25BdHRlc3RhdGlvbiJiChdBdHRlc3RlZENvbXB1dGVSZXNwb25zZRJHChZkZWNyeXB0aW9uX2F0dGVzdGF0aW9uGAEgASgLMicuaW5jby5rbXMubGl0ZS52MS5EZWNyeXB0aW9uQXR0ZXN0YXRpb24iGgoJUGxhaW50ZXh0Eg0KBXZhbHVlGAEgASgMIkQKDFJlZW5jcnlwdGlvbhIXCg91c2VyX2NpcGhlcnRleHQYASABKAwSGwoTZW5jcnlwdGVkX3NpZ25hdHVyZRgDIAEoDCKtAQoVRGVjcnlwdGlvbkF0dGVzdGF0aW9uEg4KBmhhbmRsZRgBIAEoCRIwCglwbGFpbnRleHQYAiABKAsyGy5pbmNvLmttcy5saXRlLnYxLlBsYWludGV4dEgAEjYKDHJlZW5jcnlwdGlvbhgDIAEoCzIeLmluY28ua21zLmxpdGUudjEuUmVlbmNyeXB0aW9uSAASEQoJc2lnbmF0dXJlGAQgASgMQgcKBXZhbHVlKqQCChdTdXBwb3J0ZWRTY2FsYXJCaW5hcnlPcBILCgdGSEVfQUREEAASCwoHRkhFX1NVQhABEgsKB0ZIRV9NVUwQAhILCgdGSEVfRElWEAMSCwoHRkhFX1JFTRAEEg8KC0ZIRV9CSVRfQU5EEAUSDgoKRkhFX0JJVF9PUhAGEg8KC0ZIRV9CSVRfWE9SEAcSCwoHRkhFX1NITBAIEgsKB0ZIRV9TSFIQCRIMCghGSEVfUk9UTBAKEgwKCEZIRV9ST1RSEAsSCgoGRkhFX0VREAwSCgoGRkhFX05FEA0SCgoGRkhFX0dFEA4SCgoGRkhFX0dUEA8SCgoGRkhFX0xFEBASCgoGRkhFX0xUEBESCwoHRkhFX01JThASEgsKB0ZIRV9NQVgQEzKFAwoKS21zU2VydmljZRJCCgNLZXkSHC5pbmNvLmttcy5saXRlLnYxLktleVJlcXVlc3QaHS5pbmNvLmttcy5saXRlLnYxLktleVJlc3BvbnNlEmYKD0F0dGVzdGVkRGVjcnlwdBIoLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVxdWVzdBopLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWREZWNyeXB0UmVzcG9uc2USZgoPQXR0ZXN0ZWRDb21wdXRlEiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXF1ZXN0GikuaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZENvbXB1dGVSZXNwb25zZRJjCg5BdHRlc3RlZFJldmVhbBInLmluY28ua21zLmxpdGUudjEuQXR0ZXN0ZWRSZXZlYWxSZXF1ZXN0GiguaW5jby5rbXMubGl0ZS52MS5BdHRlc3RlZFJldmVhbFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vaW5jby1maGV2bS9pbmNvLW1vbm9yZXBvL2NvdmFsaWRhdG9yL2ttcy90eXBlc2IGcHJvdG8z", [types_pb_1.file_inco_kms_lite_v1_types]);
13
13
  /**
14
14
  * Describes the message inco.kms.lite.v1.KeyRequest.
15
15
  * Use `create(KeyRequestSchema)` to create a new message.
@@ -162,4 +162,4 @@ exports.SupportedScalarBinaryOpSchema = (0, codegenv2_1.enumDesc)(exports.file_i
162
162
  * @generated from service inco.kms.lite.v1.KmsService
163
163
  */
164
164
  exports.KmsService = (0, codegenv2_1.serviceDesc)(exports.file_inco_kms_lite_v1_kms_service, 0);
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zX3NlcnZpY2VfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28va21zL2xpdGUvdjEva21zX3NlcnZpY2VfcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlFQUFpRTtBQUNqRSxvR0FBb0c7QUFDcEcsb0JBQW9COzs7QUFHcEIsNERBQTRGO0FBRTVGLHlDQUF5RDtBQUd6RDs7R0FFRztBQUNVLFFBQUEsaUNBQWlDLEdBQzVDLElBQUEsb0JBQVEsRUFBQyx5K0VBQXkrRSxFQUFFLENBQUMsc0NBQTJCLENBQUMsQ0FBQyxDQUFDO0FBVXJoRjs7O0dBR0c7QUFDVSxRQUFBLGdCQUFnQixHQUMzQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF5QnBEOzs7R0FHRztBQUNVLFFBQUEsaUJBQWlCLEdBQzVCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXlFcEQ7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FDdkMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFzRnBEOzs7R0FHRztBQUNVLFFBQUEsNEJBQTRCLEdBQ3ZDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWlCcEQ7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDRCQUE0QixHQUN2QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFnQnBEOzs7R0FHRztBQUNVLFFBQUEsNkJBQTZCLEdBQ3hDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWdCcEQ7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQzFCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXdCcEQ7OztHQUdHO0FBQ1UsUUFBQSxrQkFBa0IsR0FDN0IsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBNkVwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxJQUFZLHVCQW9HWDtBQXBHRCxXQUFZLHVCQUF1QjtJQUNqQzs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILGlGQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDRFQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILDRFQUFZLENBQUE7QUFDZCxDQUFDLEVBcEdXLHVCQUF1Qix1Q0FBdkIsdUJBQXVCLFFBb0dsQztBQUVEOztHQUVHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSxvQkFBUSxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWpEOzs7OztHQUtHO0FBQ1UsUUFBQSxVQUFVLEdBK0NyQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUMifQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zX3NlcnZpY2VfcGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2VzL2luY28va21zL2xpdGUvdjEva21zX3NlcnZpY2VfcGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlFQUFpRTtBQUNqRSxvR0FBb0c7QUFDcEcsb0JBQW9COzs7QUFHcEIsNERBQTRGO0FBRTVGLHlDQUF5RDtBQUd6RDs7R0FFRztBQUNVLFFBQUEsaUNBQWlDLEdBQzVDLElBQUEsb0JBQVEsRUFBQyw4aEZBQThoRixFQUFFLENBQUMsc0NBQTJCLENBQUMsQ0FBQyxDQUFDO0FBVTFrRjs7O0dBR0c7QUFDVSxRQUFBLGdCQUFnQixHQUMzQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUF5QnBEOzs7R0FHRztBQUNVLFFBQUEsaUJBQWlCLEdBQzVCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXlFcEQ7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FDdkMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFzR3BEOzs7R0FHRztBQUNVLFFBQUEsNEJBQTRCLEdBQ3ZDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWlCcEQ7OztHQUdHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBaUJwRDs7O0dBR0c7QUFDVSxRQUFBLDRCQUE0QixHQUN2QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFnQnBEOzs7R0FHRztBQUNVLFFBQUEsNkJBQTZCLEdBQ3hDLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQWdCcEQ7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQzFCLElBQUEsdUJBQVcsRUFBQyx5Q0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVCcEQ7OztHQUdHO0FBQ1UsUUFBQSxrQkFBa0IsR0FDN0IsSUFBQSx1QkFBVyxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBNkVwRDs7O0dBR0c7QUFDVSxRQUFBLDJCQUEyQixHQUN0QyxJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxJQUFZLHVCQW9HWDtBQXBHRCxXQUFZLHVCQUF1QjtJQUNqQzs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILGlGQUFjLENBQUE7SUFFZDs7T0FFRztJQUNILG1GQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDhFQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDBFQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDRFQUFZLENBQUE7SUFFWjs7T0FFRztJQUNILDRFQUFZLENBQUE7QUFDZCxDQUFDLEVBcEdXLHVCQUF1Qix1Q0FBdkIsdUJBQXVCLFFBb0dsQztBQUVEOztHQUVHO0FBQ1UsUUFBQSw2QkFBNkIsR0FDeEMsSUFBQSxvQkFBUSxFQUFDLHlDQUFpQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWpEOzs7OztHQUtHO0FBQ1UsUUFBQSxVQUFVLEdBK0NyQixJQUFBLHVCQUFXLEVBQUMseUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUMifQ==
@@ -29,7 +29,7 @@ export declare class KmsQuorumClient {
29
29
  */
30
30
  static fromKmsClients(kmsClients: KmsClient[], threshold: number): KmsQuorumClient;
31
31
  attestedDecrypt(request: AttestedDecryptRequest, backoffConfig?: Partial<BackoffConfig>): Promise<(DecryptionAttestation<EciesScheme, SupportedFheType> | EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>)[]>;
32
- attestedCompute(request: AttestedComputeRequest, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
32
+ attestedCompute(request: AttestedComputeRequest, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType> | EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>;
33
33
  attestedReveal(request: AttestedRevealRequest, backoffConfig?: Partial<BackoffConfig>): Promise<(DecryptionAttestation<EciesScheme, SupportedFheType> | EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>)[]>;
34
34
  /**
35
35
  * Generic method to execute a KMS operation across all clients with retry and threshold logic.
@@ -100,7 +100,7 @@ class KmsQuorumClient {
100
100
  const thresholdResponses = thresholdResults.map((r) => r.response);
101
101
  const signers = thresholdResults.map((r) => r.signer);
102
102
  // Verify that responses are consistent across quorum
103
- const reference = this.verifyComputeResponseConsistency(thresholdResponses);
103
+ const reference = this.verifyComputeResponseConsistency(thresholdResponses, request);
104
104
  return this.buildAggregatedComputeAttestation(reference, thresholdResponses, signers);
105
105
  }
106
106
  async attestedReveal(request, backoffConfig) {
@@ -189,9 +189,20 @@ class KmsQuorumClient {
189
189
  return this.buildPlaintextAttestation(refAtt, covalidatorSignatures);
190
190
  }
191
191
  else if (refAtt.value.case === 'reencryption') {
192
+ // Collect encrypted signatures and sort by signer address
193
+ const encryptedSignatures = thresholdResponses.map((resp) => {
194
+ if (resp.decryptionAttestations[i].value.case === 'reencryption') {
195
+ const reencryption = resp.decryptionAttestations[i].value.value;
196
+ return reencryption.encryptedSignature;
197
+ }
198
+ else {
199
+ throw new Error(`Expected reencryption attestation but received '${resp.decryptionAttestations[i].value.case}'`);
200
+ }
201
+ });
202
+ const encryptedCovalidatorSignatures = this.collectAndSortSignatures(encryptedSignatures, signers);
192
203
  const reencryption = refAtt.value.value;
193
204
  const ct = reencryption.userCiphertext;
194
- const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(reencryption.handle));
205
+ const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(refAtt.handle));
195
206
  return {
196
207
  handle: refAtt.handle,
197
208
  encryptedPlaintext: {
@@ -201,6 +212,7 @@ class KmsQuorumClient {
201
212
  type: fheType,
202
213
  },
203
214
  },
215
+ encryptedSignatures: encryptedCovalidatorSignatures,
204
216
  covalidatorSignatures,
205
217
  };
206
218
  }
@@ -217,9 +229,6 @@ class KmsQuorumClient {
217
229
  if (!refAtt.value) {
218
230
  throw new Error('No value in reference attestation');
219
231
  }
220
- if (refAtt.value.case !== 'plaintext') {
221
- throw new Error(`Unexpected attestation type: ${refAtt.value.case}, expected 'plaintext'`);
222
- }
223
232
  // Collect signatures and sort by signer address
224
233
  // We know all responses have decryption attestations from verifyComputeResponseConsistency
225
234
  const signatures = [];
@@ -230,7 +239,41 @@ class KmsQuorumClient {
230
239
  }
231
240
  }
232
241
  const covalidatorSignatures = this.collectAndSortSignatures(signatures, signers);
233
- return this.buildPlaintextAttestation(refAtt, covalidatorSignatures);
242
+ if (refAtt.value.case === 'plaintext') {
243
+ return this.buildPlaintextAttestation(refAtt, covalidatorSignatures);
244
+ }
245
+ if (refAtt.value.case === 'reencryption') {
246
+ const reencryption = refAtt.value.value;
247
+ const ct = reencryption.userCiphertext;
248
+ if (!ct) {
249
+ throw new Error('No ciphertext in reencryption');
250
+ }
251
+ const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(refAtt.handle));
252
+ // Collect encrypted signatures and sort by signer address
253
+ const encryptedSignatures = thresholdResponses.map((resp) => {
254
+ if (resp.decryptionAttestation?.value.case === 'reencryption') {
255
+ const reencryption = resp.decryptionAttestation?.value.value;
256
+ return reencryption.encryptedSignature;
257
+ }
258
+ else {
259
+ throw new Error(`Expected reencryption attestation but received '${resp.decryptionAttestation?.value.case}'`);
260
+ }
261
+ });
262
+ const encryptedCovalidatorSignatures = this.collectAndSortSignatures(encryptedSignatures, signers);
263
+ return {
264
+ handle: refAtt.handle,
265
+ encryptedPlaintext: {
266
+ ciphertext: {
267
+ value: (0, binary_js_1.bytesToHex)(ct),
268
+ scheme: 1, // EciesScheme
269
+ type: fheType,
270
+ },
271
+ },
272
+ encryptedSignatures: encryptedCovalidatorSignatures,
273
+ covalidatorSignatures,
274
+ };
275
+ }
276
+ throw new Error(`Unexpected attestation type: ${refAtt.value.case}, expected 'plaintext' or 'reencryption'`);
234
277
  }
235
278
  verifyResponseConsistency(thresholdResponses) {
236
279
  if (thresholdResponses.length === 0) {
@@ -272,7 +315,7 @@ class KmsQuorumClient {
272
315
  }
273
316
  return reference;
274
317
  }
275
- verifyComputeResponseConsistency(thresholdResponses) {
318
+ verifyComputeResponseConsistency(thresholdResponses, request) {
276
319
  if (thresholdResponses.length === 0) {
277
320
  throw new Error('No responses collected to verify');
278
321
  }
@@ -284,10 +327,32 @@ class KmsQuorumClient {
284
327
  if (!refAtt.value) {
285
328
  throw new Error('No value in reference attestation');
286
329
  }
287
- if (refAtt.value.case !== 'plaintext') {
288
- throw new Error(`Unexpected attestation type: ${refAtt.value.case}, expected 'plaintext'`);
330
+ const refCase = refAtt.value.case;
331
+ // Precompute reference values based on the case
332
+ let refBytes;
333
+ let refReencryption;
334
+ let refCt;
335
+ let refFheType;
336
+ if (refCase === 'plaintext') {
337
+ refBytes = refAtt.value.value.value;
338
+ }
339
+ else if (refCase === 'reencryption') {
340
+ refReencryption = refAtt.value.value;
341
+ refCt = refReencryption.userCiphertext;
342
+ if (!refCt) {
343
+ throw new Error('No ciphertext in reference reencryption');
344
+ }
345
+ refFheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(refAtt.handle));
346
+ }
347
+ else {
348
+ throw new Error(`Unexpected attestation type: ${refCase}, expected 'plaintext' or 'reencryption'`);
349
+ }
350
+ // If no reencryptPubKey is provided in the request (or it's empty), reject reencryption attestations
351
+ const hasReencryptPubKey = request?.reencryptPubKey && request.reencryptPubKey.length > 0;
352
+ if (refCase === 'reencryption' && !hasReencryptPubKey) {
353
+ throw new Error("Unexpected attestation type: reencryption, expected 'plaintext'");
289
354
  }
290
- // Verify that all responses have a decryption attestation
355
+ // Verify that all responses have a decryption attestation and are consistent
291
356
  for (let r = 1; r < thresholdResponses.length; r++) {
292
357
  const att = thresholdResponses[r].decryptionAttestation;
293
358
  if (!att) {
@@ -296,15 +361,51 @@ class KmsQuorumClient {
296
361
  if (!att.value) {
297
362
  throw new Error('No value in attestation');
298
363
  }
299
- if (att.value.case !== 'plaintext') {
300
- throw new Error('Expected plaintext attestation but received non-plaintext');
364
+ if (att.value.case !== refCase) {
365
+ throw new Error(`Inconsistent attestation types: reference has '${refCase}' but response ${r} has '${att.value.case}'`);
301
366
  }
302
367
  // Verify handles match
303
368
  if (att.handle !== refAtt.handle) {
304
369
  throw new Error('Handles differ across KMS responses');
305
370
  }
306
- // Verify plaintext values match
307
- this.verifyPlaintextBytesConsistency(refAtt.value.value.value, att.value.value.value);
371
+ // Verify consistency based on the case
372
+ if (refCase === 'plaintext') {
373
+ if (!refBytes) {
374
+ throw new Error('No reference plaintext bytes to compare');
375
+ }
376
+ if (att.value.case !== 'plaintext') {
377
+ throw new Error('Expected plaintext attestation but received non-plaintext');
378
+ }
379
+ const bytes = att.value.value.value;
380
+ this.verifyPlaintextBytesConsistency(refBytes, bytes);
381
+ }
382
+ else if (refCase === 'reencryption') {
383
+ if (!refCt || !refFheType) {
384
+ throw new Error('No reference reencryption data to compare');
385
+ }
386
+ if (att.value.case !== 'reencryption') {
387
+ throw new Error('Expected reencryption attestation but received non-reencryption');
388
+ }
389
+ const reencryption = att.value.value;
390
+ const ct = reencryption.userCiphertext;
391
+ if (!ct) {
392
+ throw new Error('No ciphertext in reencryption');
393
+ }
394
+ const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(att.handle));
395
+ // Verify FHE type matches
396
+ if (fheType !== refFheType) {
397
+ throw new Error('FHE types differ across KMS responses');
398
+ }
399
+ // Verify ciphertext bytes match
400
+ if (refCt.length !== ct.length) {
401
+ throw new Error('Ciphertexts differ across KMS responses');
402
+ }
403
+ for (let b = 0; b < refCt.length; b++) {
404
+ if (refCt[b] !== ct[b]) {
405
+ throw new Error('Ciphertexts differ across KMS responses');
406
+ }
407
+ }
408
+ }
308
409
  }
309
410
  return reference;
310
411
  }
@@ -346,7 +447,7 @@ class KmsQuorumClient {
346
447
  if (!refCt) {
347
448
  throw new Error('No ciphertext in reference reencryption');
348
449
  }
349
- const refFheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(refReencryption.handle));
450
+ const refFheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(refAtt.handle));
350
451
  for (let r = 1; r < thresholdResponses.length; r++) {
351
452
  const att = thresholdResponses[r].decryptionAttestations[index];
352
453
  if (att.value?.case !== 'reencryption') {
@@ -357,7 +458,7 @@ class KmsQuorumClient {
357
458
  if (!ct) {
358
459
  throw new Error('No ciphertext in reencryption');
359
460
  }
360
- const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(reencryption.handle));
461
+ const fheType = (0, handle_js_1.getHandleType)((0, binary_js_1.parseHex)(att.handle));
361
462
  // Verify FHE type matches
362
463
  if (fheType !== refFheType) {
363
464
  throw new Error('FHE types differ across KMS responses');
@@ -375,4 +476,4 @@ class KmsQuorumClient {
375
476
  }
376
477
  }
377
478
  exports.KmsQuorumClient = KmsQuorumClient;
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvcnVtQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ttcy9xdW9ydW1DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsNENBS3NCO0FBTXRCLCtEQUdxQztBQVVyQyw0Q0FBNkM7QUFFN0MsMENBQStDO0FBQy9DLDJDQUEyRDtBQUMzRCxpRUFBOEQ7QUFPOUQsTUFBYSxlQUFlO0lBQ1QsSUFBSSxDQUFRO0lBQ1osU0FBUyxDQUFTO0lBUW5DLGlCQUFpQjtJQUNqQixZQUNFLGtCQUFvRSxFQUNwRSxTQUFpQjtRQUVqQixJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtQ0FBbUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQy9ELENBQUM7UUFDSixDQUFDO1FBRUQsMkZBQTJGO1FBQzNGLElBQ0Usa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDN0IsaUJBQWlCLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQzFDLENBQUM7WUFDRCwwQkFBMEI7WUFDMUIsTUFBTSxVQUFVLEdBQUcsa0JBQWlDLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO2dCQUNOLE1BQU0sRUFBRSxNQUFNLENBQUMsYUFBYTthQUM3QixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ04saURBQWlEO1lBQ2pELE1BQU0sU0FBUyxHQUFHLGtCQUdmLENBQUM7WUFDSixJQUFJLENB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
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvcnVtQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ttcy9xdW9ydW1DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsNENBS3NCO0FBTXRCLCtEQUdxQztBQVVyQyw0Q0FBNkM7QUFFN0MsMENBQStDO0FBQy9DLDJDQUEyRDtBQUMzRCxpRUFBOEQ7QUFPOUQsTUFBYSxlQUFlO0lBQ1QsSUFBSSxDQUFRO0lBQ1osU0FBUyxDQUFTO0lBUW5DLGlCQUFpQjtJQUNqQixZQUNFLGtCQUFvRSxFQUNwRSxTQUFpQjtRQUVqQixJQUFJLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtQ0FBbUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQy9ELENBQUM7UUFDSixDQUFDO1FBRUQsMkZBQTJGO1FBQzNGLElBQ0Usa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDN0IsaUJBQWlCLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQzFDLENBQUM7WUFDRCwwQkFBMEI7WUFDMUIsTUFBTSxVQUFVLEdBQUcsa0JBQWlDLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO2dCQUNOLE1BQU0sRUFBRSxNQUFNLENBQUMsYUFBYTthQUM3QixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ04saURBQWlEO1lBQ2pELE1BQU0sU0FBUyxHQUFHLGtCQUdmLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDckMsT0FBTztvQkFDTCxNQUFNLEVBQUUsSUFBQSx3QkFBWSxFQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDbkQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2lCQUN4QixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FDYixJQUFjLEVBQ2QsT0FBa0IsRUFDbEIsU0FBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUNiLHlCQUF5QixPQUFPLENBQUMsTUFBTSxtQ0FBbUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUN6RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLElBQUksQ0FBQyxNQUFNLG1CQUFtQixDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQ25CLFVBQXVCLEVBQ3ZCLFNBQWlCO1FBRWpCLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLFVBQVUsQ0FBQyxNQUFNLDBCQUEwQixDQUMvRSxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUNuQixPQUErQixFQUMvQixhQUFzQztRQU90QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGdDQUFnQyxDQUNsRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDWixPQUFPLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxFQUNELGFBQWEsQ0FDZCxDQUFDO1FBRUYsZ0NBQWdDO1FBQ2hDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUM3QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQW1DLENBQzdDLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCwrRUFBK0U7UUFDL0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQ3JDLFNBQVMsRUFDVCxrQkFBa0IsRUFDbEIsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsT0FBK0IsRUFDL0IsYUFBc0M7UUFLdEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDbEUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ1osT0FBTyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFDRCxhQUFhLENBQ2QsQ0FBQztRQUVGLGdDQUFnQztRQUNoQyxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFtQyxDQUM3QyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEQscURBQXFEO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDckQsa0JBQWtCLEVBQ2xCLE9BQU8sQ0FDUixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsaUNBQWlDLENBQzNDLFNBQVMsRUFDVCxrQkFBa0IsRUFDbEIsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsT0FBOEIsRUFDOUIsYUFBc0M7UUFPdEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDbEUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ1osT0FBTyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUMsRUFDRCxhQUFhLENBQ2QsQ0FBQztRQUVGLGdDQUFnQztRQUNoQyxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFrQyxDQUM1QyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEQsK0VBQStFO1FBQy9FLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUNyQyxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FDNUMsU0FBMkMsRUFDM0MsYUFBc0M7UUFFdEMsaUVBQWlFO1FBQ2pFLCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQztnQkFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMkJBQWdCLEVBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2pELE9BQU8sTUFBTSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sSUFBQSwyQ0FBb0IsRUFHOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssd0JBQXdCLENBQzlCLFVBQXdCLEVBQ3hCLE9BQWtCO1FBRWxCLE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsU0FBUztZQUNULE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUosK0VBQStFO1FBQy9FLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxPQUFPLEdBQUcsT0FBTztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksT0FBTyxHQUFHLE9BQU87Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEMsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixPQUFPLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QixDQUMvQixxQkFBaUQsRUFDakQscUJBQW1DO1FBRW5DLElBQ0UsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLO1lBQzVCLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUNoRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxNQUFtQixDQUFDO1FBQ3pELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFBLHlCQUFhLEVBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBQSxpQ0FBaUIsRUFDakMsaUNBQWlCLENBQUMsS0FBSyxFQUN2QixVQUE4QixFQUM5QixXQUFXLENBQ1osQ0FBQztRQUVGLE9BQU87WUFDTCxNQUFNO1lBQ04sU0FBUztZQUNULHFCQUFxQjtTQUNrQyxDQUFDO0lBQzVELENBQUM7SUFFTywyQkFBMkIsQ0FDakMsU0FBMkQsRUFDM0Qsa0JBQXdFLEVBQ3hFLE9BQWtCO1FBS2xCLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztRQUNqRSxPQUFPLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFFRCxnREFBZ0Q7WUFDaEQsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUN2QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDbkQsQ0FBQztZQUNGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUN6RCxVQUFVLEVBQ1YsT0FBTyxDQUNSLENBQUM7WUFFRixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUN2RSxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQ2hELDBEQUEwRDtnQkFDMUQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDMUQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQzt3QkFDakUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7d0JBQ2hFLE9BQU8sWUFBWSxDQUFDLGtCQUFrQixDQUFDO29CQUN6QyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYixtREFBbUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FDaEcsQ0FBQztvQkFDSixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUNsRSxtQkFBbUIsRUFDbkIsT0FBTyxDQUNSLENBQUM7Z0JBRUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUEseUJBQWEsRUFBQyxJQUFBLG9CQUFRLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELE9BQU87b0JBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFtQjtvQkFDbEMsa0JBQWtCLEVBQUU7d0JBQ2xCLFVBQVUsRUFBRTs0QkFDVixLQUFLLEVBQUUsSUFBQSxzQkFBVSxFQUFDLEVBQUUsQ0FBQzs0QkFDckIsTUFBTSxFQUFFLENBQUMsRUFBRSxjQUFjOzRCQUN6QixJQUFJLEVBQUUsT0FBTzt5QkFDZDtxQkFDZ0Q7b0JBQ25ELG1CQUFtQixFQUFFLDhCQUE4QjtvQkFDbkQscUJBQXFCO2lCQUMyQyxDQUFDO1lBQ3JFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUNiLGdDQUFnQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksMENBQTBDLENBQzVGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUNBQWlDLENBQ3ZDLFNBQWtDLEVBQ2xDLGtCQUE2QyxFQUM3QyxPQUFrQjtRQUlsQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMscUJBQXFCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELDJGQUEyRjtRQUMzRixNQUFNLFVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxJQUFJLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDdkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUN6RCxVQUFVLEVBQ1YsT0FBTyxDQUNSLENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBQSx5QkFBYSxFQUFDLElBQUEsb0JBQVEsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUV2RCwwREFBMEQ7WUFDMUQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztvQkFDOUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQzdELE9BQU8sWUFBWSxDQUFDLGtCQUFrQixDQUFDO2dCQUN6QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYixtREFBbUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FDN0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FDbEUsbUJBQW1CLEVBQ25CLE9BQU8sQ0FDUixDQUFDO1lBRUYsT0FBTztnQkFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQW1CO2dCQUNsQyxrQkFBa0IsRUFBRTtvQkFDbEIsVUFBVSxFQUFFO3dCQUNWLEtBQUssRUFBRSxJQUFBLHNCQUFVLEVBQUMsRUFBRSxDQUFDO3dCQUNyQixNQUFNLEVBQUUsQ0FBQyxFQUFFLGNBQWM7d0JBQ3pCLElBQUksRUFBRSxPQUFPO3FCQUNkO2lCQUNnRDtnQkFDbkQsbUJBQW1CLEVBQUUsOEJBQThCO2dCQUNuRCxxQkFBcUI7YUFDMkMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYixnQ0FBZ0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLDBDQUEwQyxDQUM1RixDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QixDQUMvQixrQkFBd0U7UUFFeEUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkQsSUFDRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUNuRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUN2QyxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRW5ELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFFbEMsMkVBQTJFO1lBQzNFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO2dCQUNELElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0RBQWtELE9BQU8sa0JBQWtCLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUN2RyxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQsdUNBQXVDO1lBQ3ZDLElBQUksT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDckUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0NBQWdDLE9BQU8sMENBQTBDLENBQ2xGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQ0FBZ0MsQ0FDdEMsa0JBQTZDLEVBQzdDLE9BQWdDO1FBRWhDLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixDQUFDO1FBRS9DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRWxDLGdEQUFnRDtRQUNoRCxJQUFJLFFBQWdDLENBQUM7UUFDckMsSUFBSSxlQUFnQyxDQUFDO1FBQ3JDLElBQUksS0FBNkIsQ0FBQztRQUNsQyxJQUFJLFVBQXdELENBQUM7UUFFN0QsSUFBSSxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDdEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3JDLEtBQUssR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELFVBQVUsR0FBRyxJQUFBLHlCQUFhLEVBQUMsSUFBQSxvQkFBUSxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYixnQ0FBZ0MsT0FBTywwQ0FBMEMsQ0FDbEYsQ0FBQztRQUNKLENBQUM7UUFFRCxxR0FBcUc7UUFDckcsTUFBTSxrQkFBa0IsR0FDdEIsT0FBTyxFQUFFLGVBQWUsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakUsSUFBSSxPQUFPLEtBQUssY0FBYyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksS0FBSyxDQUNiLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUVELDZFQUE2RTtRQUM3RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7WUFDeEQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUVELElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0RBQWtELE9BQU8sa0JBQWtCLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUN2RyxDQUFDO1lBQ0osQ0FBQztZQUVELHVCQUF1QjtZQUN2QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUVELHVDQUF1QztZQUN2QyxJQUFJLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztnQkFDN0QsQ0FBQztnQkFFRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNuQyxNQUFNLElBQUksS0FBSyxDQUNiLDJEQUEyRCxDQUM1RCxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hELENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2dCQUMvRCxDQUFDO2dCQUVELElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDckMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztnQkFDRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFhLEVBQUMsSUFBQSxvQkFBUSxFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUVwRCwwQkFBMEI7Z0JBQzFCLElBQUksT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7Z0JBQzNELENBQUM7Z0JBRUQsZ0NBQWdDO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDdEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztvQkFDN0QsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSywrQkFBK0IsQ0FDckMsUUFBb0IsRUFDcEIsS0FBaUI7UUFFakIsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsS0FBYSxFQUNiLFNBQTJELEVBQzNELGtCQUF3RTtRQUV4RSxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUUxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDcEMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLDJCQUEyQixDQUNqQyxLQUFhLEVBQ2IsU0FBMkQsRUFDM0Qsa0JBQXdFO1FBRXhFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxJQUFBLG9CQUFRLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25ELE1BQU0sR0FBRyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDckMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFhLEVBQUMsSUFBQSxvQkFBUSxFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBRXBELDBCQUEwQjtZQUMxQixJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFRCxnQ0FBZ0M7WUFDaEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUExc0JELDBDQTBzQkMifQ==
@@ -1,6 +1,6 @@
1
- import { ATTESTED_COMPUTE_DOMAIN_NAME, ATTESTED_COMPUTE_DOMAIN_VERSION, type IncoLiteAttestedComputeArgs } from '../attestedcompute/attested-compute.js';
1
+ import { ATTESTED_COMPUTE_DOMAIN_NAME, DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION, type IncoLiteAttestedComputeArgs } from '../attestedcompute/attested-compute.js';
2
2
  import type { AttestedCompute, AttestedComputeFnArgs } from '../attestedcompute/types.js';
3
3
  import { AttestedComputeSupportedOps } from '../attestedcompute/types.js';
4
4
  import type { AttestedDecryptFnArgs } from '../attesteddecrypt/types.js';
5
- export { ATTESTED_COMPUTE_DOMAIN_NAME, ATTESTED_COMPUTE_DOMAIN_VERSION, AttestedComputeSupportedOps, };
5
+ export { ATTESTED_COMPUTE_DOMAIN_NAME, AttestedComputeSupportedOps, DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION, };
6
6
  export type { AttestedCompute, AttestedComputeFnArgs, AttestedDecryptFnArgs, IncoLiteAttestedComputeArgs, };
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttestedComputeSupportedOps = exports.ATTESTED_COMPUTE_DOMAIN_VERSION = exports.ATTESTED_COMPUTE_DOMAIN_NAME = void 0;
3
+ exports.DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION = exports.AttestedComputeSupportedOps = exports.ATTESTED_COMPUTE_DOMAIN_NAME = void 0;
4
4
  const attested_compute_js_1 = require("../attestedcompute/attested-compute.js");
5
5
  Object.defineProperty(exports, "ATTESTED_COMPUTE_DOMAIN_NAME", { enumerable: true, get: function () { return attested_compute_js_1.ATTESTED_COMPUTE_DOMAIN_NAME; } });
6
- Object.defineProperty(exports, "ATTESTED_COMPUTE_DOMAIN_VERSION", { enumerable: true, get: function () { return attested_compute_js_1.ATTESTED_COMPUTE_DOMAIN_VERSION; } });
6
+ Object.defineProperty(exports, "DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION", { enumerable: true, get: function () { return attested_compute_js_1.DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION; } });
7
7
  const types_js_1 = require("../attestedcompute/types.js");
8
8
  Object.defineProperty(exports, "AttestedComputeSupportedOps", { enumerable: true, get: function () { return types_js_1.AttestedComputeSupportedOps; } });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2F0dGVzdGVkLWNvbXB1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0ZBSWdEO0FBVTlDLDZHQWJBLGtEQUE0QixPQWFBO0FBQzVCLGdIQWJBLHFEQUErQixPQWFBO0FBTmpDLDBEQUEwRTtBQU94RSw0R0FQTyxzQ0FBMkIsT0FPUCJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2F0dGVzdGVkLWNvbXB1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0ZBSWdEO0FBVTlDLDZHQWJBLGtEQUE0QixPQWFBO0FBRTVCLHdIQWRBLDZEQUF1QyxPQWNBO0FBUHpDLDBEQUEwRTtBQU14RSw0R0FOTyxzQ0FBMkIsT0FNUCJ9
@@ -1,4 +1,4 @@
1
1
  import { type IncoLiteAttestedDecryptorArgs } from '../attesteddecrypt/attested-decrypt.js';
2
2
  export type { IncoLiteAttestedDecryptorArgs };
3
- import { ATTESTED_DECRYPT_DOMAIN_NAME, ATTESTED_DECRYPT_DOMAIN_VERSION } from '../attesteddecrypt/attested-decrypt.js';
4
- export { ATTESTED_DECRYPT_DOMAIN_NAME, ATTESTED_DECRYPT_DOMAIN_VERSION };
3
+ import { ATTESTED_DECRYPT_DOMAIN_NAME, DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION } from '../attesteddecrypt/attested-decrypt.js';
4
+ export { ATTESTED_DECRYPT_DOMAIN_NAME, DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION, };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ATTESTED_DECRYPT_DOMAIN_VERSION = exports.ATTESTED_DECRYPT_DOMAIN_NAME = void 0;
3
+ exports.DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION = exports.ATTESTED_DECRYPT_DOMAIN_NAME = void 0;
4
4
  const attested_decrypt_js_1 = require("../attesteddecrypt/attested-decrypt.js");
5
5
  Object.defineProperty(exports, "ATTESTED_DECRYPT_DOMAIN_NAME", { enumerable: true, get: function () { return attested_decrypt_js_1.ATTESTED_DECRYPT_DOMAIN_NAME; } });
6
- Object.defineProperty(exports, "ATTESTED_DECRYPT_DOMAIN_VERSION", { enumerable: true, get: function () { return attested_decrypt_js_1.ATTESTED_DECRYPT_DOMAIN_VERSION; } });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2F0dGVzdGVkLWRlY3J5cHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsZ0ZBR2dEO0FBQ3ZDLDZHQUhQLGtEQUE0QixPQUdPO0FBQUUsZ0hBRnJDLHFEQUErQixPQUVxQyJ9
6
+ Object.defineProperty(exports, "DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION", { enumerable: true, get: function () { return attested_decrypt_js_1.DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION; } });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2F0dGVzdGVkLWRlY3J5cHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsZ0ZBR2dEO0FBRTlDLDZHQUpBLGtEQUE0QixPQUlBO0FBQzVCLHdIQUpBLDZEQUF1QyxPQUlBIn0=
@@ -205,6 +205,7 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
205
205
  *
206
206
  * @param ephemeralKeypair Session keypair matching the voucher grantee.
207
207
  * @param allowanceVoucherWithSig Signed allowance voucher.
208
+ * @param ethClient - A public eth client or eth wallet client used for signing the attested decrypt request
208
209
  * @param handles Handles to decrypt.
209
210
  * @param options Optional reencryption/backoff configuration.
210
211
  *
@@ -213,6 +214,7 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
213
214
  * const attestations = await lightning.attestedDecryptWithVoucher(
214
215
  * ephemeralKeypair,
215
216
  * voucher,
217
+ * ethClient,
216
218
  * [handle],
217
219
  * );
218
220
  * ```
@@ -222,14 +224,15 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
222
224
  * const encrypted = await lightning.attestedDecryptWithVoucher(
223
225
  * ephemeralKeypair,
224
226
  * voucher,
227
+ * ethClient,
225
228
  * [handle],
226
229
  * { reencryptPubKey: delegateKeypair.encodePublicKey() },
227
230
  * );
228
231
  * ```
229
232
  */
230
- attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, handles: HexString[], backoffConfig?: Partial<BackoffConfig>): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
231
- attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, handles: HexString[], reencryptPubKey: Uint8Array, backoffConfig?: Partial<BackoffConfig>): Promise<Array<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>>;
232
- attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, handles: HexString[], reencryptPubKey: Uint8Array, reencryptKeypair: Secp256k1Keypair, backoffConfig?: Partial<BackoffConfig>): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
233
+ attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, handles: HexString[], backoffConfig?: Partial<BackoffConfig>): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
234
+ attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, handles: HexString[], reencryptPubKey: Uint8Array, backoffConfig?: Partial<BackoffConfig>): Promise<Array<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>>;
235
+ attestedDecryptWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, handles: HexString[], reencryptPubKey: Uint8Array, reencryptKeypair: Secp256k1Keypair, backoffConfig?: Partial<BackoffConfig>): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;
233
236
  /**
234
237
  * Get an attested compute for the given wallet client.
235
238
  *
@@ -240,7 +243,7 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
240
243
  * @param backoffConfig - The backoff configuration for the attested compute request
241
244
  * @returns The decryption attestation
242
245
  *
243
- * @example
246
+ * @example Plaintext result
244
247
  * ```typescript
245
248
  * import { AttestedComputeSupportedOps } from '../lite/attested-compute.js';
246
249
  * const lhsHandle = '0x...';
@@ -249,23 +252,80 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
249
252
  * const response = await lightning.attestedCompute(walletClient, lhsHandle, op, rhsPlaintext);
250
253
  * const { plaintext, covalidatorSignature, handle } = response;
251
254
  * ```
255
+ *
256
+ * @example Reencrypt for a delegate
257
+ * ```ts
258
+ * const encrypted = await lightning.attestedCompute(
259
+ * walletClient,
260
+ * lhsHandle,
261
+ * op,
262
+ * rhsPlaintext,
263
+ * delegatePubKey,
264
+ * );
265
+ * console.log(encrypted.encryptedPlaintext.ciphertext.value);
266
+ * ```
267
+ *
268
+ * @example Reencrypt and decrypt locally
269
+ * ```ts
270
+ * const decrypted = await lightning.attestedCompute(
271
+ * walletClient,
272
+ * lhsHandle,
273
+ * op,
274
+ * rhsPlaintext,
275
+ * keypair.encodePublicKey(),
276
+ * keypair,
277
+ * );
278
+ * console.log(decrypted.plaintext.value);
279
+ * ```
252
280
  */
253
281
  attestedCompute(walletClient: WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
282
+ attestedCompute(walletClient: WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, reencryptPubKey: Uint8Array, backoffConfig?: Partial<BackoffConfig>): Promise<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>;
283
+ attestedCompute(walletClient: WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, reencryptPubKey: Uint8Array, reencryptKeypair: Secp256k1Keypair, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
254
284
  /**
255
285
  * Performs attested compute via a voucher-backed session key.
256
286
  *
257
- * @example
287
+ * @example Plaintext result
258
288
  * ```ts
259
289
  * const attestation = await lightning.attestedComputeWithVoucher(
260
290
  * ephemeralKeypair,
261
291
  * voucher,
292
+ * ethClient,
293
+ * lhsHandle,
294
+ * AttestedComputeSupportedOps.Eq,
295
+ * true,
296
+ * );
297
+ * ```
298
+ *
299
+ * @example Reencrypt for a delegate
300
+ * ```ts
301
+ * const encrypted = await lightning.attestedComputeWithVoucher(
302
+ * ephemeralKeypair,
303
+ * voucher,
304
+ * lhsHandle,
305
+ * AttestedComputeSupportedOps.Eq,
306
+ * true,
307
+ * delegatePubKey,
308
+ * );
309
+ * console.log(encrypted.encryptedPlaintext.ciphertext.value);
310
+ * ```
311
+ *
312
+ * @example Reencrypt and decrypt locally
313
+ * ```ts
314
+ * const decrypted = await lightning.attestedComputeWithVoucher(
315
+ * ephemeralKeypair,
316
+ * voucher,
262
317
  * lhsHandle,
263
318
  * AttestedComputeSupportedOps.Eq,
264
319
  * true,
320
+ * keypair.encodePublicKey(),
321
+ * keypair,
265
322
  * );
323
+ * console.log(decrypted.plaintext.value);
266
324
  * ```
267
325
  */
268
- attestedComputeWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
326
+ attestedComputeWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
327
+ attestedComputeWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, reencryptPubKey: Uint8Array, backoffConfig?: Partial<BackoffConfig>): Promise<EncryptedDecryptionAttestation<EciesScheme, SupportedFheType>>;
328
+ attestedComputeWithVoucher(ephemeralKeypair: Secp256k1Keypair, allowanceVoucherWithSig: AllowanceVoucherWithSig, ethClient: PublicClient<Transport, Chain> | WalletClient<Transport, Chain, Account>, lhsHandle: HexString, op: AttestedComputeOP, rhsPlaintext: bigint | boolean, reencryptPubKey: Uint8Array, reencryptKeypair: Secp256k1Keypair, backoffConfig?: Partial<BackoffConfig>): Promise<DecryptionAttestation<EciesScheme, SupportedFheType>>;
269
329
  /**
270
330
  * Get an decryption of publicly revealed handles.
271
331
  *
@@ -275,7 +335,7 @@ export declare class Lightning<T extends DeploymentSlice = DeploymentSlice> {
275
335
  *
276
336
  * @example
277
337
  * ```typescript
278
- * const response = await lightning.attestedReveal([handle1, handle2]);
338
+ * const response = await lightning.attestedReveal([handle1, handle2], ethClient);
279
339
  * const { plaintext, covalidatorSignature } = response[0];
280
340
  * ```
281
341
  */