@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
@@ -5,6 +5,7 @@ exports.isFheType = isFheType;
5
5
  exports.getHandleType = getHandleType;
6
6
  exports.computePrehandle = computePrehandle;
7
7
  exports.computeHandle = computeHandle;
8
+ exports.hashInputContext = hashInputContext;
8
9
  // See solidity https://github.com/zama-ai/fhevm/blob/429d127709b56c5b8ec564a2f2cc329aa7f6722f/lib/TFHEExecutor.sol#L15
9
10
  const effect_1 = require("effect");
10
11
  const sha3_1 = require("sha3");
@@ -53,6 +54,14 @@ function getHandleType(handle) {
53
54
  /// @dev handle format for user inputs is: keccak256(keccak256(CiphertextFHEList)||index_handle)[0:29] || index_handle || handle_type || handle_version
54
55
  /// @dev other handles format (fhe ops results) is: keccak256(keccak256(rawCiphertextFHEList)||index_handle)[0:30] || handle_type || handle_versioreenctestn
55
56
  /// @dev the CiphertextFHEList actually contains: 1 byte (= N) for size of handles_list, N bytes for the handles_types : 1 per handle, then the original fhe160list raw ciphertext
57
+ /**
58
+ * Computes the prehandle hash for an input based on the ciphertext
59
+ *
60
+ * @param ciphertextPayload Note this is the different from the input which has the external handle prepended
61
+ * @param indexHandle
62
+ * @param handleType
63
+ * @param handleVersion
64
+ */
56
65
  function computePrehandle({ ciphertext, indexHandle, handleType, handleVersion, }) {
57
66
  assertUint8(indexHandle);
58
67
  assertUint8(handleType);
@@ -71,8 +80,13 @@ function computePrehandle({ ciphertext, indexHandle, handleType, handleVersion,
71
80
  handle.writeUInt8(handleVersion, 31);
72
81
  return handle;
73
82
  }
74
- // abi.encodePacked(prehandle, "evm/", chainID, _keysetID, context.userAddress, context.contractAddress)
75
- // abi.encodePacked(prehandle, chainID, _keysetID, context.userAddress, context.contractAddress)
83
+ /**
84
+ * Computes the final handle for an input based on the prehandle and the input context, matches the handle generation
85
+ * in Go and Solidity
86
+ *
87
+ * @param prehandle
88
+ * @param context
89
+ */
76
90
  function computeHandle({ prehandle, context, }) {
77
91
  if (prehandle.length !== 32) {
78
92
  throw new Error(`prehandle should be 32 bytes but is: ${prehandle.length}`);
@@ -95,9 +109,20 @@ function computeHandle({ prehandle, context, }) {
95
109
  prehandle.slice(29, 32),
96
110
  ]);
97
111
  }
112
+ function hashInputContext(context) {
113
+ const packed = (0, viem_1.encodePacked)(['string', 'uint256', 'address', 'address', 'address'], [
114
+ // Note: The x/hostchain spec requires the chain ID to be prefixed with 'evm/' for EVM chains
115
+ 'evm/',
116
+ context.hostChainId,
117
+ context.aclAddress,
118
+ context.userAddress,
119
+ context.contractAddress,
120
+ ]);
121
+ return new sha3_1.Keccak(256).update(Buffer.from((0, viem_1.hexToBytes)(packed))).digest();
122
+ }
98
123
  function assertUint8(value) {
99
124
  if (!Number.isInteger(value) || value < 0 || value > 255) {
100
125
  throw new Error(`Invalid uint8 value: ${value}`);
101
126
  }
102
127
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsOEJBRUM7QUF3QkQsc0NBT0M7QUFPRCw0Q0EyQkM7QUFJRCxzQ0E4QkM7QUF6SUQsdUhBQXVIO0FBQ3ZILG1DQUFnQztBQUNoQywrQkFBOEI7QUFDOUIsK0JBQXVEO0FBQ3ZELDJDQUF3QztBQUUzQixRQUFBLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFaEMsbUhBQW1IO0FBQ25ILHdIQUF3SDtBQUN4SCwyQkFBMkI7QUFDZCxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxDQUFDO0lBQ1gsUUFBUSxFQUFFLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLFFBQVEsRUFBRSxDQUFDO0lBQ1gsU0FBUyxFQUFFLEVBQUU7SUFDYixTQUFTLEVBQUUsRUFBRTtDQUNkLENBQUMsQ0FBQztBQUVILE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQVcsQ0FBaUMsQ0FBQztBQUVoRSxRQUFBLGNBQWMsR0FBRyxlQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7QUFRN0QsU0FBZ0IsU0FBUyxDQUFDLEtBQWE7SUFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBZ0IsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFWSxRQUFBLFlBQVksR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hDLFdBQVcsRUFBRSxlQUFNLENBQUMsTUFBTTtJQUMxQixVQUFVLEVB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
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsOEJBRUM7QUF3QkQsc0NBT0M7QUFlRCw0Q0EyQkM7QUFTRCxzQ0E4QkM7QUFFRCw0Q0FhQztBQXJLRCx1SEFBdUg7QUFDdkgsbUNBQWdDO0FBQ2hDLCtCQUE4QjtBQUM5QiwrQkFBdUQ7QUFDdkQsMkNBQXdDO0FBRTNCLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUVoQyxtSEFBbUg7QUFDbkgsd0hBQXdIO0FBQ3hILDJCQUEyQjtBQUNkLFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsUUFBUSxFQUFFLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLFFBQVEsRUFBRSxDQUFDO0lBQ1gsUUFBUSxFQUFFLENBQUM7SUFDWCxTQUFTLEVBQUUsRUFBRTtJQUNiLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBRUgsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBVyxDQUFpQyxDQUFDO0FBRWhFLFFBQUEsY0FBYyxHQUFHLGVBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztBQVE3RCxTQUFnQixTQUFTLENBQUMsS0FBYTtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFnQixDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVZLFFBQUEsWUFBWSxHQUFHLGVBQU0sQ0FBQyxNQUFNLENBQUM7SUFDeEMsV0FBVyxFQUFFLGVBQU0sQ0FBQyxNQUFNO0lB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
@@ -13,14 +13,12 @@ export declare function decodeSecp256k1PublicKey(pubKeyCompressed: Uint8Array):
13
13
  export declare function decodeSecp256k1PrivateKey(privKey: Uint8Array): Secp256k1Keypair;
14
14
  export declare function encrypt(pubKeyA: Secp256k1PubKey, plaintext: Uint8Array, privKeyB: Secp256k1Keypair): Promise<Uint8Array>;
15
15
  export type EciesEncryptorArgs = {
16
- scheme: EciesScheme;
17
16
  pubKeyA: Secp256k1PubKey;
18
17
  privKeyB: Secp256k1Keypair;
19
18
  };
20
19
  export declare function getEciesEncryptor({ pubKeyA, privKeyB, }: EciesEncryptorArgs): Encryptor<EciesScheme>;
21
20
  export declare function decrypt(privKeyA: Secp256k1Keypair, ciphertext: Uint8Array): Promise<Uint8Array>;
22
21
  export type EciesDecryptorArgs = {
23
- scheme: EciesScheme;
24
22
  privKeyA: Secp256k1Keypair;
25
23
  };
26
24
  export declare function getEciesDecryptor({ privKeyA, }: EciesDecryptorArgs): Decryptor<EciesScheme>;
@@ -14,6 +14,7 @@ const ellipticPkg = require("elliptic");
14
14
  const binary_js_1 = require("../binary.js");
15
15
  const encryption_js_1 = require("../encryption/encryption.js");
16
16
  const handle_js_1 = require("../handle.js");
17
+ const schema_js_1 = require("../schema.js");
17
18
  const hadu_js_1 = require("./hadu.js");
18
19
  const secp256k1 = new ellipticPkg.ec('secp256k1');
19
20
  // Convert an ec.KeyPair from the 'elliptic' package (assumed to have geen generated
@@ -81,8 +82,8 @@ function getEciesEncryptor({ pubKeyA, privKeyB, }) {
81
82
  if (plaintext.scheme !== encryption_js_1.encryptionSchemes.ecies) {
82
83
  throw new Error(`Plaintext with scheme ${(0, encryption_js_1.getEncryptionSchemeName)(plaintext.scheme)} cannot be encrypted with ECIES`);
83
84
  }
84
- const ptBuf = Buffer.from((0, hadu_js_1.encodeInput)({ plaintext, context }));
85
- const ct = await (0, ecies_geth_1.encrypt)(pubKeyABuffer, ptBuf, {
85
+ const inputCiphertextPayloadBytes = Buffer.from((0, hadu_js_1.encodeInput)({ plaintext, context }));
86
+ const ct = await (0, ecies_geth_1.encrypt)(pubKeyABuffer, inputCiphertextPayloadBytes, {
86
87
  ephemPrivateKey: privKeyBBuffer,
87
88
  });
88
89
  const prehandle = (0, handle_js_1.computePrehandle)({
@@ -95,6 +96,7 @@ function getEciesEncryptor({ pubKeyA, privKeyB, }) {
95
96
  prehandle,
96
97
  context: context,
97
98
  });
99
+ // const inputBytes = Buffer.concat([handle, ct]);
98
100
  return {
99
101
  prehandle: (0, binary_js_1.asBytes32)(prehandle),
100
102
  handle: (0, binary_js_1.asBytes32)(handle),
@@ -102,7 +104,8 @@ function getEciesEncryptor({ pubKeyA, privKeyB, }) {
102
104
  ciphertext: {
103
105
  scheme: encryption_js_1.encryptionSchemes.ecies,
104
106
  type: plaintext.type,
105
- value: (0, binary_js_1.bytesToHex)(ct),
107
+ // The prepended handle serves as a checksum on the encrypted payload, so we can fail early on an accidental mismatch
108
+ value: (0, encryption_js_1.encodeCiphertextInput)((0, binary_js_1.bytesToHex)(handle), (0, binary_js_1.bytesToHex)(ct)),
106
109
  },
107
110
  };
108
111
  };
@@ -117,19 +120,27 @@ async function decrypt(privKeyA, ciphertext) {
117
120
  }
118
121
  function getEciesDecryptor({ privKeyA, }) {
119
122
  const privKeyABuffer = privKeyA.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
120
- return async ({ scheme, type, value, envelope, }) => {
123
+ return async ({ scheme, type, value, }) => {
121
124
  if (scheme !== encryption_js_1.encryptionSchemes.ecies) {
122
125
  throw new Error(`Ciphertext with scheme ${(0, encryption_js_1.getEncryptionSchemeName)(scheme)} cannot be decrypted with ECIES`);
123
126
  }
124
- const ptBuf = await (0, ecies_geth_1.decrypt)(privKeyABuffer, (0, binary_js_1.bytesFromHexString)(value));
125
- // If envelope field is omitted then assume HADU, only with an explicit none envelope do we assume a raw byte
126
- // encoding as would be performed by the compute server
127
- if (envelope === encryption_js_1.ciphertextEnvelopes.none) {
128
- const bigPt = (0, binary_js_1.bytes32ToBigint)(Buffer.from(ptBuf).toString('hex'));
129
- return (0, encryption_js_1.bigintToPlaintext)(scheme, type, bigPt);
127
+ // remove the prepended handle
128
+ const { ciphertext } = (0, encryption_js_1.decodeCiphertextInput)(value);
129
+ const ptBuf = await (0, ecies_geth_1.decrypt)(privKeyABuffer, (0, binary_js_1.bytesFromHexString)(ciphertext));
130
+ const payload = (0, hadu_js_1.decodeInput)(ptBuf);
131
+ if (payload.values.length === 0) {
132
+ throw new Error('no plaintexts in decrypted input');
130
133
  }
131
- const { plaintext } = (0, hadu_js_1.decodeInput)(ptBuf.toString());
132
- return plaintext;
134
+ if (payload.values.length > 1) {
135
+ throw new Error('multiple plaintexts in decrypted input, only one currently supported');
136
+ }
137
+ const pt = payload.values[0];
138
+ const computable = pt.value;
139
+ if (computable.case !== 'scalar') {
140
+ throw new Error(`decrypted plaintext is not a scalar, cannot currently be decrypted, this feature may be implemented on request`);
141
+ }
142
+ const typ = (0, schema_js_1.parse)(encryption_js_1.SupportedFheType, computable.value.type);
143
+ return (0, encryption_js_1.bytesToPlaintext)(computable.value.value, encryption_js_1.encryptionSchemes.ecies, typ);
133
144
  };
134
145
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGl0ZS9lY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSxnREFVQztBQUdELDREQUVDO0FBR0QsNERBRUM7QUFHRCw0REFJQztBQXNCRCw4REFJQztBQU1ELDBCQWFDO0FBUUQsOENBMENDO0FBS0QsMEJBUUM7QUFPRCw4Q0F5QkM7QUE3TUQsMkNBQThFO0FBQzlFLHdDQUF3QztBQUN4Qyw0Q0FLc0I7QUFDdEIsK0RBYXFDO0FBQ3JDLDRDQUErRDtBQUUvRCx1Q0FBcUQ7QUFFckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBVWxELG9GQUFvRjtBQUNwRiwwREFBMEQ7QUFDMUQsU0FBZ0Isa0JBQWtCLENBQ2hDLEVBQTBCO0lBRTFCLE9BQU87UUFDTCxNQUFNLEVBQUUsaUNBQWlCLENBQUMsS0FBSztRQUMvQixFQUFFO1FBQ0YsZUFBZTtZQUNiLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsU0FBZ0Isd0JBQXdCO0lBQ3RDLE9BQU8sa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVELDRFQUE0RTtBQUM1RSxTQUFnQix3QkFBd0IsQ0FBQyxHQUFvQjtJQUMzRCxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCwwRUFBMEU7QUFDMUUsU0FBZ0Isd0JBQXdCLENBQ3RDLGdCQUE0QjtJQUU1QixPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUs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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGl0ZS9lY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1DQSxnREFVQztBQUdELDREQUVDO0FBR0QsNERBRUM7QUFHRCw0REFJQztBQXNCRCw4REFJQztBQU1ELDBCQWFDO0FBT0QsOENBOENDO0FBS0QsMEJBT0M7QUFNRCw4Q0E0Q0M7QUE5TkQsMkNBQThFO0FBQzlFLHdDQUF3QztBQUN4Qyw0Q0FBeUU7QUFDekUsK0RBY3FDO0FBQ3JDLDRDQUErRDtBQUUvRCw0Q0FBcUM7QUFDckMsdUNBQXFEO0FBRXJELE1BQU0sU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQVVsRCxvRkFBb0Y7QUFDcEYsMERBQTBEO0FBQzFELFNBQWdCLGtCQUFrQixDQUNoQyxFQUEwQjtJQUUxQixPQUFPO1FBQ0wsTUFBTSxFQUFFLGlDQUFpQixDQUFDLEtBQUs7UUFDL0IsRUFBRTtRQUNGLGVBQWU7WUFDYixPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQscURBQXFEO0FBQ3JELFNBQWdCLHdCQUF3QjtJQUN0QyxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCw0RUFBNEU7QUFDNUUsU0FBZ0Isd0JBQXdCLENBQUMsR0FBb0I7SUFDM0QsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsMEVBQTBFO0FBQzFFLFNBQWdCLHdCQUF3QixDQUN0QyxnQkFBNEI7SUFFNUIsT0FBTyxTQUFTLENBQUMsYUFBYSxDQUFD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
@@ -1,24 +1,4 @@
1
- import { Schema } from 'effect';
2
1
  import { PlaintextWithContext } from '../encryption/index.js';
3
- export declare const encryptionEnvelopes: {
4
- readonly none: 0;
5
- readonly hadu: 1;
6
- };
7
- export type NoneEnvelope = (typeof encryptionEnvelopes)['none'];
8
- export type HaduEnvelope = (typeof encryptionEnvelopes)['hadu'];
9
- export declare const EncryptionEnvelope: Schema.SchemaClass<0 | 1, 0 | 1, never>;
10
- export declare const HaduInput: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.Struct<{
11
- envelope: Schema.Literal<[1]>;
12
- scheme: Schema.Literal<[0, 1, 2]>;
13
- context: Schema.Struct<{
14
- hostChainId: typeof Schema.BigInt;
15
- aclAddress: Schema.TemplateLiteral<`0x${string}`>;
16
- userAddress: Schema.TemplateLiteral<`0x${string}`>;
17
- contractAddress: Schema.TemplateLiteral<`0x${string}`>;
18
- }>;
19
- plaintext: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
20
- type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
21
- }>>;
22
- export type HaduInput = typeof HaduInput.Type;
23
- export declare function encodeInput({ plaintext, context, }: PlaintextWithContext): string;
24
- export declare function decodeInput(json: string): PlaintextWithContext;
2
+ import { InputPayload } from '../generated/es/inco/covalidator/compute/v1/types_pb.js';
3
+ export declare function encodeInput({ plaintext, context, }: PlaintextWithContext): Uint8Array;
4
+ export declare function decodeInput(input: Uint8Array): InputPayload;
@@ -1,41 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HaduInput = exports.EncryptionEnvelope = exports.encryptionEnvelopes = void 0;
4
3
  exports.encodeInput = encodeInput;
5
4
  exports.decodeInput = decodeInput;
6
- const effect_1 = require("effect");
7
- const Schema_1 = require("effect/Schema");
8
- const binary_js_1 = require("../binary.js");
5
+ const protobuf_1 = require("@bufbuild/protobuf");
9
6
  const index_js_1 = require("../encryption/index.js");
7
+ const types_pb_js_1 = require("../generated/es/inco/covalidator/compute/v1/types_pb.js");
10
8
  const handle_js_1 = require("../handle.js");
11
9
  // HADU stands for "Host Chain, ACL, DApp, and User" it maps to the InputContext type where the aclAddress
12
10
  // may actually be the singular IncoLite contract which embeds its own ACL
13
- exports.encryptionEnvelopes = {
14
- none: 0,
15
- hadu: 1,
16
- };
17
- exports.EncryptionEnvelope = effect_1.Schema.Literal(...Object.values(exports.encryptionEnvelopes));
18
- exports.HaduInput = (0, Schema_1.parseJson)(effect_1.Schema.Struct({
19
- envelope: effect_1.Schema.Literal(exports.encryptionEnvelopes.hadu),
20
- scheme: index_js_1.EncryptionScheme,
21
- context: handle_js_1.InputContext,
22
- plaintext: binary_js_1.Bytes32,
23
- type: index_js_1.SupportedFheType,
24
- }));
25
11
  function encodeInput({ plaintext, context, }) {
26
- return effect_1.Schema.encodeSync(exports.HaduInput)({
27
- envelope: exports.encryptionEnvelopes.hadu,
28
- scheme: plaintext.scheme,
29
- type: plaintext.type,
30
- plaintext: (0, index_js_1.plaintextToBytes32)(plaintext),
31
- context,
12
+ const payload = (0, protobuf_1.create)(types_pb_js_1.InputPayloadSchema, {
13
+ contextHash: (0, handle_js_1.hashInputContext)(context),
14
+ values: [
15
+ {
16
+ value: {
17
+ case: 'scalar',
18
+ value: (0, protobuf_1.create)(types_pb_js_1.ScalarSchema, {
19
+ type: plaintext.type,
20
+ value: (0, index_js_1.plaintextToBytes)(plaintext),
21
+ }),
22
+ },
23
+ },
24
+ ],
32
25
  });
26
+ return (0, protobuf_1.toBinary)(types_pb_js_1.InputPayloadSchema, payload);
33
27
  }
34
- function decodeInput(json) {
35
- const { scheme, context, plaintext, type } = effect_1.Schema.decodeSync(exports.HaduInput)(json);
36
- return {
37
- plaintext: (0, index_js_1.bytes32ToPlaintext)(plaintext, scheme, type),
38
- context,
39
- };
28
+ function decodeInput(input) {
29
+ const payload = (0, protobuf_1.fromBinary)(types_pb_js_1.InputPayloadSchema, input);
30
+ if (payload.values.length === 0) {
31
+ throw new Error('no plaintexts in input');
32
+ }
33
+ if (payload.values.length > 1) {
34
+ throw new Error('multiple plaintexts in input, only one currently supported');
35
+ }
36
+ return payload;
40
37
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFkdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2hhZHUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUNBLGtDQVdDO0FBRUQsa0NBT0M7QUEzREQsbUNBQWdDO0FBQ2hDLDBDQUEwQztBQUMxQyw0Q0FBdUM7QUFDdkMscURBTWdDO0FBQ2hDLDRDQUE0QztBQUU1QywwR0FBMEc7QUFDMUcsMEVBQTBFO0FBRTdELFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsSUFBSSxFQUFFLENBQUM7SUFDUCxJQUFJLEVBQUUsQ0FBQztDQUNDLENBQUM7QUFLRSxRQUFBLGtCQUFrQixHQUFHLGVBQU0sQ0FBQyxPQUFPLENBQzlDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBbUIsQ0FBQyxDQUN0QyxDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUcsSUFBQSxrQkFBUyxFQUNoQyxlQUFNLENBQUMsTUFBTSxDQUFDO0lBQ1osUUFBUSxFQUFFLGVBQU0sQ0FBQyxPQUFPLENBQUMsMkJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQ2xELE1BQU0sRUFBRSwyQkFBZ0I7SUFDeEIsT0FBTyxFQUFFLHdCQUFZO0lBQ3JCLFNBQVMsRUFBRSxtQkFBTztJQUNsQixJQUFJLEVBQUUsMkJBQWdCO0NBQ3ZCLENBQUMsQ0FDSCxDQUFDO0FBSUYsU0FBZ0IsV0FBVyxDQUFDLEVBQzFCLFNBQVMsRUFDVCxPQUFPLEdBQ2M7SUFDckIsT0FBTyxlQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUNsQyxRQUFRLEVBQUUsMkJBQW1CLENBQUMsSUFBSTtRQUNsQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDeEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxJQUFBLDZCQUFrQixFQUFDLFNBQVMsQ0FBQztRQUN4QyxPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxJQUFZO0lBQ3RDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FDeEMsZUFBTSxDQUFDLFVBQVUsQ0FBQyxpQkFBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsT0FBTztRQUNMLFNBQVMsRUFBRSxJQUFBLDZCQUFrQixFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ3RELE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFkdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saXRlL2hhZHUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxrQ0FtQkM7QUFFRCxrQ0FXQztBQTVDRCxpREFBa0U7QUFDbEUscURBQWdGO0FBQ2hGLHlGQUlpRTtBQUNqRSw0Q0FBZ0Q7QUFFaEQsMEdBQTBHO0FBQzFHLDBFQUEwRTtBQUUxRSxTQUFnQixXQUFXLENBQUMsRUFDMUIsU0FBUyxFQUNULE9BQU8sR0FDYztJQUNyQixNQUFNLE9BQU8sR0FBRyxJQUFBLGlCQUFNLEVBQUMsZ0NBQWtCLEVBQUU7UUFDekMsV0FBVyxFQUFFLElBQUEsNEJBQWdCLEVBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sRUFBRTtZQUNOO2dCQUNFLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBQSxpQkFBTSxFQUFDLDBCQUFZLEVBQUU7d0JBQzFCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTt3QkFDcEIsS0FBSyxFQUFFLElBQUEsMkJBQWdCLEVBQUMsU0FBUyxDQUFDO3FCQUNuQyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBQSxtQkFBUSxFQUFDLGdDQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQUMsS0FBaUI7SUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQkFBVSxFQUFDLGdDQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
@@ -39,7 +39,6 @@ class Lightning {
39
39
  this.ephemeralKeypair = (0, ecies_js_1.generateSecp256k1Keypair)();
40
40
  this.kmsClient = (0, reencrypt_js_1.getKmsClient)(covalidatorUrl);
41
41
  this.encryptor = (0, ecies_js_1.getEciesEncryptor)({
42
- scheme: index_js_1.encryptionSchemes.ecies,
43
42
  pubKeyA: (0, ecies_js_1.decodeSecp256k1PublicKey)((0, viem_1.hexToBytes)((0, schema_js_1.parse)(binary_js_1.HexString, _deployment.eciesPublicKey))),
44
43
  privKeyB: this.ephemeralKeypair,
45
44
  });
@@ -354,4 +353,4 @@ class Lightning {
354
353
  }
355
354
  }
356
355
  exports.Lightning = Lightning;
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpdGUvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtDQUFrQztBQUNsQywrQkFBMkU7QUFDM0Usd0NBQTBDO0FBQzFDLGtFQU11QztBQUV2QyxnRkFBeUU7QUFFekUsZ0ZBQXlFO0FBRXpFLDRDQUFnRTtBQUVoRSxxREFNZ0M7QUFFaEMsNERBQWlFO0FBQ2pFLDhEQUFzRTtBQUN0RSw0Q0FBMkM7QUFDM0MsZ0RBQWdFO0FBR2hFLDRDQUFxQztBQUNyQyx5Q0FLb0I7QUFDcEIsaURBQW1FO0FBNkJuRSxNQUFNLGFBQWEsR0FBb0IsU0FBUyxDQUFDO0FBMkJqRDs7O0dBR0c7QUFDSCxNQUFhLFNBQVM7SUFVRDtJQUNEO0lBVkYsZUFBZSxDQUFVO0lBQ3pCLGNBQWMsQ0FBWTtJQUMxQixPQUFPLENBQVM7SUFFZixTQUFTLENBQXlCO0lBQ2xDLGdCQUFnQixDQUFtQjtJQUNuQyxTQUFTLENBQTRCO0lBRXRELFlBQ21CLFdBQWMsRUFDZixjQUFzQjtRQURyQixnQkFBVyxHQUFYLFdBQVcsQ0FBRztRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBRXRDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSx3QkFBWSxFQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUEsaUJBQUssRUFBQyxxQkFBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUEsbUNBQXdCLEdBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsMkJBQVksRUFBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FB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
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpdGUvbGlnaHRuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtDQUFrQztBQUNsQywrQkFBMkU7QUFDM0Usd0NBQTBDO0FBQzFDLGtFQU11QztBQUV2QyxnRkFBeUU7QUFFekUsZ0ZBQXlFO0FBRXpFLDRDQUFnRTtBQUVoRSxxREFNZ0M7QUFFaEMsNERBQWlFO0FBQ2pFLDhEQUFzRTtBQUN0RSw0Q0FBMkM7QUFDM0MsZ0RBQWdFO0FBR2hFLDRDQUFxQztBQUNyQyx5Q0FLb0I7QUFDcEIsaURBQW1FO0FBNkJuRSxNQUFNLGFBQWEsR0FBb0IsU0FBUyxDQUFDO0FBMkJqRDs7O0dBR0c7QUFDSCxNQUFhLFNBQVM7SUFVRDtJQUNEO0lBVkYsZUFBZSxDQUFVO0lBQ3pCLGNBQWMsQ0FBWTtJQUMxQixPQUFPLENBQVM7SUFFZixTQUFTLENBQXlCO0lBQ2xDLGdCQUFnQixDQUFtQjtJQUNuQyxTQUFTLENBQTRCO0lBRXRELFlBQ21CLFdBQWMsRUFDZixjQUFzQjtRQURyQixnQkFBVyxHQUFYLFdBQVcsQ0FBRztRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBRXRDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBQSx3QkFBWSxFQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUEsaUJBQUssRUFBQyxxQkFBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUEsbUNBQXdCLEdBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsMkJBQVksRUFBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FB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