@inco/js 0.1.35 → 0.1.36

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 (92) hide show
  1. package/dist/binary.js +32 -47
  2. package/dist/chain.js +7 -11
  3. package/dist/encryption/encryption.js +54 -62
  4. package/dist/encryption/index.js +2 -18
  5. package/dist/fhevm/fhe-environment.js +6 -9
  6. package/dist/fhevm/fhevm.js +34 -40
  7. package/dist/fhevm/index.js +2 -18
  8. package/dist/fhevm/reencrypt.js +33 -37
  9. package/dist/fhevm/tfhe.js +79 -87
  10. package/dist/fhevm/types.js +13 -16
  11. package/dist/generated/abis/addTwo.js +2 -5
  12. package/dist/generated/abis/inco-fhevm.js +47 -50
  13. package/dist/generated/abis/index.js +3 -19
  14. package/dist/generated/abis/lightning.d.ts +1167 -86
  15. package/dist/generated/abis/lightning.js +929 -132
  16. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +22 -25
  17. package/dist/generated/es/cosmos/msg/v1/msg_pb.js +6 -9
  18. package/dist/generated/es/cosmos_proto/cosmos_pb.js +18 -21
  19. package/dist/generated/es/google/api/annotations_pb.js +6 -9
  20. package/dist/generated/es/google/api/http_pb.js +6 -9
  21. package/dist/generated/es/inco/fhe/v1/events_pb.js +7 -10
  22. package/dist/generated/es/inco/fhe/v1/genesis_pb.js +12 -15
  23. package/dist/generated/es/inco/fhe/v1/query_pb.js +25 -28
  24. package/dist/generated/es/inco/fhe/v1/tx_pb.js +25 -28
  25. package/dist/generated/es/inco/fhe/v1/types_pb.js +19 -22
  26. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +11 -14
  27. package/dist/generated/es/inco/kms/lite/v1/types_pb.js +10 -13
  28. package/dist/generated/es/inco/preflight/v1/genesis_pb.js +6 -9
  29. package/dist/generated/es/inco/preflight/v1/query_pb.js +11 -14
  30. package/dist/generated/es/inco/preflight/v1/tx_pb.js +13 -16
  31. package/dist/generated/es/inco/preflight/v1/types_pb.js +8 -11
  32. package/dist/generated/es/kms/base_pb.js +35 -38
  33. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +43 -46
  34. package/dist/generated/fhe-environments.js +2 -5
  35. package/dist/generated/lightning.js +2 -5
  36. package/dist/generated/local-node.js +2 -5
  37. package/dist/generated/ts/amino/amino.js +2 -5
  38. package/dist/generated/ts/cometbft/abci/v1/types.js +547 -563
  39. package/dist/generated/ts/cometbft/crypto/v1/keys.js +7 -10
  40. package/dist/generated/ts/cometbft/crypto/v1/proof.js +33 -36
  41. package/dist/generated/ts/cometbft/types/v1/params.js +95 -98
  42. package/dist/generated/ts/cometbft/types/v1/validator.js +40 -45
  43. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +25 -28
  44. package/dist/generated/ts/cosmos/msg/v1/msg.js +2 -5
  45. package/dist/generated/ts/cosmos_proto/cosmos.js +15 -20
  46. package/dist/generated/ts/gogoproto/gogo.js +2 -5
  47. package/dist/generated/ts/google/api/annotations.js +2 -5
  48. package/dist/generated/ts/google/api/http.js +30 -33
  49. package/dist/generated/ts/google/protobuf/descriptor.js +468 -506
  50. package/dist/generated/ts/google/protobuf/duration.js +7 -10
  51. package/dist/generated/ts/google/protobuf/timestamp.js +7 -10
  52. package/dist/generated/ts/google/protobuf/wrappers.js +39 -42
  53. package/dist/generated/ts/inco/abci/v1/types.js +13 -16
  54. package/dist/generated/ts/inco/fhe/module/v1/module.js +7 -10
  55. package/dist/generated/ts/inco/fhe/v1/events.js +32 -35
  56. package/dist/generated/ts/inco/fhe/v1/genesis.js +127 -130
  57. package/dist/generated/ts/inco/fhe/v1/query.js +160 -163
  58. package/dist/generated/ts/inco/fhe/v1/tx.js +150 -153
  59. package/dist/generated/ts/inco/fhe/v1/types.js +70 -75
  60. package/dist/generated/ts/inco/originchain/module/v1/module.js +7 -10
  61. package/dist/generated/ts/inco/originchain/v1/abci.js +34 -37
  62. package/dist/generated/ts/inco/originchain/v1/events.js +11 -14
  63. package/dist/generated/ts/inco/originchain/v1/genesis.js +13 -16
  64. package/dist/generated/ts/inco/originchain/v1/query.js +41 -44
  65. package/dist/generated/ts/inco/originchain/v1/tx.js +24 -27
  66. package/dist/generated/ts/inco/originchain/v1/types.js +11 -14
  67. package/dist/generated/ts/inco/preflight/module/v1/module.js +7 -10
  68. package/dist/generated/ts/inco/preflight/v1/genesis.js +27 -30
  69. package/dist/generated/ts/inco/preflight/v1/query.js +41 -44
  70. package/dist/generated/ts/inco/preflight/v1/tx.js +53 -56
  71. package/dist/generated/ts/inco/preflight/v1/types.js +38 -41
  72. package/dist/handle.js +26 -33
  73. package/dist/index.js +6 -22
  74. package/dist/l1/client.js +19 -23
  75. package/dist/l1/index.js +3 -19
  76. package/dist/l1/preflight.js +13 -16
  77. package/dist/lite/deployments.js +9 -13
  78. package/dist/lite/ecies.js +37 -48
  79. package/dist/lite/hadu.js +21 -26
  80. package/dist/lite/index.js +7 -23
  81. package/dist/lite/lightning.js +31 -35
  82. package/dist/lite/reencrypt.d.ts +4 -4
  83. package/dist/lite/reencrypt.js +33 -44
  84. package/dist/local/index.js +2 -18
  85. package/dist/local/local-node.js +21 -25
  86. package/dist/reencryption/eip712.js +18 -21
  87. package/dist/reencryption/index.js +3 -19
  88. package/dist/reencryption/types.d.ts +6 -1
  89. package/dist/reencryption/types.js +1 -2
  90. package/dist/schema.js +6 -10
  91. package/dist/viem.js +7 -11
  92. package/package.json +1 -1
@@ -1,31 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zamaReencryptor = zamaReencryptor;
4
- exports.generateCryptoBoxEphemeralKeyPair = generateCryptoBoxEphemeralKeyPair;
5
- const effect_1 = require("effect");
6
- const node_tkms_1 = require("node-tkms");
7
- const viem_1 = require("viem");
8
- const binary_1 = require("../binary");
9
- const encryption_1 = require("../encryption/encryption");
10
- const handle_1 = require("../handle");
11
- const reencryption_1 = require("../reencryption");
12
- const schema_1 = require("../schema");
1
+ import { Schema } from 'effect';
2
+ import { cryptobox_get_pk, cryptobox_keygen, cryptobox_pk_to_u8vec, cryptobox_sk_to_u8vec, new_client, process_reencryption_resp_from_js, u8vec_to_cryptobox_pk, u8vec_to_cryptobox_sk, } from 'node-tkms';
3
+ import { getAddress, hexToBigInt } from 'viem';
4
+ import { bytesToBigInt, bytesToHex } from '../binary';
5
+ import { bigintToPlaintext, encryptionSchemes, } from '../encryption/encryption';
6
+ import { getHandleType } from '../handle';
7
+ import { createEIP712Payload } from '../reencryption';
8
+ import { parse } from '../schema';
13
9
  // The domain constants that Zama uses for reencrypts.
14
10
  const ZAMA_REENCRYPT_DOMAIN = {
15
11
  name: 'Authorization token',
16
12
  version: '1',
17
13
  salt: undefined,
18
14
  };
19
- async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVerifyKMSSignatures, contractAddress, kmsSigners, userAddress, }) {
15
+ export async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVerifyKMSSignatures, contractAddress, kmsSigners, userAddress, }) {
20
16
  const ephemeralKeypair = generateCryptoBoxEphemeralKeyPair();
21
17
  // Sign the EIP712 attesting that the user has access to the private key
22
18
  // corresponding to the ephemeral public key.
23
- const eip712Payload = (0, reencryption_1.createEIP712Payload)({
19
+ const eip712Payload = createEIP712Payload({
24
20
  chainId,
25
21
  primaryType: 'ReencryptionRequest',
26
22
  primaryTypeFields: [{ name: 'publicKey', type: 'bytes' }],
27
23
  message: {
28
- publicKey: (0, binary_1.bytesToHex)(ephemeralKeypair.encodePublicKey()),
24
+ publicKey: bytesToHex(ephemeralKeypair.encodePublicKey()),
29
25
  },
30
26
  domainName: ZAMA_REENCRYPT_DOMAIN.name,
31
27
  domainVersion: ZAMA_REENCRYPT_DOMAIN.version,
@@ -34,25 +30,25 @@ async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVe
34
30
  // payload.
35
31
  const eip712Signature = await walletClient.signTypedData(eip712Payload);
36
32
  return async function reencrypt({ handle, }) {
37
- const handleBigInt = (0, viem_1.hexToBigInt)(handle);
33
+ const handleBigInt = hexToBigInt(handle);
38
34
  const reencryptRequest = {
39
35
  signature: eip712Signature.replace(/^(0x)/, ''),
40
- client_address: (0, viem_1.getAddress)(userAddress),
41
- enc_key: (0, binary_1.bytesToHex)(ephemeralKeypair.encodePublicKey()).replace(/^(0x)/, ''),
36
+ client_address: getAddress(userAddress),
37
+ enc_key: bytesToHex(ephemeralKeypair.encodePublicKey()).replace(/^(0x)/, ''),
42
38
  ciphertext_handle: handleBigInt.toString(16).padStart(64, '0'),
43
- eip712_verifying_contract: (0, viem_1.getAddress)(contractAddress),
39
+ eip712_verifying_contract: getAddress(contractAddress),
44
40
  };
45
41
  const reencryptResponse = await makeReencryptRequest(reencryptRequest, gatewayUrl);
46
42
  let pubKey;
47
43
  let privKey;
48
44
  try {
49
- pubKey = (0, node_tkms_1.u8vec_to_cryptobox_pk)(ephemeralKeypair.publicKey);
50
- privKey = (0, node_tkms_1.u8vec_to_cryptobox_sk)(ephemeralKeypair.privateKey);
45
+ pubKey = u8vec_to_cryptobox_pk(ephemeralKeypair.publicKey);
46
+ privKey = u8vec_to_cryptobox_sk(ephemeralKeypair.privateKey);
51
47
  }
52
48
  catch (e) {
53
49
  throw new Error(`Invalid public or private key: ${JSON.stringify(e)}`);
54
50
  }
55
- const client = (0, node_tkms_1.new_client)(kmsSigners, userAddress, 'default');
51
+ const client = new_client(kmsSigners, userAddress, 'default');
56
52
  try {
57
53
  const buffer = new ArrayBuffer(32);
58
54
  const view = new DataView(buffer);
@@ -65,13 +61,13 @@ async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVe
65
61
  ...p,
66
62
  ciphertext_digest: reencryptResponse.response[0].ciphertext_digest,
67
63
  };
68
- const decrypted = (0, node_tkms_1.process_reencryption_resp_from_js)(client, payloadForVerification, {
64
+ const decrypted = process_reencryption_resp_from_js(client, payloadForVerification, {
69
65
  name: eip712Payload.domain.name,
70
66
  version: eip712Payload.domain.version,
71
67
  chain_id: chainIdArrayBE,
72
68
  verifying_contract: eip712Payload.domain.verifyingContract,
73
69
  }, reencryptResponse.response, pubKey, privKey, !unsafeSkipVerifyKMSSignatures);
74
- return (0, encryption_1.bigintToPlaintext)(encryption_1.encryptionSchemes.cryptobox, (0, handle_1.getHandleType)(handle), (0, binary_1.bytesToBigInt)(decrypted));
70
+ return bigintToPlaintext(encryptionSchemes.cryptobox, getHandleType(handle), bytesToBigInt(decrypted));
75
71
  }
76
72
  catch (e) {
77
73
  console.error(e);
@@ -80,13 +76,13 @@ async function zamaReencryptor({ chainId, gatewayUrl, walletClient, unsafeSkipVe
80
76
  };
81
77
  }
82
78
  // Generate a new ephemeral keypair for reencryption.
83
- function generateCryptoBoxEphemeralKeyPair() {
84
- const keypair = (0, node_tkms_1.cryptobox_keygen)();
85
- const publicKey = (0, node_tkms_1.cryptobox_pk_to_u8vec)((0, node_tkms_1.cryptobox_get_pk)(keypair));
79
+ export function generateCryptoBoxEphemeralKeyPair() {
80
+ const keypair = cryptobox_keygen();
81
+ const publicKey = cryptobox_pk_to_u8vec(cryptobox_get_pk(keypair));
86
82
  return {
87
- scheme: encryption_1.encryptionSchemes.cryptobox,
83
+ scheme: encryptionSchemes.cryptobox,
88
84
  publicKey,
89
- privateKey: (0, node_tkms_1.cryptobox_sk_to_u8vec)(keypair),
85
+ privateKey: cryptobox_sk_to_u8vec(keypair),
90
86
  encodePublicKey() {
91
87
  return publicKey;
92
88
  },
@@ -96,12 +92,12 @@ function generateCryptoBoxEphemeralKeyPair() {
96
92
  // server-side in Zama's gateway. The response field is a vector of this struct
97
93
  // in Rust:
98
94
  // https://github.com/zama-ai/kms-core/blob/a3b824b389e87429d04537696e28dee902a3b2d9/blockchain/events/src/kms.rs#L985-L1003
99
- const ZamaGatewayReencryptResponse = effect_1.Schema.Struct({
100
- status: effect_1.Schema.Union(effect_1.Schema.Literal('success'), effect_1.Schema.Literal('failure')),
101
- response: effect_1.Schema.Array(effect_1.Schema.Struct({
102
- ciphertext_digest: effect_1.Schema.optional(effect_1.Schema.String),
103
- payload: effect_1.Schema.String,
104
- signature: effect_1.Schema.String,
95
+ const ZamaGatewayReencryptResponse = Schema.Struct({
96
+ status: Schema.Union(Schema.Literal('success'), Schema.Literal('failure')),
97
+ response: Schema.Array(Schema.Struct({
98
+ ciphertext_digest: Schema.optional(Schema.String),
99
+ payload: Schema.String,
100
+ signature: Schema.String,
105
101
  })),
106
102
  });
107
103
  // Make a HTTP request to the reencrypt endpoint of the gateway.
@@ -118,10 +114,10 @@ async function makeReencryptRequest(request, gatewayUrl) {
118
114
  throw new Error(`Reencrypt failed: gateway respond with HTTP code ${response.status}: ${JSON.stringify(await response.json())}`);
119
115
  }
120
116
  const json = await response.json();
121
- const reencryptResponse = (0, schema_1.parse)(ZamaGatewayReencryptResponse, json);
117
+ const reencryptResponse = parse(ZamaGatewayReencryptResponse, json);
122
118
  if (reencryptResponse.status === 'failure') {
123
119
  throw new Error('Reencrypt failed: gateway responded with failure');
124
120
  }
125
121
  return reencryptResponse;
126
122
  }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZoZXZtL3JlZW5jcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdFQSwwQ0FxRkM7QUFHRCw4RUFXQztBQW5LRCxtQ0FBZ0M7QUFDaEMseUNBU21CO0FBQ25CLCtCQUFpRztBQUNqRyxzQ0FBc0Q7QUFDdEQseURBTWtDO0FBQ2xDLHNDQUEwQztBQUUxQyxrREFBc0Q7QUFFdEQsc0NBQWtDO0FBaUNsQyxzREFBc0Q7QUFDdEQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLE9BQU8sRUFBRSxHQUFHO0lBQ1osSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQztBQUVLLEtBQUssVUFBVSxlQUFlLENBQUMsRUFDcEMsT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxHQUNTO0lBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztJQUU3RCx3RUFBd0U7SUFDeEUsNkNBQTZDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUEsa0NBQW1CLEVBQUM7UUFDeEMsT0FBTztRQUNQLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3pELE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxJQUFBLG1CQUFVLEVBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUQ7UUFDRCxVQUFVLEVBQUUscUJBQXFCLENBQUMsSUFBSTtRQUN0QyxhQUFhLEVBQUUscUJBQXFCLENBQUMsT0FBTztLQUM3QyxDQUFDLENBQUM7SUFDSCx1RUFBdUU7SUFDdkUsV0FBVztJQUNYLE1BQU0sZUFBZSxHQUFHLE1BQU0sWUFBWSxDQUFDLGFBQWEsQ0FB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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVlbmNyeXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZoZXZtL3JlZW5jcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsVUFBVSxFQUNWLGlDQUFpQyxFQUNqQyxxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBMkIsVUFBVSxFQUFFLFdBQVcsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEQsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FHbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFpQ2xDLHNEQUFzRDtBQUN0RCxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQUMsRUFDcEMsT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osNkJBQTZCLEVBQzdCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxHQUNTO0lBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztJQUU3RCx3RUFBd0U7SUFDeEUsNkNBQTZDO0lBQzdDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixD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
@@ -1,28 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TfheSerializationHeader = exports.TfheSerialisationTypeName = exports.FheUintTypeName = exports.ProvenCompactCiphertextListTypeName = exports.SerializationHeader = exports.ENCRYPTION_TYPES = exports.SERIALIZED_SIZE_LIMIT_CRS = exports.SERIALIZED_SIZE_LIMIT_PK = exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT = void 0;
4
- exports.getTfheEncryptor = getTfheEncryptor;
5
- exports.createEncryptedInput = createEncryptedInput;
6
- exports.addPlaintextInput = addPlaintextInput;
7
- exports.getTfheDecryptor = getTfheDecryptor;
8
- exports.decodeTfheSerializationHeader = decodeTfheSerializationHeader;
9
- const bincode_ts_1 = require("bincode-ts");
10
- const effect_1 = require("effect");
11
- const node_tfhe_1 = require("node-tfhe");
12
- const viem_1 = require("viem");
13
- const binary_1 = require("../binary");
14
- const encryption_1 = require("../encryption/encryption");
15
- const handle_1 = require("../handle");
16
- const schema_1 = require("../schema");
17
- const types_1 = require("./types");
1
+ import { Decoder, RustType } from 'bincode-ts';
2
+ import { Schema } from 'effect';
3
+ import { CompactCiphertextList, CompactPkePublicParams, FheBool, FheTypes, FheUint256, FheUint64, ProvenCompactCiphertextList, set_server_key, TfheClientKey, TfheCompactPublicKey, TfheServerKey, ZkComputeLoad, } from 'node-tfhe';
4
+ import { isAddress } from 'viem';
5
+ import { asBytes32, bytesFromHexString, bytesToBigInt, bytesToHex } from '../binary';
6
+ import { encryptionSchemes, getEncryptionSchemeName, } from '../encryption/encryption';
7
+ import { computeHandle, computePrehandle, HANDLE_VERSION, handleTypes } from '../handle';
8
+ import { parse } from '../schema';
9
+ import { getHandleTypeFromFheType } from './types';
18
10
  // This code pulled and modifier from fhevmjs which currently is a relatively poor dependency to extend since it does
19
11
  // not expose types correctly and does not export various modules
20
12
  // Handed down on a stone tablet from: https://github.com/zama-ai/fhevm-backend/blob/5a70c19a90671cfa4901413db9e162a65c4cf17a/fhevm-engine/fhevm-engine-common/src/utils.rs#L6-L7
21
13
  // We use fhevm-backend in KMS and compute services
22
- exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT = BigInt(1024 * 1024 * 512);
23
- exports.SERIALIZED_SIZE_LIMIT_PK = BigInt(1024 * 1024 * 512);
24
- exports.SERIALIZED_SIZE_LIMIT_CRS = BigInt(1024 * 1024 * 512);
25
- exports.ENCRYPTION_TYPES = {
14
+ export const SERIALIZED_SIZE_LIMIT_CIPHERTEXT = BigInt(1024 * 1024 * 512);
15
+ export const SERIALIZED_SIZE_LIMIT_PK = BigInt(1024 * 1024 * 512);
16
+ export const SERIALIZED_SIZE_LIMIT_CRS = BigInt(1024 * 1024 * 512);
17
+ export const ENCRYPTION_TYPES = {
26
18
  1: 0, // ebool takes 2 encrypted bits
27
19
  4: 1,
28
20
  8: 2,
@@ -36,43 +28,43 @@ exports.ENCRYPTION_TYPES = {
36
28
  1024: 10,
37
29
  2048: 11,
38
30
  };
39
- function getTfheEncryptor(args) {
40
- const publicKey = node_tfhe_1.TfheCompactPublicKey.safe_deserialize(args.publicKey, exports.SERIALIZED_SIZE_LIMIT_PK);
41
- const publicParams = node_tfhe_1.CompactPkePublicParams.safe_deserialize(args.crs2048, exports.SERIALIZED_SIZE_LIMIT_CRS);
31
+ export function getTfheEncryptor(args) {
32
+ const publicKey = TfheCompactPublicKey.safe_deserialize(args.publicKey, SERIALIZED_SIZE_LIMIT_PK);
33
+ const publicParams = CompactPkePublicParams.safe_deserialize(args.crs2048, SERIALIZED_SIZE_LIMIT_CRS);
42
34
  return async ({ context, plaintext, }) => {
43
- if (plaintext.scheme !== encryption_1.encryptionSchemes.tfhe) {
44
- throw new Error(`Plaintext with scheme ${(0, encryption_1.getEncryptionSchemeName)(plaintext.scheme)} cannot be encrypted with TFHE`);
35
+ if (plaintext.scheme !== encryptionSchemes.tfhe) {
36
+ throw new Error(`Plaintext with scheme ${getEncryptionSchemeName(plaintext.scheme)} cannot be encrypted with TFHE`);
45
37
  }
46
38
  const { aclAddress, userAddress, contractAddress, hostChainId } = context;
47
39
  const input = createEncryptedInput(aclAddress, hostChainId, publicKey, { 2048: { publicParams } })(userAddress, contractAddress);
48
40
  const encInput = await addPlaintextInput(input, plaintext).encrypt();
49
41
  // FIXME: support multi-valued ciphertext properly
50
42
  const prehandle = encInput.prehandles[0];
51
- const handle = (0, handle_1.computeHandle)({ prehandle, context });
43
+ const handle = computeHandle({ prehandle, context });
52
44
  return {
53
45
  context,
54
46
  // The '0x' prefix is required for bytes32 for correct json parsing in foundry, but avoided in ciphertext to avoid bytes-based encoding
55
47
  // we may need
56
- prehandle: (0, binary_1.asBytes32)(prehandle),
57
- handle: (0, binary_1.asBytes32)(handle),
48
+ prehandle: asBytes32(prehandle),
49
+ handle: asBytes32(handle),
58
50
  ciphertext: {
59
51
  scheme: plaintext.scheme,
60
52
  type: plaintext.type,
61
- value: (0, binary_1.bytesToHex)(encInput.ciphertext),
53
+ value: bytesToHex(encInput.ciphertext),
62
54
  },
63
55
  };
64
56
  };
65
57
  }
66
- function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey, publicParams) {
58
+ export function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey, publicParams) {
67
59
  return (userAddress, contractAddress) => {
68
- if (!(0, viem_1.isAddress)(contractAddress)) {
60
+ if (!isAddress(contractAddress)) {
69
61
  throw new Error('Contract address is not a valid address.');
70
62
  }
71
- if (!(0, viem_1.isAddress)(userAddress)) {
63
+ if (!isAddress(userAddress)) {
72
64
  throw new Error('User address is not a valid address.');
73
65
  }
74
66
  const bits = [];
75
- const builder = node_tfhe_1.CompactCiphertextList.builder(tfheCompactPublicKey);
67
+ const builder = CompactCiphertextList.builder(tfheCompactPublicKey);
76
68
  const checkLimit = (added) => {
77
69
  if (bits.reduce((acc, val) => acc + Math.max(2, val), 0) + added > 2048) {
78
70
  throw Error('Packing more than 2048 bits in a single input ciphertext is unsupported');
@@ -147,7 +139,7 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
147
139
  return this;
148
140
  },
149
141
  addAddress(value) {
150
- if (!(0, viem_1.isAddress)(value)) {
142
+ if (!isAddress(value)) {
151
143
  throw new Error('The value must be a valid address.');
152
144
  }
153
145
  checkLimit(160);
@@ -165,7 +157,7 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
165
157
  addBytes64(value) {
166
158
  if (value.length !== 64)
167
159
  throw Error('Incorrect length of input Uint8Array, should be 64 for an ebytes64');
168
- const bigIntValue = (0, binary_1.bytesToBigInt)(value);
160
+ const bigIntValue = bytesToBigInt(value);
169
161
  checkEncryptedValue(bigIntValue, 512);
170
162
  checkLimit(512);
171
163
  builder.push_u512(bigIntValue);
@@ -175,7 +167,7 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
175
167
  addBytes128(value) {
176
168
  if (value.length !== 128)
177
169
  throw Error('Incorrect length of input Uint8Array, should be 128 for an ebytes128');
178
- const bigIntValue = (0, binary_1.bytesToBigInt)(value);
170
+ const bigIntValue = bytesToBigInt(value);
179
171
  checkEncryptedValue(bigIntValue, 1024);
180
172
  checkLimit(1024);
181
173
  builder.push_u1024(bigIntValue);
@@ -185,7 +177,7 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
185
177
  addBytes256(value) {
186
178
  if (value.length !== 256)
187
179
  throw Error('Incorrect length of input Uint8Array, should be 256 for an ebytes256');
188
- const bigIntValue = (0, binary_1.bytesToBigInt)(value);
180
+ const bigIntValue = bytesToBigInt(value);
189
181
  checkEncryptedValue(bigIntValue, 2048);
190
182
  checkLimit(2048);
191
183
  builder.push_u2048(bigIntValue);
@@ -206,26 +198,26 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
206
198
  throw new Error(`Too many bits in provided values. Maximum is ${ppTypes[ppTypes.length - 1]}.`);
207
199
  }
208
200
  const pp = publicParams[closestPP].publicParams;
209
- const buffContract = (0, binary_1.bytesFromHexString)(contractAddress);
210
- const buffUser = (0, binary_1.bytesFromHexString)(userAddress);
211
- const buffAcl = (0, binary_1.bytesFromHexString)(aclContractAddress);
212
- const buffChainId = (0, binary_1.bytesFromHexString)(chainId.toString(16));
201
+ const buffContract = bytesFromHexString(contractAddress);
202
+ const buffUser = bytesFromHexString(userAddress);
203
+ const buffAcl = bytesFromHexString(aclContractAddress);
204
+ const buffChainId = bytesFromHexString(chainId.toString(16));
213
205
  const auxData = new Uint8Array(buffContract.length + buffUser.length + buffAcl.length + 32);
214
206
  auxData.set(buffContract, 0);
215
207
  auxData.set(buffUser, 20);
216
208
  auxData.set(buffAcl, 40);
217
209
  auxData.set(buffChainId, auxData.length - buffChainId.length);
218
- const encrypted = builder.build_with_proof_packed(pp, auxData, node_tfhe_1.ZkComputeLoad.Proof);
219
- const ciphertext = Buffer.from(encrypted.safe_serialize(exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT));
210
+ const encrypted = builder.build_with_proof_packed(pp, auxData, ZkComputeLoad.Proof);
211
+ const ciphertext = Buffer.from(encrypted.safe_serialize(SERIALIZED_SIZE_LIMIT_CIPHERTEXT));
220
212
  // These prehandles have the expected layout expected by verifyCiphertext
221
213
  // including type and version metadata
222
214
  const prehandles = [];
223
215
  for (let i = 0; i < encrypted.len(); i++) {
224
- const handleType = (0, types_1.getHandleTypeFromFheType)(encrypted.get_kind_of(i));
225
- prehandles[i] = (0, handle_1.computePrehandle)({
216
+ const handleType = getHandleTypeFromFheType(encrypted.get_kind_of(i));
217
+ prehandles[i] = computePrehandle({
226
218
  ciphertext,
227
219
  handleType: handleType,
228
- handleVersion: handle_1.HANDLE_VERSION,
220
+ handleVersion: HANDLE_VERSION,
229
221
  indexHandle: i,
230
222
  });
231
223
  }
@@ -237,31 +229,31 @@ function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey,
237
229
  };
238
230
  };
239
231
  }
240
- function addPlaintextInput(input, plaintext) {
232
+ export function addPlaintextInput(input, plaintext) {
241
233
  switch (plaintext.type) {
242
- case handle_1.handleTypes.ebool:
234
+ case handleTypes.ebool:
243
235
  return input.addBool(plaintext.value);
244
- case handle_1.handleTypes.euint64:
236
+ case handleTypes.euint64:
245
237
  return input.add64(plaintext.value);
246
- case handle_1.handleTypes.euint256:
238
+ case handleTypes.euint256:
247
239
  return input.add256(plaintext.value);
248
240
  }
249
241
  }
250
242
  // Decryption...
251
- function getTfheDecryptor({ cks }) {
252
- const clientKey = node_tfhe_1.TfheClientKey.safe_deserialize(cks, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
253
- const serverKey = node_tfhe_1.TfheServerKey.new(clientKey);
254
- (0, node_tfhe_1.set_server_key)(serverKey);
243
+ export function getTfheDecryptor({ cks }) {
244
+ const clientKey = TfheClientKey.safe_deserialize(cks, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
245
+ const serverKey = TfheServerKey.new(clientKey);
246
+ set_server_key(serverKey);
255
247
  return async ({ scheme, type, value, }) => {
256
- if (scheme !== encryption_1.encryptionSchemes.tfhe) {
257
- throw new Error(`Ciphertext with scheme ${(0, encryption_1.getEncryptionSchemeName)(scheme)} cannot be decrypted with TFHE`);
248
+ if (scheme !== encryptionSchemes.tfhe) {
249
+ throw new Error(`Ciphertext with scheme ${getEncryptionSchemeName(scheme)} cannot be decrypted with TFHE`);
258
250
  }
259
251
  const handleType = type;
260
- const ctBuf = (0, binary_1.bytesFromHexString)(value);
252
+ const ctBuf = bytesFromHexString(value);
261
253
  const header = decodeTfheSerializationHeader(ctBuf);
262
254
  // For now just support a singleton ciphertext list
263
- if (header.name === exports.ProvenCompactCiphertextListTypeName) {
264
- const encrypted = node_tfhe_1.ProvenCompactCiphertextList.safe_deserialize(ctBuf, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
255
+ if (header.name === ProvenCompactCiphertextListTypeName) {
256
+ const encrypted = ProvenCompactCiphertextList.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
265
257
  const decrypted = encrypted.expand_without_verification();
266
258
  const kind = decrypted.get_kind_of(0);
267
259
  return fromCiphertextList(decrypted, clientKey);
@@ -270,30 +262,30 @@ function getTfheDecryptor({ cks }) {
270
262
  if (!decryptor) {
271
263
  throw new Error(`Unsupported handle type: ${handleType}`);
272
264
  }
273
- const encrypted = decryptor.safe_deserialize(ctBuf, exports.SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
265
+ const encrypted = decryptor.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
274
266
  const decrypted = encrypted.decrypt(clientKey);
275
267
  // First assign to unnarrowed plaintext to avoid concealing type
276
- const plaintext = { scheme: encryption_1.encryptionSchemes.tfhe, type: handleType, value: decrypted };
268
+ const plaintext = { scheme: encryptionSchemes.tfhe, type: handleType, value: decrypted };
277
269
  return plaintext;
278
270
  };
279
271
  }
280
272
  function fromCiphertextList(decrypted, clientKey) {
281
273
  const kind = decrypted.get_kind_of(0);
282
- const scheme = encryption_1.encryptionSchemes.tfhe;
274
+ const scheme = encryptionSchemes.tfhe;
283
275
  switch (kind) {
284
- case node_tfhe_1.FheTypes.Bool:
285
- return { scheme, type: handle_1.handleTypes.ebool, value: decrypted.get_bool(0).decrypt(clientKey) };
286
- case node_tfhe_1.FheTypes.Uint64:
287
- return { scheme, type: handle_1.handleTypes.euint64, value: decrypted.get_uint64(0).decrypt(clientKey) };
288
- case node_tfhe_1.FheTypes.Uint256:
289
- return { scheme, type: handle_1.handleTypes.euint256, value: decrypted.get_uint256(0).decrypt(clientKey) };
276
+ case FheTypes.Bool:
277
+ return { scheme, type: handleTypes.ebool, value: decrypted.get_bool(0).decrypt(clientKey) };
278
+ case FheTypes.Uint64:
279
+ return { scheme, type: handleTypes.euint64, value: decrypted.get_uint64(0).decrypt(clientKey) };
280
+ case FheTypes.Uint256:
281
+ return { scheme, type: handleTypes.euint256, value: decrypted.get_uint256(0).decrypt(clientKey) };
290
282
  }
291
283
  throw new Error(`Unsupported kind: ${kind}`);
292
284
  }
293
285
  const decryptionClasses = {
294
- [handle_1.handleTypes.ebool]: node_tfhe_1.FheBool,
295
- [handle_1.handleTypes.euint64]: node_tfhe_1.FheUint64,
296
- [handle_1.handleTypes.euint256]: node_tfhe_1.FheUint256,
286
+ [handleTypes.ebool]: FheBool,
287
+ [handleTypes.euint64]: FheUint64,
288
+ [handleTypes.euint256]: FheUint256,
297
289
  };
298
290
  var VersioningMode;
299
291
  (function (VersioningMode) {
@@ -306,27 +298,27 @@ var VersioningMode;
306
298
  // versioning_mode: SerializationVersioningMode,
307
299
  // name: Cow<'static, str>,
308
300
  // }
309
- exports.SerializationHeader = bincode_ts_1.RustType.Struct([
310
- ['header_version', bincode_ts_1.RustType.Str],
301
+ export const SerializationHeader = RustType.Struct([
302
+ ['header_version', RustType.Str],
311
303
  [
312
304
  'versioning_mode',
313
- bincode_ts_1.RustType.Enum({ [VersioningMode.Versioned]: bincode_ts_1.RustType.Str, [VersioningMode.Unversioned]: bincode_ts_1.RustType.Str }),
305
+ RustType.Enum({ [VersioningMode.Versioned]: RustType.Str, [VersioningMode.Unversioned]: RustType.Str }),
314
306
  ],
315
- ['name', bincode_ts_1.RustType.Str],
307
+ ['name', RustType.Str],
316
308
  ]);
317
309
  // Output schema (note we currently strip the versioning_mode field because we do not care about it, only the name
318
- exports.ProvenCompactCiphertextListTypeName = 'high_level_api::ProvenCompactCiphertextList';
319
- exports.FheUintTypeName = 'high_level_api::FheUint';
320
- exports.TfheSerialisationTypeName = effect_1.Schema.Literal(exports.ProvenCompactCiphertextListTypeName, exports.FheUintTypeName);
321
- exports.TfheSerializationHeader = effect_1.Schema.Struct({
322
- header_version: effect_1.Schema.String,
310
+ export const ProvenCompactCiphertextListTypeName = 'high_level_api::ProvenCompactCiphertextList';
311
+ export const FheUintTypeName = 'high_level_api::FheUint';
312
+ export const TfheSerialisationTypeName = Schema.Literal(ProvenCompactCiphertextListTypeName, FheUintTypeName);
313
+ export const TfheSerializationHeader = Schema.Struct({
314
+ header_version: Schema.String,
323
315
  // For now, we will accept any string to avoid having to define an exhaustive union above
324
- name: effect_1.Schema.Union(exports.TfheSerialisationTypeName, effect_1.Schema.String),
316
+ name: Schema.Union(TfheSerialisationTypeName, Schema.String),
325
317
  });
326
318
  // Decode a serialisation header from a ciphertext or other bincode-serialised data from tfhe-rs
327
- function decodeTfheSerializationHeader(buffer) {
328
- const decoder = new bincode_ts_1.Decoder();
329
- const decoded = decoder.load(Uint8Array.from(buffer).buffer).decodeAs(exports.SerializationHeader);
330
- return (0, schema_1.parse)(exports.TfheSerializationHeader, decoded);
319
+ export function decodeTfheSerializationHeader(buffer) {
320
+ const decoder = new Decoder();
321
+ const decoded = decoder.load(Uint8Array.from(buffer).buffer).decodeAs(SerializationHeader);
322
+ return parse(TfheSerializationHeader, decoded);
331
323
  }
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maGV2bS90ZmhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlHQSw0Q0FvQ0M7QUFFRCxvREFpTEM7QUFFRCw4Q0FTQztBQUlELDRDQWlDQztBQTBERCxzRUFJQztBQXRhRCwyQ0FBK0M7QUFDL0MsbUNBQWdDO0FBQ2hDLHlDQWNtQjtBQUNuQiwrQkFBaUM7QUFDakMsc0NBQXFGO0FBQ3JGLHlEQVlrQztBQUNsQyxzQ0FBeUY7QUFDekYsc0NBQWtDO0FBQ2xDLG1DQUFtRDtBQUVuRCxxSEFBcUg7QUFDckgsbUVBQW1FO0FBRW5FLGlMQUFpTDtBQUNqTCxtREFBbUQ7QUFDdEMsUUFBQSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM3RCxRQUFBLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFrQnRELFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsQ0FBQyxFQUFFLENBQUMsRUFBRSwrQkFBK0I7SUFDckMsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztJQUNMLEdBQUcsRUFBRSxDQUFDO0lBQ04sR0FBRyxFQUFFLENBQUM7SUFDTixHQUFHLEVBQUUsQ0FBQztJQUNOLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLEVBQUU7SUFDUixJQUFJLEVBQUUsRUFBRTtDQUNULENBQUM7QUF1QkYsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBdUI7SUFDdEQsTUFBTSxTQUFTLEdBQUcsZ0NBQW9CLENBQUMsZ0JBQWdC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
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maGV2bS90ZmhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUNMLHFCQUFxQixFQUVyQixzQkFBc0IsRUFDdEIsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULDJCQUEyQixFQUMzQixjQUFjLEVBQ2QsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JGLE9BQU8sRUFHTCxpQkFBaUIsRUFHakIsdUJBQXVCLEdBTXhCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRW5ELHFIQUFxSDtBQUNySCxtRUFBbUU7QUFFbkUsaUxBQWlMO0FBQ2pMLG1EQUFtRDtBQUNuRCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMxRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztB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
@@ -1,22 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHandleTypeFromFheType = getHandleTypeFromFheType;
4
- const node_tfhe_1 = require("node-tfhe");
5
- const handle_1 = require("../handle");
1
+ import { FheTypes } from 'node-tfhe';
2
+ import { handleTypes } from '../handle';
6
3
  // To HandleType
7
4
  // FIXME: how did you arrive at this?
8
5
  const fheTypeToHandleType = Object.freeze({
9
- [node_tfhe_1.FheTypes.Bool]: handle_1.handleTypes.ebool,
10
- [node_tfhe_1.FheTypes.Uint4]: handle_1.handleTypes.euint4,
11
- [node_tfhe_1.FheTypes.Uint8]: handle_1.handleTypes.euint8,
12
- [node_tfhe_1.FheTypes.Uint16]: handle_1.handleTypes.euint16,
13
- [node_tfhe_1.FheTypes.Uint32]: handle_1.handleTypes.euint32,
14
- [node_tfhe_1.FheTypes.Uint64]: handle_1.handleTypes.euint64,
15
- [node_tfhe_1.FheTypes.Uint128]: handle_1.handleTypes.euint128,
16
- [node_tfhe_1.FheTypes.Uint160]: handle_1.handleTypes.euint160,
17
- [node_tfhe_1.FheTypes.Uint256]: handle_1.handleTypes.euint256,
6
+ [FheTypes.Bool]: handleTypes.ebool,
7
+ [FheTypes.Uint4]: handleTypes.euint4,
8
+ [FheTypes.Uint8]: handleTypes.euint8,
9
+ [FheTypes.Uint16]: handleTypes.euint16,
10
+ [FheTypes.Uint32]: handleTypes.euint32,
11
+ [FheTypes.Uint64]: handleTypes.euint64,
12
+ [FheTypes.Uint128]: handleTypes.euint128,
13
+ [FheTypes.Uint160]: handleTypes.euint160,
14
+ [FheTypes.Uint256]: handleTypes.euint256,
18
15
  });
19
- function getHandleTypeFromFheType(fheType) {
16
+ export function getHandleTypeFromFheType(fheType) {
20
17
  if (!fheType) {
21
18
  throw new Error('FHE type is required');
22
19
  }
@@ -26,4 +23,4 @@ function getHandleTypeFromFheType(fheType) {
26
23
  }
27
24
  return handleType;
28
25
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmhldm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsNERBU0M7QUExQkQseUNBQXFDO0FBQ3JDLHNDQUFpRDtBQUVqRCxnQkFBZ0I7QUFDaEIscUNBQXFDO0FBQ3JDLE1BQU0sbUJBQW1CLEdBQXVDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQyxvQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLG9CQUFXLENBQUMsS0FBSztJQUNsQyxDQUFDLG9CQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxNQUFNO0lBQ3BDLENBQUMsb0JBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBVyxDQUFDLE1BQU07SUFDcEMsQ0FBQyxvQkFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9CQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLG9CQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxPQUFPO0lBQ3RDLENBQUMsb0JBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxvQkFBVyxDQUFDLE9BQU87SUFDdEMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLG9CQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLG9CQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxRQUFRO0lBQ3hDLENBQUMsb0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxvQkFBVyxDQUFDLFFBQVE7Q0FDekMsQ0FBQyxDQUFDO0FBRUgsU0FBZ0Isd0JBQXdCLENBQUMsT0FBNkI7SUFDcEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmhldm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELGdCQUFnQjtBQUNoQixxQ0FBcUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBdUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1RSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUMsS0FBSztJQUNsQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTTtJQUNwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTTtJQUNwQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtDQUN6QyxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBNkI7SUFDcEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
@@ -1,10 +1,7 @@
1
- "use strict";
2
1
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
2
  // AddTwo
4
3
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.addTwoAbi = void 0;
7
- exports.addTwoAbi = [
4
+ export const addTwoAbi = [
8
5
  {
9
6
  type: 'constructor',
10
7
  inputs: [
@@ -59,4 +56,4 @@ exports.addTwoAbi = [
59
56
  stateMutability: 'view',
60
57
  },
61
58
  ];
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkVHdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9hYmlzL2FkZFR3by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0tBQXNLO0FBQ3RLLFNBQVM7QUFDVCxzS0FBc0s7OztBQUV6SixRQUFBLFNBQVMsR0FBRztJQUN2QjtRQUNFLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFlBQVksRUFBRSx3QkFBd0I7Z0JBQ3RDLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDekUsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFO1lBQ1AsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQ3hEO1FBQ0QsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsY0FBYztRQUNwQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdEQsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM1RCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1NBQ25EO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7UUFDWCxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakUsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDTyxDQUFBIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkVHdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9hYmlzL2FkZFR3by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzS0FBc0s7QUFDdEssU0FBUztBQUNULHNLQUFzSztBQUV0SyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkI7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixZQUFZLEVBQUUsd0JBQXdCO2dCQUN0QyxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3pFLElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdEQsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUN4RDtRQUNELGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEUsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3RELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDNUQsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtTQUNuRDtRQUNELElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2pFLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0NBQ08sQ0FBQSJ9