@inco/js 0.1.31-alpha → 0.1.31

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 (177) hide show
  1. package/package.json +44 -10
  2. package/dist/binary.js +0 -67
  3. package/dist/binary.js.map +0 -1
  4. package/dist/chain.js +0 -24
  5. package/dist/chain.js.map +0 -1
  6. package/dist/encryption/encryption.js +0 -98
  7. package/dist/encryption/encryption.js.map +0 -1
  8. package/dist/encryption/index.js +0 -2
  9. package/dist/encryption/index.js.map +0 -1
  10. package/dist/fhevm/fhe-environment.js +0 -8
  11. package/dist/fhevm/fhe-environment.js.map +0 -1
  12. package/dist/fhevm/fhevm.js +0 -139
  13. package/dist/fhevm/fhevm.js.map +0 -1
  14. package/dist/fhevm/index.js +0 -2
  15. package/dist/fhevm/index.js.map +0 -1
  16. package/dist/fhevm/reencrypt.js +0 -123
  17. package/dist/fhevm/reencrypt.js.map +0 -1
  18. package/dist/fhevm/tfhe.js +0 -324
  19. package/dist/fhevm/tfhe.js.map +0 -1
  20. package/dist/fhevm/types.js +0 -26
  21. package/dist/fhevm/types.js.map +0 -1
  22. package/dist/generated/abis/addTwo.js +0 -59
  23. package/dist/generated/abis/addTwo.js.map +0 -1
  24. package/dist/generated/abis/inco-fhevm.js +0 -6242
  25. package/dist/generated/abis/inco-fhevm.js.map +0 -1
  26. package/dist/generated/abis/index.js +0 -3
  27. package/dist/generated/abis/index.js.map +0 -1
  28. package/dist/generated/abis/lightning.js +0 -12489
  29. package/dist/generated/abis/lightning.js.map +0 -1
  30. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -198
  31. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js.map +0 -1
  32. package/dist/generated/es/cosmos/msg/v1/msg_pb.js +0 -33
  33. package/dist/generated/es/cosmos/msg/v1/msg_pb.js.map +0 -1
  34. package/dist/generated/es/cosmos_proto/cosmos_pb.js +0 -115
  35. package/dist/generated/es/cosmos_proto/cosmos_pb.js.map +0 -1
  36. package/dist/generated/es/google/api/annotations_pb.js +0 -27
  37. package/dist/generated/es/google/api/annotations_pb.js.map +0 -1
  38. package/dist/generated/es/google/api/http_pb.js +0 -34
  39. package/dist/generated/es/google/api/http_pb.js.map +0 -1
  40. package/dist/generated/es/inco/fhe/v1/events_pb.js +0 -21
  41. package/dist/generated/es/inco/fhe/v1/events_pb.js.map +0 -1
  42. package/dist/generated/es/inco/fhe/v1/genesis_pb.js +0 -46
  43. package/dist/generated/es/inco/fhe/v1/genesis_pb.js.map +0 -1
  44. package/dist/generated/es/inco/fhe/v1/query_pb.js +0 -108
  45. package/dist/generated/es/inco/fhe/v1/query_pb.js.map +0 -1
  46. package/dist/generated/es/inco/fhe/v1/tx_pb.js +0 -108
  47. package/dist/generated/es/inco/fhe/v1/tx_pb.js.map +0 -1
  48. package/dist/generated/es/inco/fhe/v1/types_pb.js +0 -133
  49. package/dist/generated/es/inco/fhe/v1/types_pb.js.map +0 -1
  50. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +0 -43
  51. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js.map +0 -1
  52. package/dist/generated/es/inco/kms/lite/v1/types_pb.js +0 -44
  53. package/dist/generated/es/inco/kms/lite/v1/types_pb.js.map +0 -1
  54. package/dist/generated/es/inco/preflight/v1/genesis_pb.js +0 -20
  55. package/dist/generated/es/inco/preflight/v1/genesis_pb.js.map +0 -1
  56. package/dist/generated/es/inco/preflight/v1/query_pb.js +0 -38
  57. package/dist/generated/es/inco/preflight/v1/query_pb.js.map +0 -1
  58. package/dist/generated/es/inco/preflight/v1/tx_pb.js +0 -48
  59. package/dist/generated/es/inco/preflight/v1/tx_pb.js.map +0 -1
  60. package/dist/generated/es/inco/preflight/v1/types_pb.js +0 -34
  61. package/dist/generated/es/inco/preflight/v1/types_pb.js.map +0 -1
  62. package/dist/generated/es/kms/base_pb.js +0 -238
  63. package/dist/generated/es/kms/base_pb.js.map +0 -1
  64. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +0 -571
  65. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js.map +0 -1
  66. package/dist/generated/fhe-environments.js +0 -15
  67. package/dist/generated/fhe-environments.js.map +0 -1
  68. package/dist/generated/lightning.js +0 -399
  69. package/dist/generated/lightning.js.map +0 -1
  70. package/dist/generated/local-node.js +0 -8
  71. package/dist/generated/local-node.js.map +0 -1
  72. package/dist/generated/ts/amino/amino.js +0 -8
  73. package/dist/generated/ts/amino/amino.js.map +0 -1
  74. package/dist/generated/ts/cometbft/abci/v1/types.js +0 -5063
  75. package/dist/generated/ts/cometbft/abci/v1/types.js.map +0 -1
  76. package/dist/generated/ts/cometbft/crypto/v1/keys.js +0 -105
  77. package/dist/generated/ts/cometbft/crypto/v1/keys.js.map +0 -1
  78. package/dist/generated/ts/cometbft/crypto/v1/proof.js +0 -430
  79. package/dist/generated/ts/cometbft/crypto/v1/proof.js.map +0 -1
  80. package/dist/generated/ts/cometbft/types/v1/params.js +0 -713
  81. package/dist/generated/ts/cometbft/types/v1/params.js.map +0 -1
  82. package/dist/generated/ts/cometbft/types/v1/validator.js +0 -353
  83. package/dist/generated/ts/cometbft/types/v1/validator.js.map +0 -1
  84. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +0 -218
  85. package/dist/generated/ts/cosmos/app/v1alpha1/module.js.map +0 -1
  86. package/dist/generated/ts/cosmos/msg/v1/msg.js +0 -8
  87. package/dist/generated/ts/cosmos/msg/v1/msg.js.map +0 -1
  88. package/dist/generated/ts/cosmos_proto/cosmos.js +0 -211
  89. package/dist/generated/ts/cosmos_proto/cosmos.js.map +0 -1
  90. package/dist/generated/ts/gogoproto/gogo.js +0 -8
  91. package/dist/generated/ts/gogoproto/gogo.js.map +0 -1
  92. package/dist/generated/ts/google/api/annotations.js +0 -8
  93. package/dist/generated/ts/google/api/annotations.js.map +0 -1
  94. package/dist/generated/ts/google/api/http.js +0 -353
  95. package/dist/generated/ts/google/api/http.js.map +0 -1
  96. package/dist/generated/ts/google/protobuf/descriptor.js +0 -5070
  97. package/dist/generated/ts/google/protobuf/descriptor.js.map +0 -1
  98. package/dist/generated/ts/google/protobuf/duration.js +0 -90
  99. package/dist/generated/ts/google/protobuf/duration.js.map +0 -1
  100. package/dist/generated/ts/google/protobuf/timestamp.js +0 -90
  101. package/dist/generated/ts/google/protobuf/timestamp.js.map +0 -1
  102. package/dist/generated/ts/google/protobuf/wrappers.js +0 -506
  103. package/dist/generated/ts/google/protobuf/wrappers.js.map +0 -1
  104. package/dist/generated/ts/inco/abci/v1/types.js +0 -70
  105. package/dist/generated/ts/inco/abci/v1/types.js.map +0 -1
  106. package/dist/generated/ts/inco/fhe/module/v1/module.js +0 -63
  107. package/dist/generated/ts/inco/fhe/module/v1/module.js.map +0 -1
  108. package/dist/generated/ts/inco/fhe/v1/events.js +0 -187
  109. package/dist/generated/ts/inco/fhe/v1/events.js.map +0 -1
  110. package/dist/generated/ts/inco/fhe/v1/genesis.js +0 -711
  111. package/dist/generated/ts/inco/fhe/v1/genesis.js.map +0 -1
  112. package/dist/generated/ts/inco/fhe/v1/query.js +0 -1391
  113. package/dist/generated/ts/inco/fhe/v1/query.js.map +0 -1
  114. package/dist/generated/ts/inco/fhe/v1/tx.js +0 -1233
  115. package/dist/generated/ts/inco/fhe/v1/tx.js.map +0 -1
  116. package/dist/generated/ts/inco/fhe/v1/types.js +0 -985
  117. package/dist/generated/ts/inco/fhe/v1/types.js.map +0 -1
  118. package/dist/generated/ts/inco/originchain/module/v1/module.js +0 -63
  119. package/dist/generated/ts/inco/originchain/module/v1/module.js.map +0 -1
  120. package/dist/generated/ts/inco/originchain/v1/abci.js +0 -328
  121. package/dist/generated/ts/inco/originchain/v1/abci.js.map +0 -1
  122. package/dist/generated/ts/inco/originchain/v1/events.js +0 -213
  123. package/dist/generated/ts/inco/originchain/v1/events.js.map +0 -1
  124. package/dist/generated/ts/inco/originchain/v1/genesis.js +0 -66
  125. package/dist/generated/ts/inco/originchain/v1/genesis.js.map +0 -1
  126. package/dist/generated/ts/inco/originchain/v1/query.js +0 -277
  127. package/dist/generated/ts/inco/originchain/v1/query.js.map +0 -1
  128. package/dist/generated/ts/inco/originchain/v1/tx.js +0 -137
  129. package/dist/generated/ts/inco/originchain/v1/tx.js.map +0 -1
  130. package/dist/generated/ts/inco/originchain/v1/types.js +0 -200
  131. package/dist/generated/ts/inco/originchain/v1/types.js.map +0 -1
  132. package/dist/generated/ts/inco/preflight/module/v1/module.js +0 -63
  133. package/dist/generated/ts/inco/preflight/module/v1/module.js.map +0 -1
  134. package/dist/generated/ts/inco/preflight/v1/genesis.js +0 -182
  135. package/dist/generated/ts/inco/preflight/v1/genesis.js.map +0 -1
  136. package/dist/generated/ts/inco/preflight/v1/query.js +0 -256
  137. package/dist/generated/ts/inco/preflight/v1/query.js.map +0 -1
  138. package/dist/generated/ts/inco/preflight/v1/tx.js +0 -445
  139. package/dist/generated/ts/inco/preflight/v1/tx.js.map +0 -1
  140. package/dist/generated/ts/inco/preflight/v1/types.js +0 -395
  141. package/dist/generated/ts/inco/preflight/v1/types.js.map +0 -1
  142. package/dist/handle.js +0 -94
  143. package/dist/handle.js.map +0 -1
  144. package/dist/index.js +0 -6
  145. package/dist/index.js.map +0 -1
  146. package/dist/l1/client.js +0 -93
  147. package/dist/l1/client.js.map +0 -1
  148. package/dist/l1/index.js +0 -3
  149. package/dist/l1/index.js.map +0 -1
  150. package/dist/l1/preflight.js +0 -39
  151. package/dist/l1/preflight.js.map +0 -1
  152. package/dist/lite/deployments.js +0 -17
  153. package/dist/lite/deployments.js.map +0 -1
  154. package/dist/lite/ecies.js +0 -124
  155. package/dist/lite/ecies.js.map +0 -1
  156. package/dist/lite/hadu.js +0 -36
  157. package/dist/lite/hadu.js.map +0 -1
  158. package/dist/lite/index.js +0 -7
  159. package/dist/lite/index.js.map +0 -1
  160. package/dist/lite/lightning.js +0 -179
  161. package/dist/lite/lightning.js.map +0 -1
  162. package/dist/lite/reencrypt.js +0 -129
  163. package/dist/lite/reencrypt.js.map +0 -1
  164. package/dist/local/index.js +0 -2
  165. package/dist/local/index.js.map +0 -1
  166. package/dist/local/local-node.js +0 -24
  167. package/dist/local/local-node.js.map +0 -1
  168. package/dist/reencryption/eip712.js +0 -81
  169. package/dist/reencryption/eip712.js.map +0 -1
  170. package/dist/reencryption/index.js +0 -3
  171. package/dist/reencryption/index.js.map +0 -1
  172. package/dist/reencryption/types.js +0 -2
  173. package/dist/reencryption/types.js.map +0 -1
  174. package/dist/schema.js +0 -15
  175. package/dist/schema.js.map +0 -1
  176. package/dist/viem.js +0 -8
  177. package/dist/viem.js.map +0 -1
@@ -1,324 +0,0 @@
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';
10
- // This code pulled and modifier from fhevmjs which currently is a relatively poor dependency to extend since it does
11
- // not expose types correctly and does not export various modules
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
13
- // We use fhevm-backend in KMS and compute services
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 = {
18
- 1: 0, // ebool takes 2 encrypted bits
19
- 4: 1,
20
- 8: 2,
21
- 16: 3,
22
- 32: 4,
23
- 64: 5,
24
- 128: 6,
25
- 160: 7,
26
- 256: 8,
27
- 512: 9,
28
- 1024: 10,
29
- 2048: 11,
30
- };
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);
34
- return async ({ context, plaintext, }) => {
35
- if (plaintext.scheme !== encryptionSchemes.tfhe) {
36
- throw new Error(`Plaintext with scheme ${getEncryptionSchemeName(plaintext.scheme)} cannot be encrypted with TFHE`);
37
- }
38
- const { aclAddress, userAddress, contractAddress, hostChainId } = context;
39
- const input = createEncryptedInput(aclAddress, hostChainId, publicKey, { 2048: { publicParams } })(userAddress, contractAddress);
40
- const encInput = await addPlaintextInput(input, plaintext).encrypt();
41
- // FIXME: support multi-valued ciphertext properly
42
- const prehandle = encInput.prehandles[0];
43
- const handle = computeHandle({ prehandle, context });
44
- return {
45
- context,
46
- // The '0x' prefix is required for bytes32 for correct json parsing in foundry, but avoided in ciphertext to avoid bytes-based encoding
47
- // we may need
48
- prehandle: asBytes32(prehandle),
49
- handle: asBytes32(handle),
50
- ciphertext: {
51
- scheme: plaintext.scheme,
52
- type: plaintext.type,
53
- value: bytesToHex(encInput.ciphertext),
54
- },
55
- };
56
- };
57
- }
58
- export function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey, publicParams) {
59
- return (userAddress, contractAddress) => {
60
- if (!isAddress(contractAddress)) {
61
- throw new Error('Contract address is not a valid address.');
62
- }
63
- if (!isAddress(userAddress)) {
64
- throw new Error('User address is not a valid address.');
65
- }
66
- const bits = [];
67
- const builder = CompactCiphertextList.builder(tfheCompactPublicKey);
68
- const checkLimit = (added) => {
69
- if (bits.reduce((acc, val) => acc + Math.max(2, val), 0) + added > 2048) {
70
- throw Error('Packing more than 2048 bits in a single input ciphertext is unsupported');
71
- }
72
- if (bits.length + 1 > 256)
73
- throw Error('Packing more than 256 variables in a single input ciphertext is unsupported');
74
- };
75
- function checkEncryptedValue(value, bits) {
76
- if (value == null)
77
- throw new Error('Missing value');
78
- let limit;
79
- if (bits >= 8) {
80
- limit = BigInt(`0x${new Array(bits / 8).fill(null).reduce((v) => `${v}ff`, '')}`);
81
- }
82
- else {
83
- limit = BigInt(2 ** bits - 1);
84
- }
85
- if (value > limit) {
86
- throw new Error(`The value exceeds the limit for ${bits}bits integer (${limit.toString()}).`);
87
- }
88
- }
89
- return {
90
- addBool(value) {
91
- if (typeof value !== 'bigint' && Number(value) > 1)
92
- throw new Error('The value must be 1 or 0.');
93
- checkEncryptedValue(Number(value), 1);
94
- checkLimit(2);
95
- builder.push_boolean(!!value);
96
- bits.push(1); // ebool takes 2 encrypted bits
97
- return this;
98
- },
99
- add4(value) {
100
- checkEncryptedValue(value, 4);
101
- checkLimit(4);
102
- builder.push_u4(Number(value));
103
- bits.push(4);
104
- return this;
105
- },
106
- add8(value) {
107
- checkEncryptedValue(value, 8);
108
- checkLimit(8);
109
- builder.push_u8(Number(value));
110
- bits.push(8);
111
- return this;
112
- },
113
- add16(value) {
114
- checkEncryptedValue(value, 16);
115
- checkLimit(16);
116
- builder.push_u16(Number(value));
117
- bits.push(16);
118
- return this;
119
- },
120
- add32(value) {
121
- checkEncryptedValue(value, 32);
122
- checkLimit(32);
123
- builder.push_u32(Number(value));
124
- bits.push(32);
125
- return this;
126
- },
127
- add64(value) {
128
- checkEncryptedValue(value, 64);
129
- checkLimit(64);
130
- builder.push_u64(BigInt(value));
131
- bits.push(64);
132
- return this;
133
- },
134
- add128(value) {
135
- checkEncryptedValue(value, 128);
136
- checkLimit(128);
137
- builder.push_u128(BigInt(value));
138
- bits.push(128);
139
- return this;
140
- },
141
- addAddress(value) {
142
- if (!isAddress(value)) {
143
- throw new Error('The value must be a valid address.');
144
- }
145
- checkLimit(160);
146
- builder.push_u160(BigInt(value));
147
- bits.push(160);
148
- return this;
149
- },
150
- add256(value) {
151
- checkEncryptedValue(value, 256);
152
- checkLimit(256);
153
- builder.push_u256(BigInt(value));
154
- bits.push(256);
155
- return this;
156
- },
157
- addBytes64(value) {
158
- if (value.length !== 64)
159
- throw Error('Incorrect length of input Uint8Array, should be 64 for an ebytes64');
160
- const bigIntValue = bytesToBigInt(value);
161
- checkEncryptedValue(bigIntValue, 512);
162
- checkLimit(512);
163
- builder.push_u512(bigIntValue);
164
- bits.push(512);
165
- return this;
166
- },
167
- addBytes128(value) {
168
- if (value.length !== 128)
169
- throw Error('Incorrect length of input Uint8Array, should be 128 for an ebytes128');
170
- const bigIntValue = bytesToBigInt(value);
171
- checkEncryptedValue(bigIntValue, 1024);
172
- checkLimit(1024);
173
- builder.push_u1024(bigIntValue);
174
- bits.push(1024);
175
- return this;
176
- },
177
- addBytes256(value) {
178
- if (value.length !== 256)
179
- throw Error('Incorrect length of input Uint8Array, should be 256 for an ebytes256');
180
- const bigIntValue = bytesToBigInt(value);
181
- checkEncryptedValue(bigIntValue, 2048);
182
- checkLimit(2048);
183
- builder.push_u2048(bigIntValue);
184
- bits.push(2048);
185
- return this;
186
- },
187
- getBits() {
188
- return bits;
189
- },
190
- async encrypt() {
191
- const getKeys = (obj) => Object.keys(obj);
192
- const totalBits = bits.reduce((total, v) => total + v, 0);
193
- const now = Date.now();
194
- // const ppTypes = getKeys(publicParams);
195
- const ppTypes = getKeys(publicParams);
196
- const closestPP = ppTypes.find((k) => Number(k) >= totalBits);
197
- if (!closestPP) {
198
- throw new Error(`Too many bits in provided values. Maximum is ${ppTypes[ppTypes.length - 1]}.`);
199
- }
200
- const pp = publicParams[closestPP].publicParams;
201
- const buffContract = bytesFromHexString(contractAddress);
202
- const buffUser = bytesFromHexString(userAddress);
203
- const buffAcl = bytesFromHexString(aclContractAddress);
204
- const buffChainId = bytesFromHexString(chainId.toString(16));
205
- const auxData = new Uint8Array(buffContract.length + buffUser.length + buffAcl.length + 32);
206
- auxData.set(buffContract, 0);
207
- auxData.set(buffUser, 20);
208
- auxData.set(buffAcl, 40);
209
- auxData.set(buffChainId, auxData.length - buffChainId.length);
210
- const encrypted = builder.build_with_proof_packed(pp, auxData, ZkComputeLoad.Proof);
211
- const ciphertext = Buffer.from(encrypted.safe_serialize(SERIALIZED_SIZE_LIMIT_CIPHERTEXT));
212
- // These prehandles have the expected layout expected by verifyCiphertext
213
- // including type and version metadata
214
- const prehandles = [];
215
- for (let i = 0; i < encrypted.len(); i++) {
216
- const handleType = getHandleTypeFromFheType(encrypted.get_kind_of(i));
217
- prehandles[i] = computePrehandle({
218
- ciphertext,
219
- handleType: handleType,
220
- handleVersion: HANDLE_VERSION,
221
- indexHandle: i,
222
- });
223
- }
224
- return {
225
- prehandles,
226
- ciphertext,
227
- };
228
- },
229
- };
230
- };
231
- }
232
- export function addPlaintextInput(input, plaintext) {
233
- switch (plaintext.type) {
234
- case handleTypes.ebool:
235
- return input.addBool(plaintext.value);
236
- case handleTypes.euint64:
237
- return input.add64(plaintext.value);
238
- case handleTypes.euint256:
239
- return input.add256(plaintext.value);
240
- }
241
- }
242
- // Decryption...
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);
247
- return async ({ scheme, type, value, }) => {
248
- if (scheme !== encryptionSchemes.tfhe) {
249
- throw new Error(`Ciphertext with scheme ${getEncryptionSchemeName(scheme)} cannot be decrypted with TFHE`);
250
- }
251
- const handleType = type;
252
- const ctBuf = bytesFromHexString(value);
253
- const header = decodeTfheSerializationHeader(ctBuf);
254
- // For now just support a singleton ciphertext list
255
- if (header.name === ProvenCompactCiphertextListTypeName) {
256
- const encrypted = ProvenCompactCiphertextList.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
257
- const decrypted = encrypted.expand_without_verification();
258
- const kind = decrypted.get_kind_of(0);
259
- return fromCiphertextList(decrypted, clientKey);
260
- }
261
- const decryptor = decryptionClasses[handleType];
262
- if (!decryptor) {
263
- throw new Error(`Unsupported handle type: ${handleType}`);
264
- }
265
- const encrypted = decryptor.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
266
- const decrypted = encrypted.decrypt(clientKey);
267
- // First assign to unnarrowed plaintext to avoid concealing type
268
- const plaintext = { scheme: encryptionSchemes.tfhe, type: handleType, value: decrypted };
269
- return plaintext;
270
- };
271
- }
272
- function fromCiphertextList(decrypted, clientKey) {
273
- const kind = decrypted.get_kind_of(0);
274
- const scheme = encryptionSchemes.tfhe;
275
- switch (kind) {
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) };
282
- }
283
- throw new Error(`Unsupported kind: ${kind}`);
284
- }
285
- const decryptionClasses = {
286
- [handleTypes.ebool]: FheBool,
287
- [handleTypes.euint64]: FheUint64,
288
- [handleTypes.euint256]: FheUint256,
289
- };
290
- var VersioningMode;
291
- (function (VersioningMode) {
292
- VersioningMode[VersioningMode["Versioned"] = 0] = "Versioned";
293
- VersioningMode[VersioningMode["Unversioned"] = 1] = "Unversioned";
294
- })(VersioningMode || (VersioningMode = {}));
295
- // Representation of (https://github.com/zama-ai/tfhe-rs/blob/8ee1bdd9a935e9f00c72238f2ff5220ccf77c850/tfhe/src/safe_serialization.rs#L75-L79):
296
- // struct SerializationHeader {
297
- // header_version: Cow<'static, str>,
298
- // versioning_mode: SerializationVersioningMode,
299
- // name: Cow<'static, str>,
300
- // }
301
- export const SerializationHeader = RustType.Struct([
302
- ['header_version', RustType.Str],
303
- [
304
- 'versioning_mode',
305
- RustType.Enum({ [VersioningMode.Versioned]: RustType.Str, [VersioningMode.Unversioned]: RustType.Str }),
306
- ],
307
- ['name', RustType.Str],
308
- ]);
309
- // Output schema (note we currently strip the versioning_mode field because we do not care about it, only the name
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,
315
- // For now, we will accept any string to avoid having to define an exhaustive union above
316
- name: Schema.Union(TfheSerialisationTypeName, Schema.String),
317
- });
318
- // Decode a serialisation header from a ciphertext or other bincode-serialised data from tfhe-rs
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);
323
- }
324
- //# sourceMappingURL=tfhe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tfhe.js","sourceRoot":"","sources":["../../src/fhevm/tfhe.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { FheTypes } from 'node-tfhe';
2
- import { handleTypes } from '../handle';
3
- // To HandleType
4
- // FIXME: how did you arrive at this?
5
- const fheTypeToHandleType = Object.freeze({
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,
15
- });
16
- export function getHandleTypeFromFheType(fheType) {
17
- if (!fheType) {
18
- throw new Error('FHE type is required');
19
- }
20
- const handleType = fheTypeToHandleType[fheType];
21
- if (!handleType) {
22
- throw new Error(`Inco SDK does not know how to map FHE type '${fheType}' to HandleType`);
23
- }
24
- return handleType;
25
- }
26
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fhevm/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjD,gBAAgB;AAChB,qCAAqC;AACrC,MAAM,mBAAmB,GAAuC,MAAM,CAAC,MAAM,CAAC;IAC5E,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK;IAClC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM;IACpC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM;IACpC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO;IACtC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO;IACtC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO;IACtC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ;IACxC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ;IACxC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ;CACzC,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,59 +0,0 @@
1
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2
- // AddTwo
3
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4
- export const addTwoAbi = [
5
- {
6
- type: 'constructor',
7
- inputs: [
8
- {
9
- name: '_inco',
10
- internalType: 'contract IncoLightning',
11
- type: 'address',
12
- },
13
- ],
14
- stateMutability: 'nonpayable',
15
- },
16
- {
17
- type: 'function',
18
- inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],
19
- name: 'addTwo',
20
- outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],
21
- stateMutability: 'nonpayable',
22
- },
23
- {
24
- type: 'function',
25
- inputs: [{ name: 'uint256EInput', internalType: 'bytes', type: 'bytes' }],
26
- name: 'addTwoEOA',
27
- outputs: [
28
- { name: '', internalType: 'uint256', type: 'uint256' },
29
- { name: '', internalType: 'euint256', type: 'bytes32' },
30
- ],
31
- stateMutability: 'nonpayable',
32
- },
33
- {
34
- type: 'function',
35
- inputs: [{ name: 'a', internalType: 'euint256', type: 'bytes32' }],
36
- name: 'addTwoScalar',
37
- outputs: [{ name: '', internalType: 'euint256', type: 'bytes32' }],
38
- stateMutability: 'nonpayable',
39
- },
40
- {
41
- type: 'function',
42
- inputs: [
43
- { name: '', internalType: 'uint256', type: 'uint256' },
44
- { name: 'result', internalType: 'uint256', type: 'uint256' },
45
- { name: '', internalType: 'bytes', type: 'bytes' },
46
- ],
47
- name: 'callback',
48
- outputs: [],
49
- stateMutability: 'nonpayable',
50
- },
51
- {
52
- type: 'function',
53
- inputs: [],
54
- name: 'lastResult',
55
- outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
56
- stateMutability: 'view',
57
- },
58
- ];
59
- //# sourceMappingURL=addTwo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addTwo.js","sourceRoot":"","sources":["../../../src/generated/abis/addTwo.ts"],"names":[],"mappings":"AAAA,sKAAsK;AACtK,SAAS;AACT,sKAAsK;AAEtK,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,wBAAwB;gBACtC,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACtD,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;SACxD;QACD,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACtD,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5D,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;SACnD;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;KACxB;CACO,CAAA"}