@zama-fhe/sdk 3.7.0 → 3.7.1
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.
- package/dist/cjs/base-signer.cjs +1 -1
- package/dist/cjs/base-signer.cjs.map +1 -1
- package/dist/cjs/chains/index.cjs +1 -1
- package/dist/cjs/chains.cjs +1 -1
- package/dist/cjs/chains.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/node/index.cjs +1 -1
- package/dist/cjs/telemetry.cjs +1 -1
- package/dist/esm/{base-signer-46j6PRq-.d.ts → base-signer-BxIDBDTF.d.ts} +2 -2
- package/dist/esm/base-signer-ClrhHzbm.js +2 -0
- package/dist/esm/{base-signer-b1ff2VPI.js.map → base-signer-ClrhHzbm.js.map} +1 -1
- package/dist/esm/chains/index.d.ts +2 -2
- package/dist/esm/chains/index.js +1 -1
- package/dist/esm/{chains-iPpnjXql.js → chains-BwlDI944.js} +2 -2
- package/dist/esm/chains-BwlDI944.js.map +1 -0
- package/dist/esm/cleartext/index.d.ts +2 -2
- package/dist/esm/cleartext/index.js +1 -1
- package/dist/esm/{cleartext-DInZ0vz-.d.ts → cleartext-BnTAN4-g.d.ts} +2 -2
- package/dist/esm/{cleartext-CiE1gO7Y.js → cleartext-DBZq4E1O.js} +2 -2
- package/dist/esm/{cleartext-CiE1gO7Y.js.map → cleartext-DBZq4E1O.js.map} +1 -1
- package/dist/esm/ethers/index.d.ts +4 -4
- package/dist/esm/ethers/index.js +1 -1
- package/dist/esm/{fhevm-relayer-DXLb4mIw.js → fhevm-relayer-BEQ31nmT.js} +2 -2
- package/dist/esm/{fhevm-relayer-DXLb4mIw.js.map → fhevm-relayer-BEQ31nmT.js.map} +1 -1
- package/dist/esm/{index-BKMce5ya.d.ts → index-BlY7CCPB.d.ts} +7 -7
- package/dist/esm/{index-CpQK8U4F.d.ts → index-CD2sMpst.d.ts} +2 -2
- package/dist/esm/{index-Cdbp_93f.d.ts → index-D1Wtji3m.d.ts} +4 -26
- package/dist/esm/{index-C1clixw5.d.ts → index-fsWBYM8S.d.ts} +4 -4
- package/dist/esm/index.d.ts +9 -9
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node/index.d.ts +5 -5
- package/dist/esm/node/index.js +1 -1
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/query/index.d.ts +5 -5
- package/dist/esm/{telemetry-Dll0Swdj.js → telemetry-CBSzrmab.js} +2 -2
- package/dist/esm/{telemetry-Dll0Swdj.js.map → telemetry-CBSzrmab.js.map} +1 -1
- package/dist/esm/{types-Bz42Emet.d.ts → types-C2ccCjoA.d.ts} +3 -3
- package/dist/esm/{types-BIgPY1yI.d.ts → types-CHepK8MK.d.ts} +2 -2
- package/dist/esm/{types-I9lJwH20.d.ts → types-Dc1fpXWt.d.ts} +3 -3
- package/dist/esm/vaults/index.d.ts +2 -2
- package/dist/esm/vaults/index.js +1 -1
- package/dist/esm/viem/index.d.ts +4 -4
- package/dist/esm/viem/index.js +1 -1
- package/dist/esm/web/index.d.ts +1 -1
- package/dist/esm/web/index.js +1 -1
- package/package.json +1 -1
- package/dist/esm/base-signer-b1ff2VPI.js +0 -2
- package/dist/esm/chains-iPpnjXql.js.map +0 -1
package/dist/esm/node/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as hoodi, c as
|
|
2
|
-
import { an as EncryptInput, c as GenericStorage, cn as EncryptedValue, dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, in as EIP712TypedData, n as RelayerConfig, nn as DecryptPublicValuesResult, on as EncryptParams, pn as RelayerOptions, s as GenericLogger, t as CleartextRelayerConfig, tn as ClearValue, un as FhevmClientOptions } from "../types-
|
|
3
|
-
import { t as cleartext } from "../cleartext-
|
|
4
|
-
import { i as node, n as asyncLocalStorage, r as NodeRelayerConfig, t as AsyncLocalMapStorage } from "../index-
|
|
5
|
-
export { AsyncLocalMapStorage, type ClearValue, type CleartextRelayerConfig, type DecryptPublicValuesResult, type EIP712TypedData, type EncryptInput, type EncryptParams, type EncryptedValue, type FheChain, type FheChainAuth, type FhevmClientOptions, type FhevmRelayerOptions, type FhevmRuntimeConfig, type GenericLogger, type GenericStorage, type NodeRelayerConfig, type RelayerConfig, type RelayerOptions, anvil, asyncLocalStorage, bscTestnet, chains, cleartext, hardhat, hoodi,
|
|
1
|
+
import { a as hoodi, c as polygonAmoy, f as FheChain, i as hardhat, l as sepolia, n as bscTestnet, o as mainnet, p as FheChainAuth, r as chains, s as polygon, t as anvil, u as zenithTrexTestnet } from "../index-D1Wtji3m.js";
|
|
2
|
+
import { an as EncryptInput, c as GenericStorage, cn as EncryptedValue, dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, in as EIP712TypedData, n as RelayerConfig, nn as DecryptPublicValuesResult, on as EncryptParams, pn as RelayerOptions, s as GenericLogger, t as CleartextRelayerConfig, tn as ClearValue, un as FhevmClientOptions } from "../types-CHepK8MK.js";
|
|
3
|
+
import { t as cleartext } from "../cleartext-BnTAN4-g.js";
|
|
4
|
+
import { i as node, n as asyncLocalStorage, r as NodeRelayerConfig, t as AsyncLocalMapStorage } from "../index-fsWBYM8S.js";
|
|
5
|
+
export { AsyncLocalMapStorage, type ClearValue, type CleartextRelayerConfig, type DecryptPublicValuesResult, type EIP712TypedData, type EncryptInput, type EncryptParams, type EncryptedValue, type FheChain, type FheChainAuth, type FhevmClientOptions, type FhevmRelayerOptions, type FhevmRuntimeConfig, type GenericLogger, type GenericStorage, type NodeRelayerConfig, type RelayerConfig, type RelayerOptions, anvil, asyncLocalStorage, bscTestnet, chains, cleartext, hardhat, hoodi, mainnet, node, polygon, polygonAmoy, sepolia, zenithTrexTestnet };
|
package/dist/esm/node/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../fhevm-relayer-
|
|
1
|
+
import{t as e}from"../fhevm-relayer-BEQ31nmT.js";import{t}from"../telemetry-CBSzrmab.js";import{t as n}from"../cleartext-DBZq4E1O.js";import{a as r,c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d,u as f}from"../chains-BwlDI944.js";import{AsyncLocalStorage as p}from"node:async_hooks";function m(n){return{type:`node`,createRelayer:(r,i,a)=>new e({chain:r,options:n,logger:i,telemetry:a&&!t(globalThis.process?.env??{})?{state:a,runtime:`node`}:void 0})}}var h=class{#e=new p;run(e){return this.#e.run(new Map,e)}async get(e){return this.#e.getStore()?.get(e)??null}async set(e,t){this.#e.getStore()?.set(e,t)}async delete(e){this.#e.getStore()?.delete(e)}};const g=new h;export{h as AsyncLocalMapStorage,d as anvil,g as asyncLocalStorage,s as bscTestnet,l as chains,n as cleartext,a as hardhat,r as hoodi,c as mainnet,m as node,u as polygon,i as polygonAmoy,o as sepolia,f as zenithTrexTestnet};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#als"],"sources":["../../../src/node/config.ts","../../../src/storage/async-local-storage.ts"],"sourcesContent":["import type { FheChain } from \"../chains/types\";\nimport type { RelayerConfig } from \"../config/types\";\nimport { FhevmRelayer } from \"../relayer/fhevm-relayer\";\nimport type { RelayerOptions } from \"../relayer/types\";\nimport type { LoggerService } from \"../services/logger-service\";\nimport { isTelemetryDisabledByEnv, type TelemetryState } from \"../telemetry\";\n\n/** Node transport — drives the FHE backend directly on the calling thread. */\nexport interface NodeRelayerConfig extends RelayerConfig {\n /** Discriminant for the node transport. */\n readonly type: \"node\";\n /** @internal */\n readonly createRelayer: (\n chain: FheChain,\n logger: LoggerService,\n telemetry?: TelemetryState,\n ) => FhevmRelayer;\n}\n\n/**\n * Node.js transport — drives `@fhevm/sdk` via {@link FhevmRelayer} on the calling thread.\n *\n * `ZAMA_SDK_TELEMETRY=0` turns off the `x-zama-sdk-*` usage headers, like\n * `createConfig({ telemetry: false })`.\n *\n * @example\n * ```ts\n * relayers: {\n * [sepolia.id]: node({ timeout: 5 * 60_000 }),\n * [mainnet.id]: node({ batchRpcCalls: true }),\n * }\n * ```\n */\nexport function node(options?: RelayerOptions): NodeRelayerConfig {\n return {\n type: \"node\",\n createRelayer: (chain, logger, telemetry) =>\n new FhevmRelayer({\n chain,\n options,\n logger,\n telemetry:\n telemetry && !isTelemetryDisabledByEnv(globalThis.process?.env ?? {})\n ? { state: telemetry, runtime: \"node\" }\n : undefined,\n }),\n };\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { GenericStorage } from \"../types\";\n\n/**\n * {@link GenericStorage} backed by Node.js {@link AsyncLocalStorage}.\n *\n * Each async context (e.g. HTTP request) gets its own isolated `Map`,\n * so credentials from one request never leak into another.\n *\n * Call {@link run} to establish a context before using the SDK:\n *\n * ```ts\n * import { asyncLocalStorage } from \"@zama-fhe/sdk/node\";\n *\n * app.post(\"/api/transfer\", (req, res) => {\n * asyncLocalStorage.run(async () => {\n * const sdk = new ZamaSDK({ relayer, signer, storage: asyncLocalStorage });\n * // credentials are scoped to this request\n * });\n * });\n * ```\n */\nexport class AsyncLocalMapStorage implements GenericStorage {\n readonly #als = new AsyncLocalStorage<Map<string, unknown>>();\n\n /** Execute `fn` within an isolated storage context. */\n run<R>(fn: () => R | Promise<R>): R | Promise<R> {\n return this.#als.run(new Map(), fn);\n }\n\n /**\n * Retrieve a value by key.\n * @returns The stored value, or `null` if the key does not exist.\n */\n async get<T = unknown>(key: string): Promise<T | null> {\n return (this.#als.getStore()?.get(key) as T) ?? null;\n }\n\n /** Store a value under the given key, overwriting any existing entry. */\n async set<T = unknown>(key: string, value: T): Promise<void> {\n this.#als.getStore()?.set(key, value);\n }\n\n /** Remove the entry for the given key (no-op if absent). */\n async delete(key: string): Promise<void> {\n this.#als.getStore()?.delete(key);\n }\n}\n\n/** Default singleton for application-wide use. */\nexport const asyncLocalStorage = new AsyncLocalMapStorage();\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["#als"],"sources":["../../../src/node/config.ts","../../../src/storage/async-local-storage.ts"],"sourcesContent":["import type { FheChain } from \"../chains/types\";\nimport type { RelayerConfig } from \"../config/types\";\nimport { FhevmRelayer } from \"../relayer/fhevm-relayer\";\nimport type { RelayerOptions } from \"../relayer/types\";\nimport type { LoggerService } from \"../services/logger-service\";\nimport { isTelemetryDisabledByEnv, type TelemetryState } from \"../telemetry\";\n\n/** Node transport — drives the FHE backend directly on the calling thread. */\nexport interface NodeRelayerConfig extends RelayerConfig {\n /** Discriminant for the node transport. */\n readonly type: \"node\";\n /** @internal */\n readonly createRelayer: (\n chain: FheChain,\n logger: LoggerService,\n telemetry?: TelemetryState,\n ) => FhevmRelayer;\n}\n\n/**\n * Node.js transport — drives `@fhevm/sdk` via {@link FhevmRelayer} on the calling thread.\n *\n * `ZAMA_SDK_TELEMETRY=0` turns off the `x-zama-sdk-*` usage headers, like\n * `createConfig({ telemetry: false })`.\n *\n * @example\n * ```ts\n * relayers: {\n * [sepolia.id]: node({ timeout: 5 * 60_000 }),\n * [mainnet.id]: node({ batchRpcCalls: true }),\n * }\n * ```\n */\nexport function node(options?: RelayerOptions): NodeRelayerConfig {\n return {\n type: \"node\",\n createRelayer: (chain, logger, telemetry) =>\n new FhevmRelayer({\n chain,\n options,\n logger,\n telemetry:\n telemetry && !isTelemetryDisabledByEnv(globalThis.process?.env ?? {})\n ? { state: telemetry, runtime: \"node\" }\n : undefined,\n }),\n };\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { GenericStorage } from \"../types\";\n\n/**\n * {@link GenericStorage} backed by Node.js {@link AsyncLocalStorage}.\n *\n * Each async context (e.g. HTTP request) gets its own isolated `Map`,\n * so credentials from one request never leak into another.\n *\n * Call {@link run} to establish a context before using the SDK:\n *\n * ```ts\n * import { asyncLocalStorage } from \"@zama-fhe/sdk/node\";\n *\n * app.post(\"/api/transfer\", (req, res) => {\n * asyncLocalStorage.run(async () => {\n * const sdk = new ZamaSDK({ relayer, signer, storage: asyncLocalStorage });\n * // credentials are scoped to this request\n * });\n * });\n * ```\n */\nexport class AsyncLocalMapStorage implements GenericStorage {\n readonly #als = new AsyncLocalStorage<Map<string, unknown>>();\n\n /** Execute `fn` within an isolated storage context. */\n run<R>(fn: () => R | Promise<R>): R | Promise<R> {\n return this.#als.run(new Map(), fn);\n }\n\n /**\n * Retrieve a value by key.\n * @returns The stored value, or `null` if the key does not exist.\n */\n async get<T = unknown>(key: string): Promise<T | null> {\n return (this.#als.getStore()?.get(key) as T) ?? null;\n }\n\n /** Store a value under the given key, overwriting any existing entry. */\n async set<T = unknown>(key: string, value: T): Promise<void> {\n this.#als.getStore()?.set(key, value);\n }\n\n /** Remove the entry for the given key (no-op if absent). */\n async delete(key: string): Promise<void> {\n this.#als.getStore()?.delete(key);\n }\n}\n\n/** Default singleton for application-wide use. */\nexport const asyncLocalStorage = new AsyncLocalMapStorage();\n"],"mappings":"oSAiCA,SAAgB,EAAK,EAA6C,CAChE,MAAO,CACL,KAAM,OACN,eAAgB,EAAO,EAAQ,IAC7B,IAAI,EAAa,CACf,QACA,UACA,SACA,UACE,GAAa,CAAC,EAAyB,WAAW,SAAS,KAAO,CAAC,CAAC,EAChE,CAAE,MAAO,EAAW,QAAS,MAAO,EACpC,IAAA,EACR,CAAC,CACL,CACF,CCzBA,IAAa,EAAb,KAA4D,CAC1D,GAAgB,IAAI,EAGpB,IAAO,EAA0C,CAC/C,OAAO,KAAKA,GAAK,IAAI,IAAI,IAAO,CAAE,CACpC,CAMA,MAAM,IAAiB,EAAgC,CACrD,OAAQ,KAAKA,GAAK,SAAS,CAAC,EAAE,IAAI,CAAG,GAAW,IAClD,CAGA,MAAM,IAAiB,EAAa,EAAyB,CAC3D,KAAKA,GAAK,SAAS,CAAC,EAAE,IAAI,EAAK,CAAK,CACtC,CAGA,MAAM,OAAO,EAA4B,CACvC,KAAKA,GAAK,SAAS,CAAC,EAAE,OAAO,CAAG,CAClC,CACF,EAGA,MAAa,EAAoB,IAAI"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, C as TransferAndCallRequest, Ct as ShieldCallbacks, D as GenericSigner, E as WrapRequest, F as ReadContractReturnType, Ft as UnwrapFinalizedEvent, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, It as UnwrapRequestedEvent, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, Lt as WrapEvent, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, S as TransactionKind, St as WrapOptions, T as UnwrapRequest, Tt as UnshieldCallbacks, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, _ as PrepareTransactionRequest, _t as ShieldOptions, an as EncryptInput, at as UnshieldPhase1SubmittedEvent, b as RevokeDelegationRequest, bt as UnshieldOptions, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, d as ConfidentialTransferFromRequest, dn as FhevmRelayerOptions, dt as WrapSubmittedEvent, en as TransactionResult, et as ShieldSubmittedEvent, f as ConfidentialTransferRequest, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, g as PrepareOptions, gt as ApprovalStrategy, h as PrepareFees, hn as RelayerSDK, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, jt as OnChainEvent, k as WalletAccountChange, kt as ConfidentialTransferEvent, l as GenericProvider, ln as FhevmClient, m as FinalizeUnwrapRequest, mn as RelayerRequestOptions, nn as DecryptPublicValuesResult, nt as TransactionOperation, on as EncryptParams, ot as UnshieldPhase2StartedEvent, p as DelegateDecryptionRequest, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, sn as EncryptResult, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, u as ApproveUnderlyingRequest, v as PreparedFor, vt as ShieldPath, w as UnwrapAllRequest, wt as TransferCallbacks, x as SetOperatorRequest, xt as UnwrapResult, y as PreparedTransaction, yt as TransferOptions, z as WriteFunctionName } from "../types-
|
|
3
|
-
import "../index-
|
|
4
|
-
import { At as TokenWrapperPair, C as Delegations, Ct as PreparedPermit, Dt as SignedPreparedPermit, Et as SerializedTransportKeyPair, Ot as ChecksummedAddress, S as Offline, St as PreparePermitRequest, T as Permits, Tt as SerializedPermitEip712, _ as WrappersRegistryConfig, _t as ZamaError, a as DecryptResult, b as BatchDecryptAsOptions, c as SignerQueryContext, d as QueryFactoryOptions, f as ZamaSDK, g as WrappersRegistry, h as ListPairsOptions, i as DelegatedDecryptOptions, jt as TokenWrapperPairWithMetadata, kt as PaginatedResult, l as zamaQueryKeys, n as BatchDecryptItem, o as EncryptedInput, p as ZamaSDKOptions, r as BatchDecryptResult, s as decryptValuesQueryOptions, t as Decryption, u as MutationFactoryOptions, v as WrappedToken, vt as ZamaErrorCode, w as DelegationStatus, x as Token, y as BatchBalancesResult } from "../index-
|
|
5
|
-
import "../index-
|
|
1
|
+
import { f as FheChain, p as FheChainAuth } from "../index-D1Wtji3m.js";
|
|
2
|
+
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, C as TransferAndCallRequest, Ct as ShieldCallbacks, D as GenericSigner, E as WrapRequest, F as ReadContractReturnType, Ft as UnwrapFinalizedEvent, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, It as UnwrapRequestedEvent, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, Lt as WrapEvent, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, S as TransactionKind, St as WrapOptions, T as UnwrapRequest, Tt as UnshieldCallbacks, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, _ as PrepareTransactionRequest, _t as ShieldOptions, an as EncryptInput, at as UnshieldPhase1SubmittedEvent, b as RevokeDelegationRequest, bt as UnshieldOptions, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, d as ConfidentialTransferFromRequest, dn as FhevmRelayerOptions, dt as WrapSubmittedEvent, en as TransactionResult, et as ShieldSubmittedEvent, f as ConfidentialTransferRequest, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, g as PrepareOptions, gt as ApprovalStrategy, h as PrepareFees, hn as RelayerSDK, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, jt as OnChainEvent, k as WalletAccountChange, kt as ConfidentialTransferEvent, l as GenericProvider, ln as FhevmClient, m as FinalizeUnwrapRequest, mn as RelayerRequestOptions, nn as DecryptPublicValuesResult, nt as TransactionOperation, on as EncryptParams, ot as UnshieldPhase2StartedEvent, p as DelegateDecryptionRequest, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, sn as EncryptResult, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, u as ApproveUnderlyingRequest, v as PreparedFor, vt as ShieldPath, w as UnwrapAllRequest, wt as TransferCallbacks, x as SetOperatorRequest, xt as UnwrapResult, y as PreparedTransaction, yt as TransferOptions, z as WriteFunctionName } from "../types-CHepK8MK.js";
|
|
3
|
+
import "../index-BlY7CCPB.js";
|
|
4
|
+
import { At as TokenWrapperPair, C as Delegations, Ct as PreparedPermit, Dt as SignedPreparedPermit, Et as SerializedTransportKeyPair, Ot as ChecksummedAddress, S as Offline, St as PreparePermitRequest, T as Permits, Tt as SerializedPermitEip712, _ as WrappersRegistryConfig, _t as ZamaError, a as DecryptResult, b as BatchDecryptAsOptions, c as SignerQueryContext, d as QueryFactoryOptions, f as ZamaSDK, g as WrappersRegistry, h as ListPairsOptions, i as DelegatedDecryptOptions, jt as TokenWrapperPairWithMetadata, kt as PaginatedResult, l as zamaQueryKeys, n as BatchDecryptItem, o as EncryptedInput, p as ZamaSDKOptions, r as BatchDecryptResult, s as decryptValuesQueryOptions, t as Decryption, u as MutationFactoryOptions, v as WrappedToken, vt as ZamaErrorCode, w as DelegationStatus, x as Token, y as BatchBalancesResult } from "../index-CD2sMpst.js";
|
|
5
|
+
import "../index-fsWBYM8S.js";
|
|
6
6
|
import { a as invalidateAfterSetOperator, c as invalidateAfterUnshield, d as invalidateAfterWrap, f as invalidateBalanceQueries, i as invalidateAfterApproveUnderlying, l as invalidateAfterUnshieldSettled, m as invalidateWalletLifecycleQueries, n as QueryFilterLike, o as invalidateAfterShield, p as invalidateWagmiBalanceQueries, r as QueryLike, s as invalidateAfterTransfer, t as QueryClientLike, u as invalidateAfterUnwrap } from "../invalidation-CJ-pzOUG.js";
|
|
7
7
|
import { Address, Hex } from "viem";
|
|
8
8
|
//#region src/query/utils.d.ts
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t){return{"x-zama-sdk-version":`3.7.
|
|
2
|
-
//# sourceMappingURL=telemetry-
|
|
1
|
+
function e(e,t){return{"x-zama-sdk-version":`3.7.1`,"x-zama-sdk-layer":e.state.layer,"x-zama-sdk-runtime":e.runtime,...t!==void 0&&{"x-zama-sdk-operation":t}}}function t(e,t){return Object.assign({},e,{operation:e?.operation??t})}function n(e){let t=e.ZAMA_SDK_TELEMETRY?.trim().toLowerCase();return t===`0`||t===`false`}export{e as n,t as r,n as t};
|
|
2
|
+
//# sourceMappingURL=telemetry-CBSzrmab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-
|
|
1
|
+
{"version":3,"file":"telemetry-CBSzrmab.js","names":["packageJson.version"],"sources":["../../package.json","../../src/version.ts","../../src/telemetry.ts"],"sourcesContent":["","import packageJson from \"../package.json\" with { type: \"json\" };\n\nexport const SDK_VERSION: string = packageJson.version;\n","import { SDK_VERSION } from \"./version\";\n\n// Usage telemetry: `x-zama-sdk-*` headers on the relayer calls the SDK already\n// makes. No header may carry a wallet address, encrypted value, amount or identifier.\n\nexport type TelemetryLayer = \"core\" | \"react\";\n\nexport type TelemetryRuntime = \"web\" | \"node\";\n\n/** Values are frozen once shipped, so that dashboards keyed on them survive method renames. */\nexport type TelemetryOperation =\n | \"balance-of\"\n | \"decrypt-balance-as\"\n | \"batch-balances-of\"\n | \"batch-decrypt-balances-as\"\n | \"confidential-transfer\"\n | \"confidential-transfer-from\"\n | \"confidential-transfer-and-call\"\n | \"confidential-transfer-from-and-call\"\n | \"unshield\"\n | \"unshield-all\"\n | \"resume-unshield\"\n | \"unwrap\"\n | \"finalize-unwrap\"\n | \"vault-deposit\"\n | \"vault-redeem\"\n | \"vault-join\"\n | \"vault-deposit-of\"\n | \"encrypt\"\n | \"decrypt-values\"\n | \"delegated-decrypt-values\"\n | \"delegated-batch-decrypt-values\"\n | \"decrypt-public-values\"\n | \"offline-confidential-transfer\"\n | \"offline-confidential-transfer-from\"\n | \"offline-unwrap\"\n | \"offline-finalize-unwrap\";\n\n/**\n * Shared by every relayer of a config. `layer` flips to `react` once\n * `ZamaProvider` marks the config, after the relayers exist.\n *\n * @internal\n */\nexport interface TelemetryState {\n layer: TelemetryLayer;\n}\n\nexport interface RelayerTelemetry {\n readonly state: TelemetryState;\n readonly runtime: TelemetryRuntime;\n}\n\nexport function telemetryHeaders(\n telemetry: RelayerTelemetry,\n operation: TelemetryOperation | undefined,\n): Record<string, string> {\n return {\n \"x-zama-sdk-version\": SDK_VERSION,\n \"x-zama-sdk-layer\": telemetry.state.layer,\n \"x-zama-sdk-runtime\": telemetry.runtime,\n ...(operation !== undefined && { \"x-zama-sdk-operation\": operation }),\n };\n}\n\n/** `options` labelled with `operation`, unless the caller already labelled it. */\nexport function withOperation<T extends { readonly operation?: TelemetryOperation }>(\n options: T | undefined,\n operation: TelemetryOperation,\n): Partial<T> & { readonly operation: TelemetryOperation } {\n return Object.assign({}, options, { operation: options?.operation ?? operation });\n}\n\nexport function isTelemetryDisabledByEnv(env: Record<string, string | undefined>): boolean {\n const value = env.ZAMA_SDK_TELEMETRY?.trim().toLowerCase();\n return value === \"0\" || value === \"false\";\n}\n"],"mappings":"AEqDA,SAAgB,EACd,EACA,EACwB,CACxB,MAAO,CACL,qBAAsB,QACtB,mBAAoB,EAAU,MAAM,MACpC,qBAAsB,EAAU,QAChC,GAAI,IAAc,IAAA,IAAa,CAAE,uBAAwB,CAAU,CACrE,CACF,CAGA,SAAgB,EACd,EACA,EACyD,CACzD,OAAO,OAAO,OAAO,CAAC,EAAG,EAAS,CAAE,UAAW,GAAS,WAAa,CAAU,CAAC,CAClF,CAEA,SAAgB,EAAyB,EAAkD,CACzF,IAAM,EAAQ,EAAI,oBAAoB,KAAK,CAAC,CAAC,YAAY,EACzD,OAAO,IAAU,KAAO,IAAU,OACpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as ZamaConfigBase } from "./types-
|
|
1
|
+
import { d as AtLeastOneChain } from "./index-D1Wtji3m.js";
|
|
2
|
+
import { a as ZamaConfigBase } from "./types-CHepK8MK.js";
|
|
3
3
|
import { EIP1193Provider } from "viem";
|
|
4
4
|
import { Provider, Signer } from "ethers";
|
|
5
5
|
//#region src/ethers/types.d.ts
|
|
@@ -26,4 +26,4 @@ type ZamaConfigEthers<TChains extends AtLeastOneChain = AtLeastOneChain> = ZamaC
|
|
|
26
26
|
});
|
|
27
27
|
//#endregion
|
|
28
28
|
export { ZamaConfigEthers as t };
|
|
29
|
-
//# sourceMappingURL=types-
|
|
29
|
+
//# sourceMappingURL=types-C2ccCjoA.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { d as AtLeastOneChain, f as FheChain } from "./index-D1Wtji3m.js";
|
|
2
2
|
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ContractFunctionReturnType, Hex } from "viem";
|
|
3
3
|
import { CreateUnsignedLegacyDecryptionPermitEip712Parameters, CreateUnsignedLegacyDecryptionPermitEip712ReturnType } from "@fhevm/sdk/actions/base";
|
|
4
4
|
import { createFhevmClient, setFhevmRuntimeConfig } from "@fhevm/sdk/viem";
|
|
@@ -1364,4 +1364,4 @@ type ZamaConfig = {
|
|
|
1364
1364
|
};
|
|
1365
1365
|
//#endregion
|
|
1366
1366
|
export { SetOperatorSubmittedEvent as $, TransactionReceipt as $t, WalletAccountListener as A, DelegatedForUserDecryptionEvent as At, ApproveUnderlyingSubmittedEvent as B, decodeConfidentialTransfer as Bt, TransferAndCallRequest as C, ShieldCallbacks as Ct, GenericSigner as D, AclEvent as Dt, WrapRequest as E, ACL_TOPICS as Et, ReadContractReturnType as F, UnwrapFinalizedEvent as Ft, DelegationSubmittedEvent as G, decodeUnwrapFinalized as Gt, DecryptEndEvent as H, decodeOnChainEvent as Ht, ReadFunctionName as I, UnwrapRequestedEvent as It, EncryptStartEvent as J, findDelegatedForUserDecryption as Jt, EncryptEndEvent as K, decodeUnwrapRequested as Kt, WriteContractArgs as L, WrapEvent as Lt, ContractAbi as M, RevokedDelegationForUserDecryptionEvent as Mt, ReadContractArgs as N, TOKEN_TOPICS as Nt, WalletAccount as O, AclTopics as Ot, ReadContractConfig as P, Topics as Pt, RevokeDelegationSubmittedEvent as Q, RawLog as Qt, WriteContractConfig as R, decodeAclEvent as Rt, TransactionKind as S, WrapOptions as St, UnwrapRequest as T, UnshieldCallbacks as Tt, DecryptErrorEvent as U, decodeOnChainEvents as Ut, BaseEvent as V, decodeDelegatedForUserDecryption as Vt, DecryptStartEvent as W, decodeRevokedDelegationForUserDecryption as Wt, PermitErrorEvent as X, findUnwrapRequested as Xt, FinalizeUnwrapSubmittedEvent as Y, findRevokedDelegationForUserDecryption as Yt, PermitOperation as Z, findWrap as Zt, PrepareTransactionRequest as _, ShieldOptions as _t, ZamaConfigBase as a, EncryptInput as an, UnshieldPhase1SubmittedEvent as at, RevokeDelegationRequest as b, UnshieldOptions as bt, GenericStorage as c, EncryptedValue as cn, UnwrapSubmittedEvent as ct, ConfidentialTransferFromRequest as d, FhevmRelayerOptions as dn, WrapSubmittedEvent as dt, TransactionResult as en, ShieldSubmittedEvent as et, ConfidentialTransferRequest as f, FhevmRuntimeConfig as fn, ZamaSDKEvent as ft, PrepareOptions as g, TypedValue$1 as gn, ApprovalStrategy as gt, PrepareFees as h, RelayerSDK as hn, ZamaSDKEvents as ht, ZamaConfig as i, EIP712TypedData as in, TransferSubmittedEvent as it, WalletAccountStore as j, OnChainEvent as jt, WalletAccountChange as k, ConfidentialTransferEvent as kt, GenericProvider as l, FhevmClient as ln, VaultOperation as lt, FinalizeUnwrapRequest as m, RelayerRequestOptions as mn, ZamaSDKEventType as mt, RelayerConfig as n, DecryptPublicValuesResult as nn, TransactionOperation as nt, ZamaConfigGeneric as o, EncryptParams as on, UnshieldPhase2StartedEvent as ot, DelegateDecryptionRequest as p, RelayerOptions as pn, ZamaSDKEventListener as pt, EncryptErrorEvent as q, decodeWrap as qt, WebRelayerConfig as r, DecryptValuesParameters as rn, TransferFromSubmittedEvent as rt, GenericLogger as s, EncryptResult as sn, UnshieldPhase2SubmittedEvent as st, CleartextRelayerConfig as t, ClearValue as tn, TransactionErrorEvent as tt, ApproveUnderlyingRequest as u, FhevmClientOptions as un, VaultSubmittedEvent as ut, PreparedFor as v, ShieldPath as vt, UnwrapAllRequest as w, TransferCallbacks as wt, SetOperatorRequest as x, UnwrapResult as xt, PreparedTransaction as y, TransferOptions as yt, WriteFunctionName as z, decodeAclEvents as zt };
|
|
1367
|
-
//# sourceMappingURL=types-
|
|
1367
|
+
//# sourceMappingURL=types-CHepK8MK.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as ZamaConfigBase } from "./types-
|
|
1
|
+
import { d as AtLeastOneChain } from "./index-D1Wtji3m.js";
|
|
2
|
+
import { a as ZamaConfigBase } from "./types-CHepK8MK.js";
|
|
3
3
|
import { EIP1193Provider, PublicClient, WalletClient } from "viem";
|
|
4
4
|
//#region src/viem/types.d.ts
|
|
5
5
|
/** Viem config — pass native viem clients directly. */
|
|
@@ -13,4 +13,4 @@ interface ZamaConfigViem<TChains extends AtLeastOneChain = AtLeastOneChain> exte
|
|
|
13
13
|
}
|
|
14
14
|
//#endregion
|
|
15
15
|
export { ZamaConfigViem as t };
|
|
16
|
-
//# sourceMappingURL=types-
|
|
16
|
+
//# sourceMappingURL=types-Dc1fpXWt.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Qt as RawLog, cn as EncryptedValue, en as TransactionResult } from "../types-
|
|
2
|
-
import { d as QueryFactoryOptions, f as ZamaSDK, u as MutationFactoryOptions, v as WrappedToken } from "../index-
|
|
1
|
+
import { Qt as RawLog, cn as EncryptedValue, en as TransactionResult } from "../types-CHepK8MK.js";
|
|
2
|
+
import { d as QueryFactoryOptions, f as ZamaSDK, u as MutationFactoryOptions, v as WrappedToken } from "../index-CD2sMpst.js";
|
|
3
3
|
import { t as QueryClientLike } from "../invalidation-CJ-pzOUG.js";
|
|
4
4
|
import { Address, Hex } from "viem";
|
|
5
5
|
//#region src/vaults/types.d.ts
|
package/dist/esm/vaults/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../relayer-C3jVhqSK.js";import{H as t,L as n,M as r,P as i}from"../erc165-BAd2z3ay.js";import{r as a,t as o}from"../encryption-6AVd-82z.js";import{a as s,i as c,l,n as u,o as d,t as f}from"../token-CTvEGQmH.js";import{S as p,b as m,t as h,x as g}from"../wrapped-token-IDUEFpZx.js";import{r as _}from"../telemetry-Dll0Swdj.js";import{l as v,p as y}from"../invalidation-BgFjmXeQ.js";import{getAddress as b}from"viem";const x=[{type:`function`,name:`batchCallbackDeadline`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchCreatedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchDispatchedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchMaxSlippageBps`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`batchMinBatchAge`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`}],stateMutability:`view`},{type:`function`,name:`callbackDeadline`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`claim`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`currentBatchId`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`deposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`dispatchBatch`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`exchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`exchangeRateDecimals`,inputs:[],outputs:[{name:``,type:`uint8`,internalType:`uint8`}],stateMutability:`pure`},{type:`function`,name:`fromToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`join`,inputs:[{name:`beneficiary`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`joined`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`maxSlippageBps`,inputs:[],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`minBatchAge`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`paused`,inputs:[],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`quit`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`recover`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`refunded`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`toToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`totalDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`unwrapRequestId`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`vault`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC4626`}],stateMutability:`view`},{type:`event`,name:`BatchCanceled`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchDispatched`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchFinalized`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`Claimed`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Joined`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Quit`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`error`,name:`BatchNonexistent`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchTooYoung`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`elapsed`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchUnexpectedState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`current`,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`},{name:`expectedStates`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`DuplicateUnderlyingTokens`,inputs:[]},{type:`error`,name:`EnforcedPause`,inputs:[]},{type:`error`,name:`ExpectedPause`,inputs:[]},{type:`error`,name:`IntermediateStepToTokenBalanceChanged`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`InvalidBeneficiary`,inputs:[]},{type:`error`,name:`InvalidCallbackDeadline`,inputs:[]},{type:`error`,name:`InvalidExchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`totalDeposits`,type:`uint256`,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,internalType:`uint64`}]},{type:`error`,name:`InvalidKMSSignatures`,inputs:[]},{type:`error`,name:`InvalidMaxSlippageBps`,inputs:[]},{type:`error`,name:`InvalidMinBatchAge`,inputs:[]},{type:`error`,name:`InvalidTokenRate`,inputs:[]},{type:`error`,name:`InvalidWrapperToken`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableInvalidOwner`,inputs:[{name:`owner`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`RouteAssetMismatch`,inputs:[{name:`actualAsset`,type:`address`,internalType:`address`},{name:`expectedAsset`,type:`address`,internalType:`address`}]},{type:`error`,name:`RouteShareMismatch`,inputs:[{name:`actualShare`,type:`address`,internalType:`address`},{name:`expectedShare`,type:`address`,internalType:`address`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`SenderNotAllowedToUseHandle`,inputs:[{name:`handle`,type:`bytes32`,internalType:`bytes32`},{name:`sender`,type:`address`,internalType:`address`}]},{type:`error`,name:`SlippageExceeded`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`actual`,type:`uint256`,internalType:`uint256`},{name:`minimum`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`Unauthorized`,inputs:[]},{type:`error`,name:`ZamaProtocolUnsupported`,inputs:[]},{type:`error`,name:`ZeroDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}]}];function S(e,t,n,r){return{address:e,abi:x,functionName:`join`,args:[t,n,r]}}function C(e,t,n){return{address:e,abi:x,functionName:`claim`,args:[t,n]}}function w(e,t){return{address:e,abi:x,functionName:`quit`,args:[t]}}function T(e,t,n){return{address:e,abi:x,functionName:`recover`,args:[t,n]}}function E(e){return{address:e,abi:x,functionName:`dispatchBatch`,args:[]}}function D(e){return{address:e,abi:x,functionName:`currentBatchId`,args:[]}}function O(e,t){return{address:e,abi:x,functionName:`batchState`,args:[t]}}function k(e,t){return{address:e,abi:x,functionName:`totalDeposits`,args:[t]}}function A(e,t,n){return{address:e,abi:x,functionName:`deposits`,args:[t,n]}}function j(e){return{address:e,abi:x,functionName:`vault`,args:[]}}function M(e){return{address:e,abi:x,functionName:`fromToken`,args:[]}}function N(e){return{address:e,abi:x,functionName:`toToken`,args:[]}}function P(e){return{address:e,abi:x,functionName:`minBatchAge`,args:[]}}function F(e,t){return{address:e,abi:x,functionName:`batchMinBatchAge`,args:[t]}}function I(e){return{address:e,abi:x,functionName:`callbackDeadline`,args:[]}}function L(e,t){return{address:e,abi:x,functionName:`batchCallbackDeadline`,args:[t]}}function R(e,t){return{address:e,abi:x,functionName:`batchCreatedAt`,args:[t]}}function z(e,t){return{address:e,abi:x,functionName:`batchDispatchedAt`,args:[t]}}function B(e,t){return{address:e,abi:x,functionName:`exchangeRate`,args:[t]}}function V(e){return{address:e,abi:x,functionName:`exchangeRateDecimals`,args:[]}}function H(e){return{address:e,abi:x,functionName:`paused`,args:[]}}const U={Joined:m(`Joined(uint256,address,bytes32)`)};function W(e){let[t,n,r]=e.topics;return t!==U.Joined||n===void 0||r===void 0?null:{batchId:BigInt(n),account:g(r),confidentialAmount:p(e.data,0)}}function G(e,t,n){let r=n?b(n):void 0;for(let n of e){if(n.address!==void 0&&b(n.address)!==t)continue;let e=W(n);if(e&&(r===void 0||e.account===r))return e}return null}const K={Pending:0,Dispatched:1,Finalized:2,Canceled:3};function q(e){let t,n=null;return()=>t===void 0?(n||=e().then(e=>(t=e,n=null,e)).catch(e=>{throw n=null,e}),n):Promise.resolve(t)}var J=class{sdk;address;#e;#t;#n;#r=null;constructor(e,t){this.sdk=e,this.address=b(t),this.#e=q(()=>e.provider.readContract(j(this.address))),this.#t=q(()=>e.provider.readContract(M(this.address))),this.#n=q(()=>e.provider.readContract(N(this.address)))}async vault(){return this.#e()}async fromToken(){return this.#t()}async toToken(){return this.#n()}async currentBatchId(){return this.sdk.provider.readContract(D(this.address))}async batchState(e){return await this.sdk.provider.readContract(O(this.address,e))}async paused(){return this.sdk.provider.readContract(H(this.address))}async minBatchAge(){return this.sdk.provider.readContract(P(this.address))}async batchMinBatchAge(e){return this.sdk.provider.readContract(F(this.address,e))}async callbackDeadline(){return this.sdk.provider.readContract(I(this.address))}async batchCallbackDeadline(e){return this.sdk.provider.readContract(L(this.address,e))}async batchCreatedAt(e){return this.sdk.provider.readContract(R(this.address,e))}async batchDispatchedAt(e){return this.sdk.provider.readContract(z(this.address,e))}async exchangeRate(e){return this.sdk.provider.readContract(B(this.address,e))}async exchangeRateDecimals(){return this.sdk.provider.readContract(V(this.address))}async timeUntilDispatchable(e){let[t,n,r,i]=await Promise.all([this.batchState(e),this.batchCreatedAt(e),this.batchMinBatchAge(e),this.sdk.provider.getBlockTimestamp()]);if(t!==K.Pending)return null;let a=n+r;return a>i?a-i:0n}async confidentialTotalDeposits(e){return this.sdk.provider.readContract(k(this.address,e))}async confidentialDepositOf(e,t){return this.sdk.provider.readContract(A(this.address,e,b(t)))}async depositOf(e,t){let n=b(t),i=await this.confidentialDepositOf(e,n);if(l(i))return 0n;let a=(await this.sdk.decryption.decryptValues([{encryptedValue:i,contractAddress:this.address}],{operation:`vault-deposit-of`}))[i];if(a===void 0)throw new o(`Decryption returned no value for ${i}`);return r(a,`depositOf: result[encryptedValue]`),a}async join(e,n,r){let{operation:i}=_(r,`vault-join`);this.#i(`join`);let o=b((await s(`join`,this.sdk.signer,this.sdk.provider)).address),c=n?b(n):o;r?.skipBalanceCheck||await this.#o(e,i);let{encryptedValues:l,inputProof:u}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:o},{operation:i}),d=l[0];if(!d)throw new a(`Encryption returned no encrypted values`);let f=await this.#c(`vault:join`,S(this.address,c,d,u)),p=G(f.receipt.logs,this.address,c);if(!p)throw new t(`No Joined event for ${c} from batcher ${this.address} found in the join receipt`);return{...f,batchId:p.batchId,beneficiary:p.account,confidentialJoinedAmount:p.confidentialAmount}}async quit(e){return this.#i(`quit`),await d(`quit`,this.sdk.signer,this.sdk.provider),this.#c(`vault:quit`,w(this.address,e))}async recover(e,t){let n=await this.#s(`recover`,t);return this.#c(`vault:recover`,T(this.address,e,n))}async claim(e,t){let n=await this.#s(`claim`,t);return this.#c(`vault:claim`,C(this.address,e,n))}async dispatchBatch(){return this.#i(`dispatchBatch`),await d(`dispatchBatch`,this.sdk.signer,this.sdk.provider),this.#c(`vault:dispatchBatch`,E(this.address))}#i(e){if(!this.sdk.signer)throw new n(e);return this.sdk.signer}async#a(){return this.#r??=this.fromToken().then(e=>new f(this.sdk,e)).catch(e=>{throw this.#r=null,e}),this.#r}async#o(e,t){let n=await this.#a();return c({operation:`join`,tokenAddress:n.address,amount:e,signer:this.sdk.signer,provider:this.sdk.provider,readBalance:e=>n.decryptBalance(e,t)})}async#s(e,t){return this.#i(e),t?(await d(e,this.sdk.signer,this.sdk.provider),b(t)):b((await s(e,this.sdk.signer,this.sdk.provider)).address)}async#c(e,t){return u({operation:e,signer:this.#i(e),provider:this.sdk.provider,config:t,emit:e=>this.sdk.emitEvent(e,this.address),logger:this.sdk.logger})}};function Y(e,t){return new J(e,t)}var X=class{sdk;depositBatcher;redeemBatcher;#e=null;#t=null;#n=null;#r;constructor(e,t){this.sdk=e,this.#r=t.vault?b(t.vault):void 0,this.depositBatcher=new J(e,t.depositBatcher),this.redeemBatcher=new J(e,t.redeemBatcher)}async vaultAddress(){return this.#e??=this.#i().catch(e=>{throw this.#e=null,e}),this.#e}async cAsset(){return this.#t??=this.depositBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#t=null,e}),this.#t}async cShare(){return this.#n??=this.redeemBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#n=null,e}),this.#n}async deposit(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cAsset()]);return await this.#a(`deposit`,n,this.depositBatcher.address,t?.operatorUntil),this.depositBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-deposit`})}async redeem(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cShare()]);return await this.#a(`redeem`,n,this.redeemBatcher.address,t?.operatorUntil),this.redeemBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-redeem`})}async#i(){let[t,n]=await Promise.all([this.depositBatcher.vault(),this.redeemBatcher.vault()]);if(b(t)!==b(n))throw new e(`Vault batchers point at different ERC-4626 vaults: deposit batcher ${this.depositBatcher.address} reports ${t}, redeem batcher ${this.redeemBatcher.address} reports ${n}`);let r=b(t);if(this.#r!==void 0&&this.#r!==r)throw new e(`Configured vault address ${this.#r} does not match the ${r} both batchers report`);return r}async#a(e,t,r,i){if(!this.sdk.signer)throw new n(e);let a=this.sdk.signer.requireWalletAccount(e);await t.isOperator(a.address,r)||await t.setOperator(r,i)}};function Z(e,t){return new X(e,t)}const Q={currentBatchId:{batcher:e=>[`zama.vault.currentBatchId`,{batcherAddress:b(e)}]},batchState:{batcher:e=>[`zama.vault.batchState`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.batchState`,{batcherAddress:b(e),batchId:t}]},timeUntilDispatchable:{batcher:e=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e),batchId:t}]}};function $(e,t){e.invalidateQueries({queryKey:Q.currentBatchId.batcher(t)}),e.invalidateQueries({queryKey:Q.batchState.batcher(t)}),e.invalidateQueries({queryKey:Q.timeUntilDispatchable.batcher(t)})}function ee(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function te(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function ne(e,t){v(e,t.toToken)}function re(e,t){$(e,t)}function ie(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.currentBatchId.batcher(e.address),queryFn:async()=>e.currentBatchId(),enabled:n.enabled!==!1}}function ae(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.batchState.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`batchStateQueryOptions: batchId`),e.batchState(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function oe(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.timeUntilDispatchable.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`timeUntilDispatchableQueryOptions: batchId`),e.timeUntilDispatchable(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function se(e){return{mutationKey:[`zama.vault.deposit`,e.depositBatcher.address],mutationFn:async({amount:t,...n})=>e.deposit(t,n)}}function ce(e){return{mutationKey:[`zama.vault.redeem`,e.redeemBatcher.address],mutationFn:async({amount:t,...n})=>e.redeem(t,n)}}function le(e){return{mutationKey:[`zama.vault.join`,e.address],mutationFn:async({amount:t,beneficiary:n,...r})=>e.join(t,n,r)}}function ue(e){return{mutationKey:[`zama.vault.claim`,e.address],mutationFn:async({batchId:t,account:n})=>e.claim(t,n)}}function de(e){return{mutationKey:[`zama.vault.quit`,e.address],mutationFn:async({batchId:t})=>e.quit(t)}}function fe(e){return{mutationKey:[`zama.vault.recover`,e.address],mutationFn:async({batchId:t,account:n})=>e.recover(t,n)}}function pe(e){return{mutationKey:[`zama.vault.dispatchBatch`,e.address],mutationFn:async()=>e.dispatchBatch()}}export{K as BatchState,X as Vault,J as VaultBatcher,U as VaultTopics,L as batchCallbackDeadlineContract,R as batchCreatedAtContract,z as batchDispatchedAtContract,F as batchMinBatchAgeContract,O as batchStateContract,ae as batchStateQueryOptions,I as callbackDeadlineContract,C as claimContract,ue as claimMutationOptions,Z as createVault,Y as createVaultBatcher,D as currentBatchIdContract,ie as currentBatchIdQueryOptions,W as decodeJoined,se as depositMutationOptions,A as depositsContract,E as dispatchBatchContract,pe as dispatchBatchMutationOptions,B as exchangeRateContract,V as exchangeRateDecimalsContract,G as findJoined,M as fromTokenContract,ne as invalidateAfterClaim,re as invalidateAfterDispatchBatch,ee as invalidateAfterJoin,te as invalidateAfterQuit,$ as invalidateBatchQueries,S as joinContract,le as joinMutationOptions,P as minBatchAgeContract,H as pausedContract,w as quitContract,de as quitMutationOptions,T as recoverContract,fe as recoverMutationOptions,ce as redeemMutationOptions,oe as timeUntilDispatchableQueryOptions,N as toTokenContract,k as totalDepositsContract,j as vaultContract,Q as vaultQueryKeys};
|
|
1
|
+
import{t as e}from"../relayer-C3jVhqSK.js";import{H as t,L as n,M as r,P as i}from"../erc165-BAd2z3ay.js";import{r as a,t as o}from"../encryption-6AVd-82z.js";import{a as s,i as c,l,n as u,o as d,t as f}from"../token-CTvEGQmH.js";import{S as p,b as m,t as h,x as g}from"../wrapped-token-IDUEFpZx.js";import{r as _}from"../telemetry-CBSzrmab.js";import{l as v,p as y}from"../invalidation-BgFjmXeQ.js";import{getAddress as b}from"viem";const x=[{type:`function`,name:`batchCallbackDeadline`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchCreatedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchDispatchedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchMaxSlippageBps`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`batchMinBatchAge`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`}],stateMutability:`view`},{type:`function`,name:`callbackDeadline`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`claim`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`currentBatchId`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`deposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`dispatchBatch`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`exchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`exchangeRateDecimals`,inputs:[],outputs:[{name:``,type:`uint8`,internalType:`uint8`}],stateMutability:`pure`},{type:`function`,name:`fromToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`join`,inputs:[{name:`beneficiary`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`joined`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`maxSlippageBps`,inputs:[],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`minBatchAge`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`paused`,inputs:[],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`quit`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`recover`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`refunded`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`toToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`totalDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`unwrapRequestId`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`vault`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC4626`}],stateMutability:`view`},{type:`event`,name:`BatchCanceled`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchDispatched`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchFinalized`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`Claimed`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Joined`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Quit`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`error`,name:`BatchNonexistent`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchTooYoung`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`elapsed`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchUnexpectedState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`current`,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`},{name:`expectedStates`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`DuplicateUnderlyingTokens`,inputs:[]},{type:`error`,name:`EnforcedPause`,inputs:[]},{type:`error`,name:`ExpectedPause`,inputs:[]},{type:`error`,name:`IntermediateStepToTokenBalanceChanged`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`InvalidBeneficiary`,inputs:[]},{type:`error`,name:`InvalidCallbackDeadline`,inputs:[]},{type:`error`,name:`InvalidExchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`totalDeposits`,type:`uint256`,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,internalType:`uint64`}]},{type:`error`,name:`InvalidKMSSignatures`,inputs:[]},{type:`error`,name:`InvalidMaxSlippageBps`,inputs:[]},{type:`error`,name:`InvalidMinBatchAge`,inputs:[]},{type:`error`,name:`InvalidTokenRate`,inputs:[]},{type:`error`,name:`InvalidWrapperToken`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableInvalidOwner`,inputs:[{name:`owner`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`RouteAssetMismatch`,inputs:[{name:`actualAsset`,type:`address`,internalType:`address`},{name:`expectedAsset`,type:`address`,internalType:`address`}]},{type:`error`,name:`RouteShareMismatch`,inputs:[{name:`actualShare`,type:`address`,internalType:`address`},{name:`expectedShare`,type:`address`,internalType:`address`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`SenderNotAllowedToUseHandle`,inputs:[{name:`handle`,type:`bytes32`,internalType:`bytes32`},{name:`sender`,type:`address`,internalType:`address`}]},{type:`error`,name:`SlippageExceeded`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`actual`,type:`uint256`,internalType:`uint256`},{name:`minimum`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`Unauthorized`,inputs:[]},{type:`error`,name:`ZamaProtocolUnsupported`,inputs:[]},{type:`error`,name:`ZeroDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}]}];function S(e,t,n,r){return{address:e,abi:x,functionName:`join`,args:[t,n,r]}}function C(e,t,n){return{address:e,abi:x,functionName:`claim`,args:[t,n]}}function w(e,t){return{address:e,abi:x,functionName:`quit`,args:[t]}}function T(e,t,n){return{address:e,abi:x,functionName:`recover`,args:[t,n]}}function E(e){return{address:e,abi:x,functionName:`dispatchBatch`,args:[]}}function D(e){return{address:e,abi:x,functionName:`currentBatchId`,args:[]}}function O(e,t){return{address:e,abi:x,functionName:`batchState`,args:[t]}}function k(e,t){return{address:e,abi:x,functionName:`totalDeposits`,args:[t]}}function A(e,t,n){return{address:e,abi:x,functionName:`deposits`,args:[t,n]}}function j(e){return{address:e,abi:x,functionName:`vault`,args:[]}}function M(e){return{address:e,abi:x,functionName:`fromToken`,args:[]}}function N(e){return{address:e,abi:x,functionName:`toToken`,args:[]}}function P(e){return{address:e,abi:x,functionName:`minBatchAge`,args:[]}}function F(e,t){return{address:e,abi:x,functionName:`batchMinBatchAge`,args:[t]}}function I(e){return{address:e,abi:x,functionName:`callbackDeadline`,args:[]}}function L(e,t){return{address:e,abi:x,functionName:`batchCallbackDeadline`,args:[t]}}function R(e,t){return{address:e,abi:x,functionName:`batchCreatedAt`,args:[t]}}function z(e,t){return{address:e,abi:x,functionName:`batchDispatchedAt`,args:[t]}}function B(e,t){return{address:e,abi:x,functionName:`exchangeRate`,args:[t]}}function V(e){return{address:e,abi:x,functionName:`exchangeRateDecimals`,args:[]}}function H(e){return{address:e,abi:x,functionName:`paused`,args:[]}}const U={Joined:m(`Joined(uint256,address,bytes32)`)};function W(e){let[t,n,r]=e.topics;return t!==U.Joined||n===void 0||r===void 0?null:{batchId:BigInt(n),account:g(r),confidentialAmount:p(e.data,0)}}function G(e,t,n){let r=n?b(n):void 0;for(let n of e){if(n.address!==void 0&&b(n.address)!==t)continue;let e=W(n);if(e&&(r===void 0||e.account===r))return e}return null}const K={Pending:0,Dispatched:1,Finalized:2,Canceled:3};function q(e){let t,n=null;return()=>t===void 0?(n||=e().then(e=>(t=e,n=null,e)).catch(e=>{throw n=null,e}),n):Promise.resolve(t)}var J=class{sdk;address;#e;#t;#n;#r=null;constructor(e,t){this.sdk=e,this.address=b(t),this.#e=q(()=>e.provider.readContract(j(this.address))),this.#t=q(()=>e.provider.readContract(M(this.address))),this.#n=q(()=>e.provider.readContract(N(this.address)))}async vault(){return this.#e()}async fromToken(){return this.#t()}async toToken(){return this.#n()}async currentBatchId(){return this.sdk.provider.readContract(D(this.address))}async batchState(e){return await this.sdk.provider.readContract(O(this.address,e))}async paused(){return this.sdk.provider.readContract(H(this.address))}async minBatchAge(){return this.sdk.provider.readContract(P(this.address))}async batchMinBatchAge(e){return this.sdk.provider.readContract(F(this.address,e))}async callbackDeadline(){return this.sdk.provider.readContract(I(this.address))}async batchCallbackDeadline(e){return this.sdk.provider.readContract(L(this.address,e))}async batchCreatedAt(e){return this.sdk.provider.readContract(R(this.address,e))}async batchDispatchedAt(e){return this.sdk.provider.readContract(z(this.address,e))}async exchangeRate(e){return this.sdk.provider.readContract(B(this.address,e))}async exchangeRateDecimals(){return this.sdk.provider.readContract(V(this.address))}async timeUntilDispatchable(e){let[t,n,r,i]=await Promise.all([this.batchState(e),this.batchCreatedAt(e),this.batchMinBatchAge(e),this.sdk.provider.getBlockTimestamp()]);if(t!==K.Pending)return null;let a=n+r;return a>i?a-i:0n}async confidentialTotalDeposits(e){return this.sdk.provider.readContract(k(this.address,e))}async confidentialDepositOf(e,t){return this.sdk.provider.readContract(A(this.address,e,b(t)))}async depositOf(e,t){let n=b(t),i=await this.confidentialDepositOf(e,n);if(l(i))return 0n;let a=(await this.sdk.decryption.decryptValues([{encryptedValue:i,contractAddress:this.address}],{operation:`vault-deposit-of`}))[i];if(a===void 0)throw new o(`Decryption returned no value for ${i}`);return r(a,`depositOf: result[encryptedValue]`),a}async join(e,n,r){let{operation:i}=_(r,`vault-join`);this.#i(`join`);let o=b((await s(`join`,this.sdk.signer,this.sdk.provider)).address),c=n?b(n):o;r?.skipBalanceCheck||await this.#o(e,i);let{encryptedValues:l,inputProof:u}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:o},{operation:i}),d=l[0];if(!d)throw new a(`Encryption returned no encrypted values`);let f=await this.#c(`vault:join`,S(this.address,c,d,u)),p=G(f.receipt.logs,this.address,c);if(!p)throw new t(`No Joined event for ${c} from batcher ${this.address} found in the join receipt`);return{...f,batchId:p.batchId,beneficiary:p.account,confidentialJoinedAmount:p.confidentialAmount}}async quit(e){return this.#i(`quit`),await d(`quit`,this.sdk.signer,this.sdk.provider),this.#c(`vault:quit`,w(this.address,e))}async recover(e,t){let n=await this.#s(`recover`,t);return this.#c(`vault:recover`,T(this.address,e,n))}async claim(e,t){let n=await this.#s(`claim`,t);return this.#c(`vault:claim`,C(this.address,e,n))}async dispatchBatch(){return this.#i(`dispatchBatch`),await d(`dispatchBatch`,this.sdk.signer,this.sdk.provider),this.#c(`vault:dispatchBatch`,E(this.address))}#i(e){if(!this.sdk.signer)throw new n(e);return this.sdk.signer}async#a(){return this.#r??=this.fromToken().then(e=>new f(this.sdk,e)).catch(e=>{throw this.#r=null,e}),this.#r}async#o(e,t){let n=await this.#a();return c({operation:`join`,tokenAddress:n.address,amount:e,signer:this.sdk.signer,provider:this.sdk.provider,readBalance:e=>n.decryptBalance(e,t)})}async#s(e,t){return this.#i(e),t?(await d(e,this.sdk.signer,this.sdk.provider),b(t)):b((await s(e,this.sdk.signer,this.sdk.provider)).address)}async#c(e,t){return u({operation:e,signer:this.#i(e),provider:this.sdk.provider,config:t,emit:e=>this.sdk.emitEvent(e,this.address),logger:this.sdk.logger})}};function Y(e,t){return new J(e,t)}var X=class{sdk;depositBatcher;redeemBatcher;#e=null;#t=null;#n=null;#r;constructor(e,t){this.sdk=e,this.#r=t.vault?b(t.vault):void 0,this.depositBatcher=new J(e,t.depositBatcher),this.redeemBatcher=new J(e,t.redeemBatcher)}async vaultAddress(){return this.#e??=this.#i().catch(e=>{throw this.#e=null,e}),this.#e}async cAsset(){return this.#t??=this.depositBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#t=null,e}),this.#t}async cShare(){return this.#n??=this.redeemBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#n=null,e}),this.#n}async deposit(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cAsset()]);return await this.#a(`deposit`,n,this.depositBatcher.address,t?.operatorUntil),this.depositBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-deposit`})}async redeem(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cShare()]);return await this.#a(`redeem`,n,this.redeemBatcher.address,t?.operatorUntil),this.redeemBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-redeem`})}async#i(){let[t,n]=await Promise.all([this.depositBatcher.vault(),this.redeemBatcher.vault()]);if(b(t)!==b(n))throw new e(`Vault batchers point at different ERC-4626 vaults: deposit batcher ${this.depositBatcher.address} reports ${t}, redeem batcher ${this.redeemBatcher.address} reports ${n}`);let r=b(t);if(this.#r!==void 0&&this.#r!==r)throw new e(`Configured vault address ${this.#r} does not match the ${r} both batchers report`);return r}async#a(e,t,r,i){if(!this.sdk.signer)throw new n(e);let a=this.sdk.signer.requireWalletAccount(e);await t.isOperator(a.address,r)||await t.setOperator(r,i)}};function Z(e,t){return new X(e,t)}const Q={currentBatchId:{batcher:e=>[`zama.vault.currentBatchId`,{batcherAddress:b(e)}]},batchState:{batcher:e=>[`zama.vault.batchState`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.batchState`,{batcherAddress:b(e),batchId:t}]},timeUntilDispatchable:{batcher:e=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e),batchId:t}]}};function $(e,t){e.invalidateQueries({queryKey:Q.currentBatchId.batcher(t)}),e.invalidateQueries({queryKey:Q.batchState.batcher(t)}),e.invalidateQueries({queryKey:Q.timeUntilDispatchable.batcher(t)})}function ee(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function te(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function ne(e,t){v(e,t.toToken)}function re(e,t){$(e,t)}function ie(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.currentBatchId.batcher(e.address),queryFn:async()=>e.currentBatchId(),enabled:n.enabled!==!1}}function ae(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.batchState.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`batchStateQueryOptions: batchId`),e.batchState(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function oe(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.timeUntilDispatchable.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`timeUntilDispatchableQueryOptions: batchId`),e.timeUntilDispatchable(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function se(e){return{mutationKey:[`zama.vault.deposit`,e.depositBatcher.address],mutationFn:async({amount:t,...n})=>e.deposit(t,n)}}function ce(e){return{mutationKey:[`zama.vault.redeem`,e.redeemBatcher.address],mutationFn:async({amount:t,...n})=>e.redeem(t,n)}}function le(e){return{mutationKey:[`zama.vault.join`,e.address],mutationFn:async({amount:t,beneficiary:n,...r})=>e.join(t,n,r)}}function ue(e){return{mutationKey:[`zama.vault.claim`,e.address],mutationFn:async({batchId:t,account:n})=>e.claim(t,n)}}function de(e){return{mutationKey:[`zama.vault.quit`,e.address],mutationFn:async({batchId:t})=>e.quit(t)}}function fe(e){return{mutationKey:[`zama.vault.recover`,e.address],mutationFn:async({batchId:t,account:n})=>e.recover(t,n)}}function pe(e){return{mutationKey:[`zama.vault.dispatchBatch`,e.address],mutationFn:async()=>e.dispatchBatch()}}export{K as BatchState,X as Vault,J as VaultBatcher,U as VaultTopics,L as batchCallbackDeadlineContract,R as batchCreatedAtContract,z as batchDispatchedAtContract,F as batchMinBatchAgeContract,O as batchStateContract,ae as batchStateQueryOptions,I as callbackDeadlineContract,C as claimContract,ue as claimMutationOptions,Z as createVault,Y as createVaultBatcher,D as currentBatchIdContract,ie as currentBatchIdQueryOptions,W as decodeJoined,se as depositMutationOptions,A as depositsContract,E as dispatchBatchContract,pe as dispatchBatchMutationOptions,B as exchangeRateContract,V as exchangeRateDecimalsContract,G as findJoined,M as fromTokenContract,ne as invalidateAfterClaim,re as invalidateAfterDispatchBatch,ee as invalidateAfterJoin,te as invalidateAfterQuit,$ as invalidateBatchQueries,S as joinContract,le as joinMutationOptions,P as minBatchAgeContract,H as pausedContract,w as quitContract,de as quitMutationOptions,T as recoverContract,fe as recoverMutationOptions,ce as redeemMutationOptions,oe as timeUntilDispatchableQueryOptions,N as toTokenContract,k as totalDepositsContract,j as vaultContract,Q as vaultQueryKeys};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/viem/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, D as GenericSigner, F as ReadContractReturnType, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, a as ZamaConfigBase, at as UnshieldPhase1SubmittedEvent, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, dt as WrapSubmittedEvent, et as ShieldSubmittedEvent, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, k as WalletAccountChange, l as GenericProvider, mt as ZamaSDKEventType, n as RelayerConfig, nt as TransactionOperation, ot as UnshieldPhase2StartedEvent, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, vt as ShieldPath, z as WriteFunctionName } from "../types-
|
|
3
|
-
import { n as MutableWalletAccountStore, t as BaseSigner } from "../base-signer-
|
|
4
|
-
import { t as ZamaConfigViem } from "../types-
|
|
1
|
+
import { d as AtLeastOneChain, f as FheChain, p as FheChainAuth } from "../index-D1Wtji3m.js";
|
|
2
|
+
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, D as GenericSigner, F as ReadContractReturnType, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, a as ZamaConfigBase, at as UnshieldPhase1SubmittedEvent, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, dt as WrapSubmittedEvent, et as ShieldSubmittedEvent, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, k as WalletAccountChange, l as GenericProvider, mt as ZamaSDKEventType, n as RelayerConfig, nt as TransactionOperation, ot as UnshieldPhase2StartedEvent, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, vt as ShieldPath, z as WriteFunctionName } from "../types-CHepK8MK.js";
|
|
3
|
+
import { n as MutableWalletAccountStore, t as BaseSigner } from "../base-signer-BxIDBDTF.js";
|
|
4
|
+
import { t as ZamaConfigViem } from "../types-Dc1fpXWt.js";
|
|
5
5
|
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ContractFunctionReturnType, EIP1193Provider, Hex, Hex as Hex$1, PublicClient, WalletClient } from "viem";
|
|
6
6
|
//#region src/viem/config.d.ts
|
|
7
7
|
/** Create a {@link ZamaConfig} from viem clients. */
|
package/dist/esm/viem/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as e,B as t,D as n,E as r,F as i,H as a,O as o,T as s,h as c,s as l,v as u,x as d}from"../erc165-BAd2z3ay.js";import{i as f,t as p}from"../base-signer-
|
|
1
|
+
import{A as e,B as t,D as n,E as r,F as i,H as a,O as o,T as s,h as c,s as l,v as u,x as d}from"../erc165-BAd2z3ay.js";import{i as f,t as p}from"../base-signer-ClrhHzbm.js";import{a as m,i as h,n as g,o as _,r as v,s as y,t as b}from"../wrappers-registry-Cm3JJeqx.js";import{t as x}from"../eip1193-subscribe-CNxVHW6y.js";import{encodeFunctionData as S,getAddress as C,serializeTransaction as w}from"viem";var T=class{#e;constructor(e){this.#e=e.publicClient}async getChainId(){return this.#e.getChainId()}async readContract(e){return this.#e.readContract(e)}async waitForTransactionReceipt(e){return this.#e.waitForTransactionReceipt({hash:e})}async getBlockTimestamp(){return(await this.#e.getBlock()).timestamp}async prepareTransaction(e){let{from:t,calldata:n}=e,r=S({abi:n.abi,functionName:n.functionName,args:n.args}),i=this.#e.getChainId(),o=e.nonce===void 0?this.#e.getTransactionCount({address:t,blockTag:`pending`}):Promise.resolve(e.nonce),s=e.gasLimit===void 0?n.gas??this.#e.estimateGas({account:t,to:n.address,data:r,value:n.value??0n}).catch(e=>{throw new a(`ViemProvider.prepareTransaction: gas estimation reverted for ${n.functionName} on ${n.address}`,{cause:e})}):Promise.resolve(e.gasLimit),c=e.fees??this.#e.estimateFeesPerGas(),[l,u,d,f]=await Promise.all([i,o,s,c]);return w({type:`eip1559`,chainId:l,nonce:u,to:n.address,data:r,value:n.value??0n,gas:d,maxFeePerGas:f.maxFeePerGas,maxPriorityFeePerGas:f.maxPriorityFeePerGas})}};function E(e){let t=(e.primaryType?e.types[e.primaryType]:void 0)??[],n={...e.message};for(let{name:e,type:r}of t)/^uint\d*$/.test(r)&&(n[e]=BigInt(n[e]));return n}function D(e){if(!(!e.account||!e.chain))return{address:C(e.account.address),chainId:e.chain.id}}var O=class extends p{#e;#t;#n;constructor(e){super(D(e.walletClient)),this.#e=e.walletClient,this.#t=e.ethereum,this.#n=this.#i()}#r(e){if(!this.#e.account)throw new t(e);return{walletClient:this.#e,account:this.#e.account}}async signTypedData(e){let{walletClient:t,account:n}=this.#r(`signTypedData`),{EIP712Domain:r,...i}=e.types;return t.signTypedData({account:n,primaryType:e.primaryType,types:i,domain:e.domain,message:E(e)})}async writeContract(e){let{walletClient:t,account:n}=this.#r(`writeContract`);return t.writeContract({chain:t.chain,account:n,...e})}#i(){return this.#t?x({provider:this.#t,getInitialWalletAccount:()=>D(this.#e),onWalletAccountChange:({next:e})=>{this.walletAccount.setSnapshot(e)}}):()=>{}}onDispose(){this.#n()}};function k(e){return f(new O({walletClient:e.walletClient,ethereum:e.ethereum}),new T({publicClient:e.publicClient}),e)}function A(e){if(!e.account)throw TypeError(`WalletClient has no account`);return e.account}function j(e,t,n){return e.readContract(c(t,n))}function M(e,t){return e.readContract(r(t))}function N(e,t,n){return e.readContract(l(t,n))}function P(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...u(t,n,r,i)})}function F(e,t,r,i,a,o){return e.writeContract({chain:e.chain,account:A(e),...n(t,r,i,a,o)})}function I(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...o(t,n,r,i)})}function L(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...d(t,n,r,i)})}function R(e,t,n,r){return e.writeContract({chain:e.chain,account:A(e),...s(t,n,r)})}function z(t,n,r,i){return t.writeContract({chain:t.chain,account:A(t),...e(n,r,i)})}function B(e,t){return e.readContract(h(t))}function V(e,t){return e.readContract(m(t))}function H(e,t,n,r){return e.readContract(_(t,n,r))}function U(e,t,n){return e.readContract(v(t,n))}function W(e,t,n){return e.readContract(b(t,n))}function G(e,t,n){return e.readContract(g(t,n))}function K(e,t,n){return e.readContract(y(t,n))}export{p as BaseSigner,T as ViemProvider,O as ViemSigner,i as ZamaSDKEvents,k as createConfig,j as readConfidentialBalanceOfContract,W as readConfidentialTokenAddressContract,K as readIsConfidentialTokenValidContract,N as readSupportsInterfaceContract,G as readTokenAddressContract,U as readTokenPairContract,B as readTokenPairsContract,V as readTokenPairsLengthContract,H as readTokenPairsSliceContract,M as readUnderlyingTokenContract,P as writeConfidentialTransferContract,L as writeFinalizeUnwrapContract,R as writeSetOperatorContract,F as writeUnwrapContract,I as writeUnwrapFromBalanceContract,z as writeWrapContract};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/web/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, n as RelayerConfig, pn as RelayerOptions, r as WebRelayerConfig, un as FhevmClientOptions } from "../types-
|
|
1
|
+
import { dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, n as RelayerConfig, pn as RelayerOptions, r as WebRelayerConfig, un as FhevmClientOptions } from "../types-CHepK8MK.js";
|
|
2
2
|
import { EIP1193Provider } from "viem";
|
|
3
3
|
import "@fhevm/sdk/chains";
|
|
4
4
|
//#region src/worker/encrypt-worker-client.d.ts
|
package/dist/esm/web/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,t}from"../fhevm-relayer-
|
|
1
|
+
import{n as e,t}from"../fhevm-relayer-BEQ31nmT.js";import{t as n}from"../validation-ClSvPh6P.js";import{z as r}from"zod/mini";const i=e=>r._default(r.number().check(r.positive()),e),a=r.custom(e=>typeof e==`function`),o=r.object({offloadEncrypt:r._default(r.union([r.literal(`auto`),r.boolean()]),`auto`),offloadTimeouts:r.optional(r.object({spawn:i(e.spawn),init:i(e.init)})),offloadWorker:r.optional(r.union([r.string().check(r.minLength(1)),r.instanceof(URL),a]))});function s(e){let{offloadEncrypt:r,offloadTimeouts:i,offloadWorker:a,...s}=e??{},c=n(o,{offloadEncrypt:r,offloadTimeouts:i,offloadWorker:a});return{type:`web`,createRelayer:(e,n,r)=>new t({chain:e,options:s,telemetry:r&&{state:r,runtime:`web`},offloadEncrypt:c.offloadEncrypt,offloadTimeouts:c.offloadTimeouts,offloadWorker:c.offloadWorker,logger:n})}}export{s as web};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as e,r as t,t as n}from"./relayer-C3jVhqSK.js";import{B as r,F as i,G as a,L as o,P as s,Q as c,X as l,Y as u,d,f,j as p,m,p as h,q as g}from"./erc165-BAd2z3ay.js";import{r as _}from"./applied-runtime-3fzqBC2V.js";import{a as v,i as ee,n as y,o as te,r as b,s as x,t as S}from"./primitives-Cym-3HKa.js";import{t as C}from"./validation-ClSvPh6P.js";import{a as ne,i as re,n as w,o as T,r as ie,s as ae,t as E}from"./wrappers-registry-Cm3JJeqx.js";import{a as D,c as O,d as oe,l as se,n as ce,o as le,s as ue,u as de}from"./chains-iPpnjXql.js";import{getAddress as k,toBytes as A,toHex as j,zeroAddress as M}from"viem";import{hasFhevmRuntimeConfig as fe,setFhevmRuntimeConfig as pe}from"@fhevm/sdk/viem";import{z as N}from"zod/mini";var P=class{#e=null;#t=null;#n;#r;#i;constructor(e=`CredentialStore`,t=1,n=`credentials`){this.#n=e,this.#r=t,this.#i=n}#a(){return this.#e?Promise.resolve(this.#e):(this.#t||=new Promise((e,t)=>{let n=indexedDB.open(this.#n,this.#r);n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(this.#i)||e.createObjectStore(this.#i,{keyPath:`key`})},n.onsuccess=()=>{this.#e=n.result,this.#t=null,this.#e.onversionchange=()=>{this.#e?.close(),this.#e=null,this.#t=null},this.#e.onclose=()=>{this.#e=null,this.#t=null},e(this.#e)},n.onerror=()=>{this.#e=null,this.#t=null,t(n.error)}}),this.#t)}async#o(e,t){let n=await this.#a();return new Promise((r,i)=>{let a=n.transaction(this.#i,e);a.onabort=()=>i(a.error??Error(`Transaction aborted`));let o=t(a.objectStore(this.#i));e===`readonly`?o.onsuccess=()=>r(o.result):a.oncomplete=()=>r(o.result),o.onerror=()=>i(o.error)})}async get(e){return(await this.#o(`readonly`,t=>t.get(e)))?.value??null}async set(e,t){await this.#o(`readwrite`,n=>n.put({key:e,value:t}))}async delete(e){await this.#o(`readwrite`,t=>t.delete(e))}async clear(){await this.#o(`readwrite`,e=>e.clear())}};const me=new P;var F=class{#e=new Map;async get(e){return this.#e.get(e)??null}async set(e,t){this.#e.set(e,t)}async delete(e){this.#e.delete(e)}};const he=new F;function ge(){return typeof window<`u`?new P(`CredentialStore`):new F}function _e(e=ge(),t=e){return{storage:e,permitStorage:t}}function ve(e,t,r){let i=e.map(e=>e.id),a=[...new Set(i.filter((e,t)=>i.indexOf(e)!==t))];if(a.length>0)throw new n(`Duplicate chain id(s) [${a.join(`, `)}] in the chains array. Each chain id must appear only once. Note: hardhat and anvil are aliases (both use 31337).`);let o=Object.keys(t).map(Number).filter(e=>!i.includes(e));o.length>0&&r.warn(`Relayer entries for chain(s) [${o.join(`, `)}] are ignored: those chains are not in the chains array. Add the chain config to use them, or drop the relayer entries.`);let s=new Map;for(let r of e){let e=t[r.id];if(!e)throw new n(`Chain ${r.id} has no relayer configured. Add a relayer entry: relayers: { [${r.id}]: web() }`);s.set(r.id,{chain:r,relayerConfig:e})}return s}var ye=class{#e;#t;#n;constructor(e,t,r,i){if(e.length===0)throw new n(`At least one chain is required.`);this.#e=new Map(e.map(e=>[e.id,e])),this.#n=e[0].id;let a=new Map;for(let[n,{relayerConfig:o,chain:s}]of ve(e,t,r))a.set(n,o.createRelayer(s,r,i));this.#t=a}get chains(){return[...this.#e.values()]}get chain(){let e=this.#e.get(this.#n);if(e===void 0)throw new n(`Chain ${this.#n} is not configured. Add it to the chains array.`);return e}switchChain(e){this.#n=e}dispose(){for(let e of new Set(this.#t.values()))e.dispose?.()}get relayer(){let e=this.#t.get(this.chain.id);if(e===void 0)throw new n(`No relayer configured for chain ${this.#n}. Add it to the relayers object.`);return e}};const I={version:1,info:`zama-sdk-keypair-wrapping-v1`,ivLengthBytes:12,tagLengthBytes:16};function L(e){return new Uint8Array(e)}function R(e){return L(new TextEncoder().encode(JSON.stringify([e.publicKey,e.createdAt,e.expiresAt,e.tkmsVersion??null])))}function be(e){return typeof e==`string`?new TextEncoder().encode(e):L(e)}var xe=class{#e;#t;constructor(e){this.#e=e}async baseKey(){return this.#t??=this.#n(this.#e),this.#t}async#n(e){let t=be(e),n=await crypto.subtle.importKey(`raw`,t,`HKDF`,!1,[`deriveKey`]);return t.fill(0),e instanceof Uint8Array&&e.fill(0),this.#e=void 0,n}};async function z(e,t){let n=await e.baseKey();return crypto.subtle.deriveKey({name:`HKDF`,hash:`SHA-256`,salt:new TextEncoder().encode(t),info:new TextEncoder().encode(I.info)},n,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function Se(e,t,n,r){let i=await z(t,n),a=crypto.getRandomValues(new Uint8Array(I.ivLengthBytes)),o=await crypto.subtle.encrypt({name:`AES-GCM`,iv:a,additionalData:R(r)},i,L(A(e)));return{wrappedPrivateKey:j(new Uint8Array(o)),iv:j(a)}}async function Ce(e,t,n,r){let i=await z(t,n),a=await crypto.subtle.decrypt({name:`AES-GCM`,iv:L(A(e.iv)),additionalData:R(r)},i,L(A(e.wrappedPrivateKey)));return j(new Uint8Array(a))}function we(e){return typeof e==`object`&&!!e&&`name`in e&&e.name===`OperationError`}const B=86400;function V(){return Math.floor(Date.now()/1e3)}function H(e){return[...new Set(e.map(S))].sort()}function Te(e){let{chainId:t}=e.domain;return typeof t==`bigint`?{...e,domain:{...e.domain,chainId:t.toString()}}:e}const Ee=`transportKeyPairTTL must be a positive integer number of seconds`,De=`permitTTL must be a positive integer number of days`,Oe=`transportKeyPairScope must be a non-empty string`,U=`transportKeyPairDerivationSecret must be a Uint8Array of at least 32 bytes or a string of at least 64 characters (256 bits of entropy): source it from a CSPRNG or secrets manager, not a human-memorable passphrase`,ke=365*B,Ae=N.int({error:Ee}).check(N.positive({error:Ee}),N.maximum(ke,`transportKeyPairTTL must not exceed the fhevm ACL maximum of ${ke}s (365 days)`)),je=N.int({error:De}).check(N.positive({error:De}),N.maximum(365,`permitTTL must not exceed the V1 permit maximum of 365 days`)),Me=N.string({error:Oe}).check(N.minLength(1,Oe)),Ne=N.union([N.string({error:U}).check(N.minLength(64,U)),N.instanceof(Uint8Array,{error:U}).check(N.refine(e=>e.byteLength>=32,{error:U}))],{error:U}),Pe=N.object({publicKey:b,privateKey:b,createdAt:x,expiresAt:te,tkmsVersion:N.optional(N.string())}),W=N.object({domain:N.record(N.string(),N.unknown()),primaryType:N.optional(N.string()),types:N.record(N.string(),N.array(N.object({name:N.string(),type:N.string()}))),message:N.record(N.string(),N.unknown())}),G=N.object({version:N.int().check(N.positive()),eip712:W,signature:b,signerAddress:y}),K=N.object({keypairPublicKey:b,contractAddresses:N.array(y).check(N.maxLength(10)),serializedPermit:G,startTimestamp:x,durationDays:v}),Fe=N.array(K),Ie=N.array(N.string()),Le=N.object({version:N.literal(1),eip712:W,signerAddress:y}),Re=`iv must be a ${I.ivLengthBytes}-byte hex string`,ze=`wrappedPrivateKey must be a whole number of bytes and at least ${I.tagLengthBytes} bytes (the AES-GCM authentication tag)`;function Be(e){return(e.length-2)/2}const Ve=N.object({wrappingVersion:N.literal(I.version,{error:`wrappingVersion must be a wrapping scheme this SDK can read`}),publicKey:b,wrappedPrivateKey:b.check(N.refine(e=>e.length%2==0&&Be(e)>=I.tagLengthBytes,{error:ze})),iv:b.check(N.refine(e=>Be(e)===I.ivLengthBytes,{error:Re})),createdAt:x,expiresAt:te,tkmsVersion:N.optional(N.string())});function He(e){let t={publicKey:e.publicKey,createdAt:e.createdAt,expiresAt:e.expiresAt};return e.tkmsVersion&&(t.tkmsVersion=e.tkmsVersion),t}const q={version:I.version,schema:Ve,async encode(e,t,n){let{wrappedPrivateKey:r,iv:i}=await Se(e.privateKey,t,n,He(e)),a={wrappingVersion:I.version,publicKey:e.publicKey,wrappedPrivateKey:r,iv:i,createdAt:e.createdAt,expiresAt:e.expiresAt};return e.tkmsVersion&&(a.tkmsVersion=e.tkmsVersion),a},async decode(e,t,n){let r=await Ce({wrappedPrivateKey:e.wrappedPrivateKey,iv:e.iv},t,n,He(e)),i={publicKey:e.publicKey,privateKey:r,createdAt:e.createdAt,expiresAt:e.expiresAt};return e.tkmsVersion&&(i.tkmsVersion=e.tkmsVersion),i}},Ue=new Map([[q.version,q]]),We=q;function Ge(e){let t=e;return t.wrappingVersion!==void 0||t.wrappedPrivateKey!==void 0&&t.iv!==void 0}function Ke(e){if(typeof e!=`object`||!e||!Ge(e)){let t=Pe.safeParse(e);return t.success?{kind:`plaintext`,keyPair:t.data}:{kind:`unrecognized`}}let t=e.wrappingVersion,n=typeof t==`number`?Ue.get(t):void 0;if(n===void 0)return{kind:`unsupported-version`,version:t};let r=n.schema.safeParse(e);if(!r.success)return{kind:`corrupt-wrapped`};let i=r.data;return{kind:`wrapped`,expiresAt:i.expiresAt,decode:(e,t)=>n.decode(i,e,t)}}function qe(e,t,n){return We.encode(e,t,n)}function Je(e){return`keypair:${e}`}function J(e){return`keypair:scope:${e}`}function Y(e){return`permits:${e.signerAddress}:${e.chainId}:${e.delegatorAddress}`}function X(e){return`permits-index:${e}`}function Ye(e){return`scope:${e}`}function Xe(e,t){return{"wrapped-without-secret":`Transport key pair for scope "${t}" is wrapped, but this instance has no transportKeyPairDerivationSecret configured. Every instance sharing this scope must use the same transportKeyPairDerivationSecret; once they do, call permits.revokeTransportKeyPair() to rotate the entry.`,"unwrapped-under-secret":`Transport key pair for scope "${t}" is stored unwrapped, but this instance is configured with a transportKeyPairDerivationSecret. A peer instance sharing this scope is running without the secret: configure the same transportKeyPairDerivationSecret everywhere, then call permits.revokeTransportKeyPair() to migrate the scope to a wrapped entry.`,"unwrap-failed":`Transport key pair for scope "${t}" failed to unwrap. This usually means another instance created it with a different transportKeyPairDerivationSecret: every instance sharing this scope must use the same secret. It can also mean the stored entry is corrupted.`,"corrupt-wrapped":`Transport key pair for scope "${t}" is wrapped but structurally invalid: the stored iv or ciphertext is not a shape this wrapping scheme can produce. This usually means the stored entry is corrupted, or instances sharing this scope are running mismatched wrapping-scheme versions.`}[e]}const Ze={"unwrapped-under-secret":`unwrapped transport key pair entry found while a transportKeyPairDerivationSecret is configured`,"unwrap-failed":`transport key pair entry failed to unwrap (wrong transportKeyPairDerivationSecret?)`,"corrupt-wrapped":`structurally invalid wrapped transport key pair entry`};function Qe(e,t){let n=typeof e==`number`?`wrappingVersion ${e}`:`no wrappingVersion this build recognizes`;return`Transport key pair ${t===void 0?`for this signer`:`for scope "${t}"`} was written under a wrapping scheme this SDK build cannot read (${n}). The entry is preserved instead of regenerated, since an instance that understands the scheme may still be using it: ${t===void 0?`run a build that supports it, or call permits.clear() to discard the entry deliberately`:`run a build that supports it everywhere, or call permits.revokeTransportKeyPair() to rotate the scope`}.`}var $e=class{#e;#t;#n;#r;#i;#a;#o=new Map;#s=new Map;constructor(e){this.#e=e.generator,this.#t=e.storage,this.#n=e.ttl,this.#r=e.logger,this.#i=e.scope,this.#a=e.derivationSecret}#c(e){return this.#i===void 0?`signer:${e}`:Ye(this.#i)}#l(e){return this.#i===void 0?Je(e):J(this.#i)}async readStored(e){return this.#u(this.#l(e),this.#c(e))}async#u(e,t){let n=await this.#t.get(e);if(n==null)return null;let r=Ke(n);if(r.kind===`unsupported-version`)throw this.#f(e,Qe(r.version,this.#i));if(r.kind===`unrecognized`)return await this.#m(e,`malformed transport key pair entry`),null;let i=this.#a;if(i===void 0)return r.kind===`plaintext`?await this.#p(e,r.keyPair.expiresAt)?null:r.keyPair:this.#d(e,`wrapped-without-secret`);if(r.kind===`plaintext`)return this.#d(e,`unwrapped-under-secret`);if(r.kind===`corrupt-wrapped`)return this.#d(e,`corrupt-wrapped`);if(await this.#p(e,r.expiresAt))return null;try{return await r.decode(i,t)}catch(t){if(!we(t))throw this.#r.error(`transport key pair unwrap failed unexpectedly`,{key:e,error:t}),new g(`Transport key pair unwrap failed unexpectedly.`,{cause:t});return this.#d(e,`unwrap-failed`,t)}}async#d(e,t,n){if(this.#i!==void 0)throw this.#f(e,Xe(t,this.#i),n);if(t===`wrapped-without-secret`)throw this.#f(e,`Transport key pair for this signer is wrapped, but this instance has no transportKeyPairDerivationSecret configured. Configure the same transportKeyPairDerivationSecret the entry was written with. To downgrade to plaintext at rest on purpose, discard the stored entry first by calling permits.clear(), then run without the secret.`,n);let r=Ze[t];return this.#r.warn(r,{key:e}),await this.#m(e,r),null}#f(e,t,n){return this.#r.error(t,{key:e}),new g(t,{cause:n})}async#p(e,t){return V()<t?!1:(await this.#m(e,`expired transport key pair entry`),!0)}async#m(e,t){this.#r.debug(`discarding transport key pair entry`,{key:e,reason:t}),await p(`delete transport key pair entry`,()=>this.#t.delete(e),this.#r)}async getOrCreate(e,t){return this.#h(this.#l(e),this.#c(e),{strict:t?.strict})}async#h(e,t,n){let r=n?.strict??!1,i=`${e}::${r}`,a=this.#o.get(i);if(a)return a;let o=this.#s.get(e)??0,s=(async()=>{let n=await this.#u(e,t);if(n!==null)return n;let i=await this.#e(),a=V(),s=a+this.#n,l={publicKey:i.publicKey,privateKey:i.privateKey,createdAt:a,expiresAt:s};i.tkmsVersion&&(l.tkmsVersion=i.tkmsVersion);let u=l;if(this.#a!==void 0)try{u=await qe(l,this.#a,t)}catch(t){let n=`Failed to wrap the transport private key for at-rest storage.`;throw this.#r.error(n,{key:e,error:t}),new g(n,{cause:t})}if((this.#s.get(e)??0)===o)r?await this.#t.set(e,u):await p(`persist transport key pair`,()=>this.#t.set(e,u),this.#r);else if(r)throw new c(`The transport key pair was rotated while it was being generated, so the freshly generated key pair could not be persisted. Retry.`);return l})().finally(()=>{this.#o.delete(i)});return this.#o.set(i,s),s}async clear(e){let t=Je(e);await p(`delete transport key pair entry`,()=>this.#t.delete(t),this.#r)}async evict(e){let t=this.#l(e);await p(`evict transport key pair entry`,()=>this.#t.delete(t),this.#r)}async clearScope(){if(this.#i===void 0)return;let e=J(this.#i);this.#s.set(e,(this.#s.get(e)??0)+1),await this.#t.delete(e)}async warmScope(){this.#i!==void 0&&await this.#h(J(this.#i),Ye(this.#i),{strict:!0})}};function et(e,t){let n=new Set(e.flatMap(e=>e.contractAddresses));return t.filter(e=>!n.has(e))}function tt(e){let t=[];for(let n=0;n<e.length;n+=10)t.push(e.slice(n,n+10));return t}function nt(e,t,n){return e.filter(e=>e.keypairPublicKey===t&&n<e.startTimestamp+e.durationDays*86400)}function rt(e,t){let n=new Set(t);return e.filter(e=>!e.contractAddresses.some(e=>n.has(e)))}function Z(e,t){return[...new Set([...e,...t])].sort()}function it(e,t,n){let r=new Set(n),i=e.filter(e=>new Set([...e.contractAddresses,...t]).size<=10);if(i.length===0)return null;function a(e){return e.contractAddresses.reduce((e,t)=>e+ +!!r.has(t),0)}let o=Math.max(...i.map(a));return i.filter(e=>a(e)===o).reduce((e,t)=>t.startTimestamp>e.startTimestamp?t:e)}var at=class{#e;#t;constructor(e){this.#e=e.storage,this.#t=e.logger}async list(e){let t=Y(e),n=await this.#e.get(t);if(n==null)return[];let r=Fe.safeParse(n);return r.success?r.data:(await this.clearScope(e),[])}async listUsableAndPrune(e,t){let n=await this.list(e),r=nt(n,t,Math.floor(Date.now()/1e3));return r.length!==n.length&&(r.length===0?await this.clearScope(e):await p(`update permit entry`,()=>this.#e.set(Y(e),r),this.#t)),r}async append(e,t){if(t.length===0)return;let n=t.map(e=>K.parse(e)),r=await this.list(e);await this.#e.set(Y(e),[...r,...n]),await this.#r(e)}async replace(e,t,n){let r=K.parse(n),i=(await this.list(e)).filter(e=>e.serializedPermit.signature!==t);await this.#e.set(Y(e),[...i,r]),await this.#r(e)}async deletePermitsTouching(e,t){let n=await this.list(e);if(n.length===0)return;let r=rt(n,t);r.length===0?await this.clearScope(e):await this.#e.set(Y(e),r)}async clearScope(e){await this.#a(Y(e)),await this.#i(e)}async clearAllForSigner(e){let t=X(e),n=await this.#n(t);await Promise.all(n.map(e=>this.#a(e))),await p(`delete permit index`,()=>this.#e.delete(t),this.#t)}async#n(e){let t=await this.#e.get(e);if(t==null)return[];let n=Ie.safeParse(t);return n.success?n.data:(await p(`delete permit index`,()=>this.#e.delete(e),this.#t),[])}async#r(e){let t=X(e.signerAddress),n=Y(e),r=await this.#n(t);r.includes(n)||await this.#e.set(t,[...r,n])}async#i(e){let t=X(e.signerAddress),n=Y(e),r=await this.#n(t),i=r.filter(e=>e!==n);i.length!==r.length&&(i.length===0?await p(`delete permit index`,()=>this.#e.delete(t),this.#t):await p(`update permit index`,()=>this.#e.set(t,i),this.#t))}async#a(e){await p(`delete permit entry`,()=>this.#e.delete(e),this.#t)}};async function ot(e,t,n){let r=e.get(t);if(r!==void 0)return r;let i=await n();return e.set(t,i),i}var st=class{#e;#t;#n;#r;#i;#a;#o;#s;#c=new Map;constructor(e){this.#e=new $e({generator:async()=>{let t=e.router.relayer,n=await t.generateTransportKeyPair();return t.serializeTransportKeyPair({transportKeyPair:n})},storage:e.storage,ttl:e.transportKeyPairTTL,logger:e.logger,scope:e.scope,derivationSecret:e.derivationSecret}),this.#t=new at({storage:e.permitStorage??e.storage,logger:e.logger}),this.#n=e.router,this.#r=e.signer,this.#i=e.permitTTL,this.#a=e.logger,this.#o=e.emitEvent,this.#s=e.scope}#l(e){if(!this.#r)throw new o(e);return this.#r}#u(e,t,n=``){let r=a(t,{operation:e});return n&&(r.message=n+r.message),this.#o({type:i.PermitError,operation:e,error:r}),r}async grantPermit(e,t){let n=t===void 0?`grantPermit`:`grantDelegationPermit`,r,i,a;try{r=S(this.#l(`grantPermit`).requireWalletAccount(`grantPermit`).address),i=H(e),a=this.#f(r,t)}catch(e){throw this.#u(n,e)}let o=await this.#e.getOrCreate(r);if(i.length===0)return{keypair:o,permissions:[]};let s;try{s=await this.#t.listUsableAndPrune(a,o.publicKey)}catch(e){throw this.#u(n,e)}let c=et(s,i);if(c.length>0){let e=it(s,c,i);if(e!==null){let t=Z(e.contractAddresses,c),n=await this.#p({chunk:t,keypair:o,scope:a});await p(`replace permit`,()=>this.#t.replace(a,e.serializedPermit.signature,n),this.#a),s[s.indexOf(e)]=n}else for(let e of tt(c)){let t=await this.#p({chunk:e,keypair:o,scope:a});s.push(t),await p(`persist permit`,()=>this.#t.append(a,[t]),this.#a)}}let l=new Set(i);return{keypair:o,permissions:s.filter(e=>e.contractAddresses.some(e=>l.has(e)))}}async preparePermit(e){let t=H(e.contracts).length;if(t>10)throw new n(`preparePermit: request.contracts must not exceed 10 addresses (got ${t}). Use batchPreparePermits to split them across permits.`);let[r]=await this.batchPreparePermits(e);return s(r,`batchPreparePermits result`),r}async batchPreparePermits(e){let t=S(e.signer),r=H(e.contracts);if(r.length===0)throw new n(`request.contracts must not be empty.`);let i=e.delegator?S(e.delegator):void 0;if(i!==void 0&&i===t)throw new n(`request.delegator must differ from request.signer: self-delegation is not allowed.`);let a=e.durationDays===void 0?this.#i:C(je,e.durationDays),o=this.#n.relayer,s=await this.#e.getOrCreate(t,{strict:!0}),c=await o.parseTransportKeyPair(s),l=V();return Promise.all(tt(r).map(async e=>({version:1,eip712:Te(W.parse(await o.createUnsignedLegacyDecryptionPermitEip712({transportKeyPair:c,contractAddresses:e,startTimestamp:l,durationSeconds:a*B,...i&&{delegatorAddress:i}}))),signerAddress:t})))}async batchRegisterPermits(e){if(e.length===0)throw new n(`permits must not be empty.`);let t={relayer:this.#n.relayer,activeChainId:this.#n.chain.id,storedKeyPairs:new Map,transportKeyPairs:new Map},r=[];for(let[n,{prepared:i,signature:a}]of e.entries()){let o=e.length>1?`permits[${n}]: `:``;r.push(await this.#d(i,a,t,o))}for(let{scope:e,permission:t}of r)await p(`replace permit`,()=>this.#t.replace(e,t.serializedPermit.signature,t),this.#a)}async#d(e,t,{relayer:r,activeChainId:i,storedKeyPairs:a,transportKeyPairs:o},s){let d;try{d=C(Le,e)}catch(e){throw this.#u(`registerPermit`,e,s)}let{domain:f,message:p}=d.eip712,m=Number(f.chainId);if(m!==i)throw this.#u(`registerPermit`,new u({preparedChainId:m,activeChainId:i}),s);let h=Number(p.startTimestamp),g=Number(p.durationDays);if(V()>=h+g*86400)throw this.#u(`registerPermit`,new l(`registerPermit: the prepared permit's validity window (starting ${h}, ${g}d) has already elapsed. Prepare the permit again.`),s);let _=d.signerAddress,v=await ot(a,_,()=>this.#e.readStored(_));if(v===null||v.publicKey!==p.publicKey)throw new c(`${s}registerPermit: the transport key pair changed since the permit was prepared. Prepare it again to rebind the signature request to the current key pair.`);try{let e=await ot(o,_,()=>r.parseTransportKeyPair(v)),a=await r.parseSignedDecryptionPermit({serializedPermit:{version:d.version,eip712:d.eip712,signature:t,signerAddress:_},transportKeyPair:e});if(a.version!==1)throw new n(`registerPermit: expected a V1 signed permit, got version ${a.version}.`);let s=C(G,await r.serializeSignedDecryptionPermit({signedPermit:a})),c={keypairPublicKey:v.publicKey,contractAddresses:H(a.eip712.message.contractAddresses),serializedPermit:s,startTimestamp:Number(a.eip712.message.startTimestamp),durationDays:Number(a.eip712.message.durationDays)};return{scope:{signerAddress:_,chainId:i,delegatorAddress:S(a.encryptedDataOwnerAddress)},permission:c}}catch(e){throw this.#u(`registerPermit`,e,s)}}async hasPermit(e,t){if(e.length===0)return!0;let n=this.#r?.walletAccount.getSnapshot();if(!n)return!1;let r=S(n.address),i;try{i=await this.#e.readStored(r)}catch(e){if(!(e instanceof g))throw e;return!1}if(i===null)return!1;let a=this.#f(r,t);return et(await this.#t.listUsableAndPrune(a,i.publicKey),H(e)).length===0}async revokePermits(e){let t=S(this.#l(`revokePermits`).requireWalletAccount(`revokePermits`).address);if(e===void 0){await this.#t.clearAllForSigner(t);return}let n=H(e);n.length!==0&&await this.#t.deletePermitsTouching(this.#f(t),n)}#f(e,t){return{signerAddress:e,chainId:this.#n.chain.id,delegatorAddress:t?S(t):e}}async clearCredentials(){let e=S(this.#l(`clearCredentials`).requireWalletAccount(`clearCredentials`).address);await this.#e.clear(e),await this.#t.clearAllForSigner(e)}async revokeTransportKeyPair(e){if(this.#s===void 0)throw new n(`revokeTransportKeyPair() requires a transportKeyPairScope to be configured on this SDK instance — there is no shared key pair to revoke.`);if(e!==this.#s)throw new n(`revokeTransportKeyPair("${e}") does not match the configured scope ("${this.#s}").`);await this.#e.clearScope()}async warmTransportKeyPair(e){await this.#e.getOrCreate(S(e))}async warmTransportKeyPairScope(e){if(this.#s===void 0)throw new n(`warmTransportKeyPairScope() requires a transportKeyPairScope to be configured on this SDK instance — there is no shared key pair to warm.`);if(e!==this.#s)throw new n(`warmTransportKeyPairScope("${e}") does not match the configured scope ("${this.#s}").`);await this.#e.warmScope()}async handleWalletAccountChange(e,t){let n=e?S(e.address):void 0;n!==(t?S(t.address):void 0)&&n&&(await this.#e.clear(n),await this.#t.clearAllForSigner(n))}async#p(n){let{chunk:r,keypair:i,scope:a}=n,o=V(),s=a.delegatorAddress!==a.signerAddress,c=this.#n.relayer;try{let e={transportKeyPair:await c.parseTransportKeyPair(i),contractAddresses:r,startTimestamp:o,durationSeconds:this.#i*B,signerAddress:a.signerAddress,signer:this.#l(`signPermit`)},t=s?await c.signDecryptionPermit({...e,delegatorAddress:a.delegatorAddress}):await c.signDecryptionPermit(e),n=C(G,await c.serializeSignedDecryptionPermit({signedPermit:t}));return{keypairPublicKey:i.publicKey,contractAddresses:r,serializedPermit:n,startTimestamp:o,durationDays:this.#i}}catch(n){let r=s?`grantDelegationPermit`:`grantPermit`;throw!(n instanceof t)&&n instanceof Error&&e(n.message)&&await this.#e.evict(a.signerAddress),this.#u(r,n)}}async evictTransportKeyPair(){let e=this.#r?.walletAccount.getSnapshot();e&&await this.#e.evict(S(e.address))}async recoverPermits(e,t,n){let r=this.#l(`recoverPermits`).requireWalletAccount(`recoverPermits`),i=this.#f(S(r.address),t),a=Y(i),o=this.#c.get(a);if(o)return await o,this.grantPermit(e,t);let s=await this.#m(i),c=this.#c.get(a);if(c)return await c,this.grantPermit(e,t);if(s===null)return this.grantPermit(e,t);let l=new Set(n??[]);if(l.size>0&&!s.some(e=>l.has(e.serializedPermit.signature)))return this.grantPermit(e,t);let u=s.filter(e=>!l.has(e.serializedPermit.signature)),d=s.flatMap(e=>e.contractAddresses),f=this.#h(i,d,e,u,t).finally(()=>{this.#c.delete(a)});return this.#c.set(a,f),await f,this.grantPermit(e,t)}async#m(e){try{return await this.#t.list(e)}catch(e){return this.#a.warn(`read permits for recovery failed`,{error:e}),null}}async#h(e,t,n,r,i){await p(`evict revoked permits`,()=>this.#t.clearScope(e),this.#a);try{await this.grantPermit(Z(t,H(n)),i)}catch(t){throw r.length>0&&await p(`restore surviving permits`,async()=>{let t=await this.#t.list(e),n=new Set(t.map(e=>e.serializedPermit.signature)),i=r.filter(e=>!n.has(e.serializedPermit.signature));i.length>0&&await this.#t.append(e,i)},this.#a),t}}},ct=class{#e;#t=`[zama-sdk]`;constructor(e){this.#e=e}error(e,t){this.#e?.error(`${this.#t} ${e}`,t)}warn(e,t){this.#e?.warn(`${this.#t} ${e}`,t)}info(e,t){this.#e?.info(`${this.#t} ${e}`,t)}debug(e,t){this.#e?.debug(`${this.#t} ${e}`,t)}warnAlways(e){console.warn(`${this.#t} ${e}`),this.warn(e)}};const lt={[ue.id]:ue.registryAddress,[O.id]:O.registryAddress,[de.id]:de.registryAddress,[se.id]:se.registryAddress,[D.id]:D.registryAddress,[le.id]:le.registryAddress,[oe.id]:oe.registryAddress,[ce.id]:ce.registryAddress},ut=N.record(N.string().check(N.regex(/^\d+$/,`expected numeric chain id key`)),y),dt=ee,Q=300*1e3;var ft=class{provider;#e;#t;#n=new Map;constructor(e){this.provider=e.provider,this.#e=Object.assign({},lt,C(N.optional(ut),e.registryAddresses)),this.#t=C(dt,e.registryTTL??86400)*1e3}getAddress(e){return this.#e[e]}#r(e){let t=this.#n.get(e);if(t){if(Date.now()>=t.expiresAt){this.#n.delete(e);return}return t.data}}#i(e,t,n=this.#t){return this.#n.set(e,{data:t,expiresAt:Date.now()+n}),t}refresh(){this.#n.clear()}get ttlMs(){return this.#t}async getRegistryAddress(){let e=await this.provider.getChainId(),t=this.#e[e];if(!t)throw new n(`No wrappers registry address configured for chain ${e}.\nPass a registryAddresses entry for this chain.`);return k(t)}async listPairs(e={}){let t=e.page??1,r=e.pageSize??100,i=e.metadata??!1;if(t<1)throw new n(`page must be >= 1, got ${t}`);if(r<1)throw new n(`pageSize must be >= 1, got ${r}`);let a=await this.getRegistryAddress(),o=`total:${a}`,s=this.#r(o);if(s===void 0){let e=await this.provider.readContract(ne(a));s=this.#i(o,Number(e))}let c=BigInt((t-1)*r),l=c+BigInt(r)>BigInt(s)?BigInt(s):c+BigInt(r);if(c>=BigInt(s))return{items:[],total:s,page:t,pageSize:r};let u=`slice:${a}:${c}:${l}`,d=this.#r(u);if(d===void 0){let e=await this.provider.readContract(T(a,c,l));d=this.#i(u,[...e])}if(!i)return{items:d,total:s,page:t,pageSize:r};let f=`metadata:${a}:${c}:${l}`,p=this.#r(f);if(p===void 0){let e=await Promise.allSettled(d.map(e=>this.#a(e))),t=e.some(e=>e.status===`rejected`),n=e.map((e,t)=>e.status===`fulfilled`?e.value:Object.assign({},d[t],{metadataFailed:!0,underlying:{name:`Unknown`,symbol:`???`,decimals:0,totalSupply:0n},confidential:{name:`Unknown`,symbol:`???`,decimals:0}}));p=this.#i(f,n,t?Q:void 0)}return{items:p,total:s,page:t,pageSize:r}}async#a(e){let[t,n,r,i,a,o,s]=await Promise.all([this.provider.readContract(h(e.tokenAddress)),this.provider.readContract(m(e.tokenAddress)),this.provider.readContract(d(e.tokenAddress)),this.provider.readContract(f(e.tokenAddress)),this.provider.readContract(h(e.confidentialTokenAddress)),this.provider.readContract(m(e.confidentialTokenAddress)),this.provider.readContract(d(e.confidentialTokenAddress))]);return{...e,underlying:{name:t,symbol:n,decimals:r,totalSupply:i},confidential:{name:a,symbol:o,decimals:s}}}async getConfidentialToken(e){let t=await this.getRegistryAddress(),n=k(e),r=`ct:${t}:${n}`,i=this.#r(r);if(i!==void 0)return i;let[a,o]=await this.provider.readContract(E(t,n));return o===M?this.#i(r,null,Q):this.#i(r,{confidentialTokenAddress:o,isValid:a})}async getUnderlyingToken(e){let t=await this.getRegistryAddress(),n=k(e),r=`ut:${t}:${n}`,i=this.#r(r);if(i!==void 0)return i;let[a,o]=await this.provider.readContract(w(t,n));return o===M?this.#i(r,null,Q):this.#i(r,{tokenAddress:o,isValid:a})}async getTokenPairs(){let e=await this.getRegistryAddress();return this.provider.readContract(re(e))}async getTokenPairsLength(){let e=await this.getRegistryAddress();return this.provider.readContract(ne(e))}async getTokenPairsSlice(e,t){let n=await this.getRegistryAddress();return this.provider.readContract(T(n,e,t))}async getTokenPair(e){let t=await this.getRegistryAddress();return this.provider.readContract(ie(t,e))}async getConfidentialTokenAddress(e){let t=await this.getRegistryAddress();return this.provider.readContract(E(t,k(e)))}async getTokenAddress(e){let t=await this.getRegistryAddress();return this.provider.readContract(w(t,k(e)))}async isConfidentialTokenValid(e){let t=await this.getRegistryAddress();return this.provider.readContract(ae(t,k(e)))}};function pt(e,t,n){let r=new ct(n.logger),i=n.logger,a={wasmAssetLoadMode:`auto`,moduleVersions:`auto`,logger:{error:(e,t)=>i?.error(e,{cause:t}),warn:e=>i?.warn(e),debug:e=>i?.debug(e)},...n.runtime};if(fe()){let e=`runtime configuration is already set and cannot be changed.`;n.runtime===void 0?r.debug(e):r.warn(e)}else pe(a),_(a);let{storage:o,permitStorage:s}=_e(n.storage,n.permitStorage),c=n.telemetry===!1?void 0:{layer:`core`},l=new ye(n.chains,n.relayers,r,c);return{chains:n.chains,router:l,provider:t,signer:e,storage:o,permitStorage:s,transportKeyPairTTL:C(Ae,n.transportKeyPairTTL??2592e3),permitTTL:C(je,n.permitTTL??30),transportKeyPairScope:n.transportKeyPairScope===void 0?void 0:C(Me,n.transportKeyPairScope),registryTTL:C(dt,n.registryTTL??86400),logger:r,onEvent:n.onEvent,telemetry:c}}function mt(e,t){return e?.address===t?.address&&e?.chainId===t?.chainId}var $=class{#e=new Set;#t;#n;constructor(e){this.#t=e,this.#n=e!==void 0}getSnapshot(){return this.#t}isReady(){return this.#n}setSnapshot(e){this.#n=!0;let t=this.#t;mt(t,e)||(this.#t=e,this.#r({previous:t,next:e}))}subscribe(e){this.#e.add(e);let t=this.#t;return t&&e({previous:void 0,next:t}),()=>{this.#e.delete(e)}}#r(e){for(let t of this.#e)t(e)}};function ht(e){return new $(e)}var gt=class{walletAccount;#e=!1;constructor(e){this.walletAccount=new $(e)}requireWalletAccount(e){let t=this.walletAccount.getSnapshot();if(!t)throw new r(e);return t}dispose(){this.#e||(this.#e=!0,this.onDispose())}[Symbol.dispose](){this.dispose()}onDispose(){}};export{lt as a,Ne as c,he as d,P as f,pt as i,xe as l,$ as n,ft as o,me as p,ht as r,st as s,gt as t,F as u};
|
|
2
|
-
//# sourceMappingURL=base-signer-b1ff2VPI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chains-iPpnjXql.js","names":[],"sources":["../../src/chains/configs.ts"],"sourcesContent":["import type { FheChain } from \"./types\";\n\n/**\n * Mainnet network configuration (chainId 1).\n */\nexport const mainnet = {\n id: 1,\n gatewayChainId: 261131,\n relayerUrl: \"https://relayer.mainnet.zama.org\",\n network: \"https://ethereum-rpc.publicnode.com\",\n aclContractAddress: \"0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\n kmsContractAddress: \"0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\n inputVerifierContractAddress: \"0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2\",\n verifyingContractAddressDecryption: \"0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24\",\n verifyingContractAddressInputVerification: \"0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287\",\n registryAddress: \"0xeb5015fF021DB115aCe010f23F55C2591059bBA0\",\n} as const satisfies FheChain;\n\n/**\n * Polygon mainnet network configuration (chainId 137).\n */\nexport const polygon = {\n id: 137,\n gatewayChainId: 261131,\n relayerUrl: \"https://relayer.mainnet.zama.org\",\n network: \"https://polygon-bor-rpc.publicnode.com\",\n aclContractAddress: \"0x6737F17e31cf26a1b62fb0362acC5a16CB156F49\",\n kmsContractAddress: \"0x14e609595474874Dd6b6128376E336EfADfdBE37\",\n inputVerifierContractAddress: \"0xf40BD204B035522EaAc8E5afAdc55113Acac96ca\",\n verifyingContractAddressDecryption: \"0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24\",\n verifyingContractAddressInputVerification: \"0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287\",\n registryAddress: \"0xc8908569868758dAF814B5a8b96bBc44D1653d54\",\n} as const satisfies FheChain;\n\n/**\n * Sepolia testnet network configuration (chainId 11155111).\n */\nexport const sepolia = {\n id: 11155111,\n gatewayChainId: 10901,\n relayerUrl: \"https://relayer.testnet.zama.org\",\n network: \"https://ethereum-sepolia-rpc.publicnode.com\",\n aclContractAddress: \"0xf0Ffdc93b7E186bC2f8CB3dAA75D86d1930A433D\",\n kmsContractAddress: \"0xbE0E383937d564D7FF0BC3b46c51f0bF8d5C311A\",\n inputVerifierContractAddress: \"0xBBC1fFCdc7C316aAAd72E807D9b0272BE8F84DA0\",\n verifyingContractAddressDecryption: \"0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478\",\n verifyingContractAddressInputVerification: \"0x483b9dE06E4E4C7D35CCf5837A1668487406D955\",\n registryAddress: \"0x2f0750Bbb0A246059d80e94c454586a7F27a128e\",\n} as const satisfies FheChain;\n\n/**\n * Polygon Amoy testnet network configuration (chainId 80002).\n */\nexport const polygonAmoy = {\n id: 80002,\n gatewayChainId: 10901,\n relayerUrl: \"https://relayer.testnet.zama.org\",\n network: \"https://polygon-amoy-bor-rpc.publicnode.com\",\n aclContractAddress: \"0xD99Cb9Fc3c42c87f2A4A12e8Fd60318d6bDdf985\",\n kmsContractAddress: \"0xCD1D89E311bce4C8DEa9a0857a0c9A4E153D4041\",\n inputVerifierContractAddress: \"0x6e5A7D8b0c645467Cba7e62D6624917085118631\",\n verifyingContractAddressDecryption: \"0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478\",\n verifyingContractAddressInputVerification: \"0x483b9dE06E4E4C7D35CCf5837A1668487406D955\",\n registryAddress: \"0xF486c3D4F4562760A43883e72E8D6f6Cf2EFdA94\",\n} as const satisfies FheChain;\n\n/**\n * Hoodi testnet configuration (chainId 560048).\n *\n * Hoodi does not have full FHE infrastructure — use with `cleartext()` transport.\n * Contract addresses match the cleartext deployment.\n */\nexport const hoodi = {\n id: 560048,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"https://rpc.hoodi.ethpandaops.io\",\n aclContractAddress: \"0x6D3FAf6f86e1fF9F3B0831Dda920AbA1cBd5bd68\",\n kmsContractAddress: \"0x822BE20679CfAfdc352F05dEdfe12a07E912212e\",\n inputVerifierContractAddress: \"0xf3D9A51f32D9bC23E1eECb0fAbF1f1DA4d9Bba26\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n registryAddress: \"0x1807aE2f693F8530DFB126D0eF98F2F2518F292f\",\n executorAddress: \"0xC316692627de536368d82e9121F1D44a550894E6\",\n} as const satisfies FheChain;\n\n/**\n * T-Rex InGen testnet configuration (chainId 364301).\n *\n * InGen does not have full FHE infrastructure — use with `cleartext()` transport.\n * Contract addresses match the cleartext deployment.\n */\nexport const ingenTestnet = {\n id: 364301,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"https://rpc.ingen.t-rex.network\",\n aclContractAddress: \"0x09a4710BfBe7B557cD5CFE88BB31e9b5b85C419b\",\n kmsContractAddress: \"0xd885DEa6a924785fCcdf9CE993FEe27EA11832e6\",\n inputVerifierContractAddress: \"0x90f05B10db153365D8cB143EA17f5E5714D0bCD5\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n registryAddress: \"0x7FC3D79EF9d01fA318CF2Aa5D91dDC492383Be0F\",\n executorAddress: \"0x1B05DE5b67b8f8363DC04E3a5996a616f11f8C7B\",\n} as const satisfies FheChain;\n\n/**\n * T-Rex Zenith testnet configuration (chainId 936486).\n *\n * T-Rex's testnet instance on Zenith EVM (Reth execution, Canton-mediated\n * finality) — a separate chain from Zenith's shared testnet (chainId 936485).\n * It does not have full FHE infrastructure — use with `cleartext()` transport.\n */\nexport const zenithTrexTestnet = {\n id: 936486,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"https://rpc.testnet.t-rex.zenith.network\",\n aclContractAddress: \"0x061AAc7aAACc98d8e30459d4D858DaB9b6F3bd23\",\n kmsContractAddress: \"0x85fBA21840059cB7E2E5BB7Fa2c5b2A324Ea7a7D\",\n inputVerifierContractAddress: \"0xE90965601D10D42D3d88486b47b0Caf12C5C9fDe\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n registryAddress: \"0xde2e3948d35ef9C406A7317eAF332F3c2786a566\",\n executorAddress: \"0x6C5036A4ad55DBA8007ae82c4e9C123F143e53ab\",\n} as const satisfies FheChain;\n\n/**\n * BNB Smart Chain testnet configuration (chainId 97, Chapel).\n *\n * BSC testnet does not have full FHE infrastructure — use with `cleartext()` transport.\n * Contract addresses match the cleartext deployment.\n */\nexport const bscTestnet = {\n id: 97,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"https://bsc-testnet.bnbchain.org\",\n aclContractAddress: \"0x52470e945521E247Cb4754088a836Dc4b838AFBE\",\n kmsContractAddress: \"0x788F5BB2d93aB4Cb67Fe2277757aE95006504F6F\",\n inputVerifierContractAddress: \"0x49e0BAB39904E4192c30CFB58573Cbe27B7E398E\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n registryAddress: \"0xc0E8B73b1C58D846e1d4f8fAE2E1466C85BCeAeC\",\n executorAddress: \"0x5985e48689550c1b2893ABfBbe4cc0eE3A22cc54\",\n} as const satisfies FheChain;\n\n/**\n * Hardhat local network configuration (chainId 31337).\n *\n * The addresses in this configuration must match those of your deployment.\n */\nexport const hardhat = {\n id: 31337,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"http://127.0.0.1:8545\",\n aclContractAddress: \"0x50157CFfD6bBFA2DECe204a89ec419c23ef5755D\",\n inputVerifierContractAddress: \"0x36772142b74871f255CbD7A3e89B401d3e45825f\",\n kmsContractAddress: \"0x901F8942346f7AB3a01F6D7613119Bca447Bb030\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n registryAddress: undefined,\n executorAddress: \"0xe3a9105a3a932253A70F126eb1E3b589C643dD24\",\n} as const satisfies FheChain;\n\n/** Alias for {@link hardhat}. */\nexport const anvil = hardhat;\n\n/**\n * Built-in chain configurations keyed by chain ID.\n */\nexport const chains: Record<number, FheChain> = {\n [mainnet.id]: mainnet,\n [polygon.id]: polygon,\n [sepolia.id]: sepolia,\n [polygonAmoy.id]: polygonAmoy,\n [hoodi.id]: hoodi,\n [ingenTestnet.id]: ingenTestnet,\n [zenithTrexTestnet.id]: zenithTrexTestnet,\n [bscTestnet.id]: bscTestnet,\n [hardhat.id]: hardhat,\n} as const;\n"],"mappings":"AAKA,MAAa,EAAU,CACrB,GAAI,EACJ,eAAgB,OAChB,WAAY,mCACZ,QAAS,sCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,4CACnB,EAKa,EAAU,CACrB,GAAI,IACJ,eAAgB,OAChB,WAAY,mCACZ,QAAS,yCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,4CACnB,EAKa,EAAU,CACrB,GAAI,SACJ,eAAgB,MAChB,WAAY,mCACZ,QAAS,8CACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,4CACnB,EAKa,EAAc,CACzB,GAAI,MACJ,eAAgB,MAChB,WAAY,mCACZ,QAAS,8CACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,4CACnB,EAQa,EAAQ,CACnB,GAAI,OACJ,eAAgB,MAChB,WAAY,GACZ,QAAS,mCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,6CACjB,gBAAiB,4CACnB,EAQa,EAAe,CAC1B,GAAI,OACJ,eAAgB,MAChB,WAAY,GACZ,QAAS,kCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,6CACjB,gBAAiB,4CACnB,EASa,EAAoB,CAC/B,GAAI,OACJ,eAAgB,MAChB,WAAY,GACZ,QAAS,2CACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,6CACjB,gBAAiB,4CACnB,EAQa,EAAa,CACxB,GAAI,GACJ,eAAgB,MAChB,WAAY,GACZ,QAAS,mCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,6CACjB,gBAAiB,4CACnB,EAOa,EAAU,CACrB,GAAI,MACJ,eAAgB,MAChB,WAAY,GACZ,QAAS,wBACT,mBAAoB,6CACpB,6BAA8B,6CAC9B,mBAAoB,6CACpB,mCAAoC,6CACpC,0CAA2C,6CAC3C,gBAAiB,IAAA,GACjB,gBAAiB,4CACnB,EAGa,EAAQ,EAKR,EAAmC,EAC7C,EAAQ,IAAK,GACb,EAAQ,IAAK,GACb,EAAQ,IAAK,GACb,EAAY,IAAK,GACjB,EAAM,IAAK,GACX,EAAa,IAAK,GAClB,EAAkB,IAAK,GACvB,EAAW,IAAK,GAChB,EAAQ,IAAK,CAChB"}
|