@sip-protocol/sdk 0.7.3 → 0.7.4

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 (264) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +267 -0
  3. package/dist/{TransportWebUSB-TQ7WZ4LE.mjs → TransportWebUSB-YQMAGJAJ.mjs} +12 -9
  4. package/dist/browser.d.mts +10 -4
  5. package/dist/browser.d.ts +10 -4
  6. package/dist/browser.js +47556 -19603
  7. package/dist/browser.mjs +628 -48
  8. package/dist/chunk-4GRJ5MAW.mjs +152 -0
  9. package/dist/chunk-5D7A3L3W.mjs +717 -0
  10. package/dist/chunk-64AYA5F5.mjs +7834 -0
  11. package/dist/chunk-GMDGB22A.mjs +379 -0
  12. package/dist/chunk-I534WKN7.mjs +328 -0
  13. package/dist/chunk-IBZVA5Y7.mjs +1003 -0
  14. package/dist/chunk-PRRZAWJE.mjs +223 -0
  15. package/dist/{chunk-UJCSKKID.mjs → chunk-XGB3TDIC.mjs} +13 -1
  16. package/dist/{chunk-3M3HNQCW.mjs → chunk-YWGJ77A2.mjs} +28656 -13103
  17. package/dist/{chunk-6WGN57S2.mjs → chunk-Z3K7W5S3.mjs} +48 -0
  18. package/dist/constants-LHAAUC2T.mjs +51 -0
  19. package/dist/dist-2OGQ7FED.mjs +3957 -0
  20. package/dist/dist-IFHPYLDX.mjs +254 -0
  21. package/dist/fulfillment_proof-ANHVPKTB.mjs +21 -0
  22. package/dist/funding_proof-ICFZ5LHY.mjs +21 -0
  23. package/dist/{index-DIBZHOOQ.d.ts → index-DXh2IGkz.d.ts} +21239 -10304
  24. package/dist/{index-8MQz13eJ.d.mts → index-DeE1ZzA4.d.mts} +21239 -10304
  25. package/dist/index.d.mts +9 -3
  26. package/dist/index.d.ts +9 -3
  27. package/dist/index.js +48396 -19623
  28. package/dist/index.mjs +537 -19
  29. package/dist/interface-Bf7w1PLW.d.mts +679 -0
  30. package/dist/interface-Bf7w1PLW.d.ts +679 -0
  31. package/dist/{noir-DKfEzWy9.d.mts → noir-kzbLVTei.d.mts} +31 -21
  32. package/dist/{noir-DKfEzWy9.d.ts → noir-kzbLVTei.d.ts} +31 -21
  33. package/dist/proofs/halo2.d.mts +151 -0
  34. package/dist/proofs/halo2.d.ts +151 -0
  35. package/dist/proofs/halo2.js +350 -0
  36. package/dist/proofs/halo2.mjs +11 -0
  37. package/dist/proofs/kimchi.d.mts +160 -0
  38. package/dist/proofs/kimchi.d.ts +160 -0
  39. package/dist/proofs/kimchi.js +431 -0
  40. package/dist/proofs/kimchi.mjs +13 -0
  41. package/dist/proofs/noir.d.mts +1 -1
  42. package/dist/proofs/noir.d.ts +1 -1
  43. package/dist/proofs/noir.js +74 -18
  44. package/dist/proofs/noir.mjs +84 -24
  45. package/dist/solana-U3MEGU7W.mjs +280 -0
  46. package/dist/validity_proof-3POXLPNY.mjs +21 -0
  47. package/package.json +54 -21
  48. package/src/adapters/index.ts +41 -0
  49. package/src/adapters/jupiter.ts +571 -0
  50. package/src/adapters/near-intents.ts +135 -0
  51. package/src/advisor/advisor.ts +653 -0
  52. package/src/advisor/index.ts +54 -0
  53. package/src/advisor/tools.ts +303 -0
  54. package/src/advisor/types.ts +164 -0
  55. package/src/chains/ethereum/announcement.ts +536 -0
  56. package/src/chains/ethereum/bnb-optimizations.ts +474 -0
  57. package/src/chains/ethereum/commitment.ts +522 -0
  58. package/src/chains/ethereum/constants.ts +462 -0
  59. package/src/chains/ethereum/deployment.ts +596 -0
  60. package/src/chains/ethereum/gas-estimation.ts +538 -0
  61. package/src/chains/ethereum/index.ts +268 -0
  62. package/src/chains/ethereum/optimizations.ts +614 -0
  63. package/src/chains/ethereum/privacy-adapter.ts +855 -0
  64. package/src/chains/ethereum/registry.ts +584 -0
  65. package/src/chains/ethereum/rpc.ts +905 -0
  66. package/src/chains/ethereum/stealth.ts +491 -0
  67. package/src/chains/ethereum/token.ts +790 -0
  68. package/src/chains/ethereum/transfer.ts +637 -0
  69. package/src/chains/ethereum/types.ts +456 -0
  70. package/src/chains/ethereum/viewing-key.ts +455 -0
  71. package/src/chains/near/commitment.ts +608 -0
  72. package/src/chains/near/constants.ts +284 -0
  73. package/src/chains/near/function-call.ts +871 -0
  74. package/src/chains/near/history.ts +654 -0
  75. package/src/chains/near/implicit-account.ts +840 -0
  76. package/src/chains/near/index.ts +393 -0
  77. package/src/chains/near/native-transfer.ts +658 -0
  78. package/src/chains/near/nep141.ts +775 -0
  79. package/src/chains/near/privacy-adapter.ts +889 -0
  80. package/src/chains/near/resolver.ts +971 -0
  81. package/src/chains/near/rpc.ts +1016 -0
  82. package/src/chains/near/stealth.ts +419 -0
  83. package/src/chains/near/types.ts +317 -0
  84. package/src/chains/near/viewing-key.ts +876 -0
  85. package/src/chains/solana/anchor-transfer.ts +386 -0
  86. package/src/chains/solana/commitment.ts +577 -0
  87. package/src/chains/solana/constants.ts +126 -12
  88. package/src/chains/solana/ephemeral-keys.ts +543 -0
  89. package/src/chains/solana/index.ts +252 -1
  90. package/src/chains/solana/key-derivation.ts +418 -0
  91. package/src/chains/solana/kit-compat.ts +334 -0
  92. package/src/chains/solana/optimizations.ts +560 -0
  93. package/src/chains/solana/privacy-adapter.ts +605 -0
  94. package/src/chains/solana/providers/generic.ts +47 -6
  95. package/src/chains/solana/providers/helius-enhanced-types.ts +336 -0
  96. package/src/chains/solana/providers/helius-enhanced.ts +623 -0
  97. package/src/chains/solana/providers/helius.ts +186 -33
  98. package/src/chains/solana/providers/index.ts +31 -0
  99. package/src/chains/solana/providers/interface.ts +61 -18
  100. package/src/chains/solana/providers/quicknode.ts +409 -0
  101. package/src/chains/solana/providers/triton.ts +426 -0
  102. package/src/chains/solana/providers/webhook.ts +338 -67
  103. package/src/chains/solana/rpc-client.ts +1150 -0
  104. package/src/chains/solana/scan.ts +83 -66
  105. package/src/chains/solana/sol-transfer.ts +732 -0
  106. package/src/chains/solana/spl-transfer.ts +886 -0
  107. package/src/chains/solana/stealth-scanner.ts +703 -0
  108. package/src/chains/solana/sunspot-verifier.ts +453 -0
  109. package/src/chains/solana/transaction-builder.ts +755 -0
  110. package/src/chains/solana/transfer.ts +74 -5
  111. package/src/chains/solana/types.ts +57 -6
  112. package/src/chains/solana/utils.ts +110 -0
  113. package/src/chains/solana/viewing-key.ts +807 -0
  114. package/src/compliance/fireblocks.ts +921 -0
  115. package/src/compliance/index.ts +23 -0
  116. package/src/compliance/range-sas.ts +398 -33
  117. package/src/config/endpoints.ts +100 -0
  118. package/src/crypto.ts +11 -8
  119. package/src/errors.ts +82 -0
  120. package/src/evm/erc4337-relayer.ts +830 -0
  121. package/src/evm/index.ts +47 -0
  122. package/src/fees/calculator.ts +396 -0
  123. package/src/fees/index.ts +87 -0
  124. package/src/fees/near-contract.ts +429 -0
  125. package/src/fees/types.ts +268 -0
  126. package/src/index.ts +686 -1
  127. package/src/intent.ts +6 -3
  128. package/src/logger.ts +324 -0
  129. package/src/network/index.ts +80 -0
  130. package/src/network/proxy.ts +691 -0
  131. package/src/optimizations/index.ts +541 -0
  132. package/src/oracle/types.ts +1 -0
  133. package/src/privacy-backends/arcium-types.ts +727 -0
  134. package/src/privacy-backends/arcium.ts +719 -0
  135. package/src/privacy-backends/combined-privacy.ts +866 -0
  136. package/src/privacy-backends/cspl-token.ts +595 -0
  137. package/src/privacy-backends/cspl-types.ts +512 -0
  138. package/src/privacy-backends/cspl.ts +907 -0
  139. package/src/privacy-backends/health.ts +488 -0
  140. package/src/privacy-backends/inco-types.ts +323 -0
  141. package/src/privacy-backends/inco.ts +616 -0
  142. package/src/privacy-backends/index.ts +254 -4
  143. package/src/privacy-backends/interface.ts +649 -6
  144. package/src/privacy-backends/lru-cache.ts +343 -0
  145. package/src/privacy-backends/magicblock.ts +458 -0
  146. package/src/privacy-backends/mock.ts +258 -0
  147. package/src/privacy-backends/privacycash.ts +13 -17
  148. package/src/privacy-backends/private-swap.ts +570 -0
  149. package/src/privacy-backends/rate-limiter.ts +683 -0
  150. package/src/privacy-backends/registry.ts +414 -2
  151. package/src/privacy-backends/router.ts +283 -3
  152. package/src/privacy-backends/shadowwire.ts +449 -0
  153. package/src/privacy-backends/sip-native.ts +3 -0
  154. package/src/privacy-logger.ts +191 -0
  155. package/src/production-safety.ts +373 -0
  156. package/src/proofs/aggregator.ts +1029 -0
  157. package/src/proofs/browser-composer.ts +1150 -0
  158. package/src/proofs/browser.ts +113 -25
  159. package/src/proofs/cache/index.ts +127 -0
  160. package/src/proofs/cache/interface.ts +545 -0
  161. package/src/proofs/cache/key-generator.ts +188 -0
  162. package/src/proofs/cache/lru-cache.ts +481 -0
  163. package/src/proofs/cache/multi-tier-cache.ts +575 -0
  164. package/src/proofs/cache/persistent-cache.ts +788 -0
  165. package/src/proofs/compliance-proof.ts +872 -0
  166. package/src/proofs/composer/base.ts +923 -0
  167. package/src/proofs/composer/index.ts +25 -0
  168. package/src/proofs/composer/interface.ts +518 -0
  169. package/src/proofs/composer/types.ts +383 -0
  170. package/src/proofs/converters/halo2.ts +452 -0
  171. package/src/proofs/converters/index.ts +208 -0
  172. package/src/proofs/converters/interface.ts +363 -0
  173. package/src/proofs/converters/kimchi.ts +462 -0
  174. package/src/proofs/converters/noir.ts +451 -0
  175. package/src/proofs/fallback.ts +888 -0
  176. package/src/proofs/halo2.ts +42 -0
  177. package/src/proofs/index.ts +471 -0
  178. package/src/proofs/interface.ts +13 -0
  179. package/src/proofs/kimchi.ts +42 -0
  180. package/src/proofs/lazy.ts +1004 -0
  181. package/src/proofs/mock.ts +25 -1
  182. package/src/proofs/noir.ts +110 -29
  183. package/src/proofs/orchestrator.ts +960 -0
  184. package/src/proofs/parallel/concurrency.ts +297 -0
  185. package/src/proofs/parallel/dependency-graph.ts +602 -0
  186. package/src/proofs/parallel/executor.ts +420 -0
  187. package/src/proofs/parallel/index.ts +131 -0
  188. package/src/proofs/parallel/interface.ts +685 -0
  189. package/src/proofs/parallel/worker-pool.ts +644 -0
  190. package/src/proofs/providers/halo2.ts +560 -0
  191. package/src/proofs/providers/index.ts +34 -0
  192. package/src/proofs/providers/kimchi.ts +641 -0
  193. package/src/proofs/validator.ts +881 -0
  194. package/src/proofs/verifier.ts +867 -0
  195. package/src/quantum/index.ts +112 -0
  196. package/src/quantum/winternitz-vault.ts +639 -0
  197. package/src/quantum/wots.ts +611 -0
  198. package/src/settlement/backends/direct-chain.ts +1 -0
  199. package/src/settlement/index.ts +9 -0
  200. package/src/settlement/router.ts +732 -46
  201. package/src/solana/index.ts +72 -0
  202. package/src/solana/jito-relayer.ts +687 -0
  203. package/src/solana/noir-verifier-types.ts +430 -0
  204. package/src/solana/noir-verifier.ts +816 -0
  205. package/src/stealth/address-derivation.ts +193 -0
  206. package/src/stealth/ed25519.ts +431 -0
  207. package/src/stealth/index.ts +233 -0
  208. package/src/stealth/meta-address.ts +221 -0
  209. package/src/stealth/secp256k1.ts +368 -0
  210. package/src/stealth/utils.ts +194 -0
  211. package/src/stealth.ts +50 -1504
  212. package/src/sync/index.ts +106 -0
  213. package/src/sync/manager.ts +504 -0
  214. package/src/sync/mock-provider.ts +318 -0
  215. package/src/sync/oblivious.ts +625 -0
  216. package/src/tokens/index.ts +15 -0
  217. package/src/tokens/registry.ts +301 -0
  218. package/src/utils/deprecation.ts +94 -0
  219. package/src/utils/index.ts +9 -0
  220. package/src/wallet/ethereum/index.ts +68 -0
  221. package/src/wallet/ethereum/metamask-privacy.ts +420 -0
  222. package/src/wallet/ethereum/multi-wallet.ts +646 -0
  223. package/src/wallet/ethereum/privacy-adapter.ts +700 -0
  224. package/src/wallet/ethereum/types.ts +3 -1
  225. package/src/wallet/ethereum/walletconnect-adapter.ts +675 -0
  226. package/src/wallet/hardware/index.ts +10 -0
  227. package/src/wallet/hardware/ledger-privacy.ts +414 -0
  228. package/src/wallet/index.ts +71 -0
  229. package/src/wallet/near/adapter.ts +626 -0
  230. package/src/wallet/near/index.ts +86 -0
  231. package/src/wallet/near/meteor-wallet.ts +1153 -0
  232. package/src/wallet/near/my-near-wallet.ts +790 -0
  233. package/src/wallet/near/wallet-selector.ts +702 -0
  234. package/src/wallet/solana/adapter.ts +6 -4
  235. package/src/wallet/solana/index.ts +13 -0
  236. package/src/wallet/solana/privacy-adapter.ts +567 -0
  237. package/src/wallet/sui/types.ts +6 -4
  238. package/src/zcash/rpc-client.ts +13 -6
  239. package/dist/chunk-2XIVXWHA.mjs +0 -1930
  240. package/dist/chunk-3INS3PR5.mjs +0 -884
  241. package/dist/chunk-3OVABDRH.mjs +0 -17096
  242. package/dist/chunk-7RFRWDCW.mjs +0 -1504
  243. package/dist/chunk-DLDWZFYC.mjs +0 -1495
  244. package/dist/chunk-E6SZWREQ.mjs +0 -57
  245. package/dist/chunk-F6F73W35.mjs +0 -16166
  246. package/dist/chunk-G33LB27A.mjs +0 -16166
  247. package/dist/chunk-HGU6HZRC.mjs +0 -231
  248. package/dist/chunk-L2K34JCU.mjs +0 -1496
  249. package/dist/chunk-OFDBEIEK.mjs +0 -16166
  250. package/dist/chunk-SF7YSLF5.mjs +0 -1515
  251. package/dist/chunk-SN4ZDTVW.mjs +0 -16166
  252. package/dist/chunk-WWUSGOXE.mjs +0 -17129
  253. package/dist/constants-VOI7BSLK.mjs +0 -27
  254. package/dist/index-B71aXVzk.d.ts +0 -13264
  255. package/dist/index-BYZbDjal.d.ts +0 -11390
  256. package/dist/index-CHB3KuOB.d.mts +0 -11859
  257. package/dist/index-CzWPI6Le.d.ts +0 -11859
  258. package/dist/index-pOIIuwfV.d.mts +0 -13264
  259. package/dist/index-xbWjohNq.d.mts +0 -11390
  260. package/dist/solana-4O4K45VU.mjs +0 -46
  261. package/dist/solana-5EMCTPTS.mjs +0 -46
  262. package/dist/solana-NDABAZ6P.mjs +0 -56
  263. package/dist/solana-Q4NAVBTS.mjs +0 -46
  264. package/dist/solana-ZYO63LY5.mjs +0 -46
@@ -0,0 +1,323 @@
1
+ /**
2
+ * Inco SDK Type Definitions
3
+ *
4
+ * Type definitions for the @inco/js package.
5
+ * Inco provides FHE (Fully Homomorphic Encryption) for encrypted state computation.
6
+ *
7
+ * ## Architecture
8
+ *
9
+ * - **FHE Engine**: Computes over encrypted data without decryption
10
+ * - **Encrypted Types**: euint256, ebool, eaddress
11
+ * - **Handles**: Unique identifiers for encrypted values on-chain
12
+ * - **Attestations**: Verified decryption mechanisms
13
+ *
14
+ * ## Products
15
+ *
16
+ * - **Inco Lightning**: TEE-based, faster, lower security guarantees
17
+ * - **Inco Atlas**: FHE+MPC, stronger cryptographic guarantees
18
+ *
19
+ * @see https://docs.inco.org
20
+ * @see https://www.npmjs.com/package/@inco/js
21
+ */
22
+
23
+ import type { ComputationStatus } from './interface'
24
+
25
+ // ─── Re-export from interface ────────────────────────────────────────────────
26
+
27
+ export type { ComputationStatus }
28
+
29
+ // ─── Inco-Specific Types ─────────────────────────────────────────────────────
30
+
31
+ /**
32
+ * Inco network configuration
33
+ */
34
+ export type IncoNetwork = 'testnet' | 'mainnet'
35
+
36
+ /**
37
+ * Inco product type
38
+ *
39
+ * - Lightning: TEE-based, faster
40
+ * - Atlas: FHE+MPC, stronger guarantees
41
+ */
42
+ export type IncoProduct = 'lightning' | 'atlas'
43
+
44
+ /**
45
+ * Supported encrypted data types in Inco FHE
46
+ *
47
+ * - euint256: Encrypted unsigned 256-bit integer
48
+ * - ebool: Encrypted boolean
49
+ * - eaddress: Encrypted Ethereum address
50
+ */
51
+ export type EncryptedType = 'euint256' | 'ebool' | 'eaddress'
52
+
53
+ /**
54
+ * Configuration for Inco SDK connection
55
+ */
56
+ export interface IncoConfig {
57
+ /** RPC endpoint URL */
58
+ rpcUrl: string
59
+ /** Network type */
60
+ network: IncoNetwork
61
+ /** Chain ID for EVM networks */
62
+ chainId?: number
63
+ /** Inco product to use */
64
+ product?: IncoProduct
65
+ }
66
+
67
+ /**
68
+ * Encrypted value handle
69
+ *
70
+ * Represents an encrypted value stored on-chain.
71
+ * The handle is used to reference the value in computations.
72
+ */
73
+ export interface EncryptedValue {
74
+ /** Unique handle identifier for the encrypted value */
75
+ handle: string
76
+ /** Type of encrypted data */
77
+ type: EncryptedType
78
+ /** Raw ciphertext (if available) */
79
+ ciphertext?: Uint8Array
80
+ /** Chain where the value is stored */
81
+ chainId?: number
82
+ }
83
+
84
+ /**
85
+ * Parameters for encrypting a value
86
+ */
87
+ export interface EncryptParams {
88
+ /** Value to encrypt (bigint for euint256, boolean for ebool, string for eaddress) */
89
+ value: bigint | boolean | string
90
+ /** Target encrypted type */
91
+ type: EncryptedType
92
+ /** Destination contract address */
93
+ contractAddress?: string
94
+ }
95
+
96
+ /**
97
+ * Parameters for decrypting a value
98
+ */
99
+ export interface DecryptParams {
100
+ /** Handle of the encrypted value */
101
+ handle: string
102
+ /** Expected type (for validation) */
103
+ type?: EncryptedType
104
+ }
105
+
106
+ /**
107
+ * Decryption result
108
+ */
109
+ export interface DecryptResult {
110
+ /** Decrypted value */
111
+ value: bigint | boolean | string
112
+ /** Type of the decrypted value */
113
+ type: EncryptedType
114
+ /** Whether decryption was verified/attested */
115
+ attested: boolean
116
+ }
117
+
118
+ /**
119
+ * Parameters for submitting FHE computation
120
+ */
121
+ export interface SubmitFHEParams {
122
+ /** Contract address containing the FHE logic */
123
+ contractAddress: string
124
+ /** Function selector or name */
125
+ functionName: string
126
+ /** Encrypted input handles */
127
+ encryptedInputs: string[]
128
+ /** Additional plaintext arguments */
129
+ plaintextArgs?: unknown[]
130
+ /** Gas limit for the transaction */
131
+ gasLimit?: bigint
132
+ }
133
+
134
+ /**
135
+ * FHE computation state information
136
+ */
137
+ export interface FHEComputationInfo {
138
+ /** Computation identifier */
139
+ id: string
140
+ /** Current status */
141
+ status: ComputationStatus
142
+ /** Contract address */
143
+ contractAddress: string
144
+ /** Function executed */
145
+ functionName: string
146
+ /** Input handles used */
147
+ inputHandles: string[]
148
+ /** Output handle (if completed) */
149
+ outputHandle?: string
150
+ /** Submission timestamp */
151
+ submittedAt: number
152
+ /** Completion timestamp (if completed) */
153
+ completedAt?: number
154
+ /** Transaction hash */
155
+ txHash?: string
156
+ /** Error message (if failed) */
157
+ error?: string
158
+ }
159
+
160
+ /**
161
+ * Attestation types for decryption
162
+ */
163
+ export type AttestationType = 'decrypt' | 'reveal' | 'compute'
164
+
165
+ /**
166
+ * Attestation request for verified decryption
167
+ */
168
+ export interface AttestationRequest {
169
+ /** Type of attestation */
170
+ type: AttestationType
171
+ /** Handle to attest */
172
+ handle: string
173
+ /** Requester address */
174
+ requester: string
175
+ /** Callback contract (optional) */
176
+ callbackContract?: string
177
+ }
178
+
179
+ /**
180
+ * Attestation result
181
+ */
182
+ export interface AttestationResult {
183
+ /** Whether attestation succeeded */
184
+ success: boolean
185
+ /** Decrypted/revealed value (if applicable) */
186
+ value?: bigint | boolean | string
187
+ /** Attestation proof */
188
+ proof?: string
189
+ /** Timestamp */
190
+ timestamp: number
191
+ }
192
+
193
+ // ─── SDK Interfaces ──────────────────────────────────────────────────────────
194
+
195
+ /**
196
+ * Inco Client SDK interface
197
+ *
198
+ * The actual SDK is @inco/js.
199
+ * This interface defines the expected API for our adapter.
200
+ */
201
+ export interface IIncoClient {
202
+ /**
203
+ * Initialize connection to Inco network
204
+ */
205
+ connect(config: IncoConfig): Promise<void>
206
+
207
+ /**
208
+ * Disconnect from Inco network
209
+ */
210
+ disconnect(): Promise<void>
211
+
212
+ /**
213
+ * Encrypt a value for FHE computation
214
+ *
215
+ * @param params - Encryption parameters
216
+ * @returns Encrypted value with handle
217
+ */
218
+ encrypt(params: EncryptParams): Promise<EncryptedValue>
219
+
220
+ /**
221
+ * Decrypt an encrypted value (requires authorization)
222
+ *
223
+ * @param params - Decryption parameters
224
+ * @returns Decrypted value
225
+ */
226
+ decrypt(params: DecryptParams): Promise<DecryptResult>
227
+
228
+ /**
229
+ * Submit an FHE computation
230
+ *
231
+ * @param params - Computation parameters
232
+ * @returns Computation ID for tracking
233
+ */
234
+ submitComputation(params: SubmitFHEParams): Promise<string>
235
+
236
+ /**
237
+ * Get computation status
238
+ *
239
+ * @param computationId - Computation to check
240
+ * @returns Current status
241
+ */
242
+ getComputationStatus(computationId: string): Promise<ComputationStatus>
243
+
244
+ /**
245
+ * Get detailed computation info
246
+ *
247
+ * @param computationId - Computation to query
248
+ * @returns Full computation info
249
+ */
250
+ getComputationInfo(computationId: string): Promise<FHEComputationInfo>
251
+
252
+ /**
253
+ * Wait for computation to complete
254
+ *
255
+ * @param computationId - Computation to wait for
256
+ * @param timeout - Optional timeout in milliseconds
257
+ * @returns Computation info on completion
258
+ */
259
+ awaitCompletion(
260
+ computationId: string,
261
+ timeout?: number
262
+ ): Promise<FHEComputationInfo>
263
+
264
+ /**
265
+ * Request attested decryption
266
+ *
267
+ * @param request - Attestation request
268
+ * @returns Attestation result
269
+ */
270
+ requestAttestation(request: AttestationRequest): Promise<AttestationResult>
271
+ }
272
+
273
+ // ─── Constants ───────────────────────────────────────────────────────────────
274
+
275
+ /**
276
+ * Inco network RPC endpoints
277
+ */
278
+ export const INCO_RPC_URLS: Record<IncoNetwork, string> = {
279
+ testnet: 'https://testnet.inco.org',
280
+ mainnet: 'https://mainnet.inco.org',
281
+ }
282
+
283
+ /**
284
+ * Inco chain IDs
285
+ */
286
+ export const INCO_CHAIN_IDS: Record<IncoNetwork, number> = {
287
+ testnet: 9090,
288
+ mainnet: 9091, // Placeholder - actual mainnet chain ID TBD
289
+ }
290
+
291
+ /**
292
+ * Supported EVM chains for Inco integration
293
+ */
294
+ export const INCO_SUPPORTED_CHAINS = [
295
+ 'ethereum',
296
+ 'base',
297
+ 'arbitrum',
298
+ 'optimism',
299
+ 'polygon',
300
+ ] as const
301
+
302
+ /**
303
+ * Default timeout for FHE computation (3 minutes)
304
+ * FHE is generally faster than MPC
305
+ */
306
+ export const DEFAULT_FHE_TIMEOUT_MS = 180_000
307
+
308
+ /**
309
+ * Estimated time for FHE computation (30 seconds)
310
+ * Faster than MPC due to no multi-party coordination
311
+ */
312
+ export const ESTIMATED_FHE_TIME_MS = 30_000
313
+
314
+ /**
315
+ * Base cost for Inco FHE computation (in wei)
316
+ * Actual cost depends on computation complexity
317
+ */
318
+ export const BASE_FHE_COST_WEI = BigInt('10000000000000000') // 0.01 ETH
319
+
320
+ /**
321
+ * Cost per encrypted input (in wei)
322
+ */
323
+ export const COST_PER_ENCRYPTED_INPUT_WEI = BigInt('1000000000000000') // 0.001 ETH