@zama-fhe/sdk 3.0.0-alpha.2 → 3.0.0-alpha.21
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/README.md +207 -122
- package/dist/cjs/build.cjs +2 -0
- package/dist/cjs/build.cjs.map +1 -0
- package/dist/cjs/chains/index.cjs +1 -0
- package/dist/cjs/chains.cjs +2 -0
- package/dist/cjs/chains.cjs.map +1 -0
- package/dist/cjs/cleartext/index.cjs +1 -1
- package/dist/cjs/eip1193-subscribe.cjs +1 -1
- package/dist/cjs/eip1193-subscribe.cjs.map +1 -1
- package/dist/cjs/encryption.cjs +2 -0
- package/dist/cjs/encryption.cjs.map +1 -0
- package/dist/cjs/ethers/index.cjs +1 -1
- package/dist/cjs/ethers/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +73 -73
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/query/index.cjs +1 -1
- package/dist/cjs/query/index.cjs.map +1 -1
- package/dist/cjs/readonly-token.cjs +1 -1
- package/dist/cjs/readonly-token.cjs.map +1 -1
- package/dist/cjs/relayer-cleartext.cjs +2 -0
- package/dist/cjs/relayer-cleartext.cjs.map +1 -0
- package/dist/cjs/relayer-sdk.worker.js +71 -71
- package/dist/cjs/relayer.cjs +1 -1
- package/dist/cjs/relayer.cjs.map +1 -1
- package/dist/cjs/viem/index.cjs +1 -1
- package/dist/cjs/viem/index.cjs.map +1 -1
- package/dist/cjs/wrappers-registry.cjs +1 -1
- package/dist/cjs/wrappers-registry.cjs.map +1 -1
- package/dist/esm/{assertions-BARApuMj.js → assertions-CfqI3AJv.js} +1 -1
- package/dist/esm/{assertions-BARApuMj.js.map → assertions-CfqI3AJv.js.map} +1 -1
- package/dist/esm/build-CvenCk6R.js +2 -0
- package/dist/esm/build-CvenCk6R.js.map +1 -0
- package/dist/esm/chains/index.d.ts +3 -0
- package/dist/esm/chains/index.js +1 -0
- package/dist/esm/chains-aHmrozPh.js +2 -0
- package/dist/esm/chains-aHmrozPh.js.map +1 -0
- package/dist/esm/cleartext/index.d.ts +2 -86
- package/dist/esm/cleartext/index.js +1 -1
- package/dist/esm/cleartext-BHu6-LCv.d.ts +19 -0
- package/dist/esm/cleartext-I-etE_7S.js +2 -0
- package/dist/esm/cleartext-I-etE_7S.js.map +1 -0
- package/dist/esm/eip1193-subscribe-CcotSOIm.js +2 -0
- package/dist/esm/eip1193-subscribe-CcotSOIm.js.map +1 -0
- package/dist/esm/{encryption-CmIPBcfP.js → encryption-YS-Kb7qm.js} +2 -2
- package/dist/esm/{encryption-CmIPBcfP.js.map → encryption-YS-Kb7qm.js.map} +1 -1
- package/dist/esm/ethers/index.d.ts +53 -8
- package/dist/esm/ethers/index.js +1 -1
- package/dist/esm/ethers/index.js.map +1 -1
- package/dist/esm/{hex-D_B-zoId.js → hex-BZVTzEK6.js} +2 -2
- package/dist/esm/{hex-D_B-zoId.js.map → hex-BZVTzEK6.js.map} +1 -1
- package/dist/esm/{relayer-utils-iSPis4x-.d.ts → index-BTY0MxOt.d.ts} +50 -23
- package/dist/esm/{onchain-events-2VNiL78c.d.ts → index-BdyljG1F.d.ts} +387 -1505
- package/dist/esm/index.d.ts +61 -93
- package/dist/esm/index.js +73 -73
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/memory-storage-CFXqXUcm.js +2 -0
- package/dist/esm/memory-storage-CFXqXUcm.js.map +1 -0
- package/dist/esm/node/index.d.ts +88 -110
- package/dist/esm/node/index.js +1 -1
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/node/relayer-sdk.node-worker.js +1 -1
- package/dist/esm/node/relayer-sdk.node-worker.js.map +1 -1
- package/dist/esm/query/index.d.ts +40 -50
- package/dist/esm/query/index.js +1 -1
- package/dist/esm/query/index.js.map +1 -1
- package/dist/esm/readonly-token-DCLOYhws.js +2 -0
- package/dist/esm/readonly-token-DCLOYhws.js.map +1 -0
- package/dist/esm/{relayer-C6u3eOlN.js → relayer-7Hd00A6X.js} +2 -2
- package/dist/esm/relayer-7Hd00A6X.js.map +1 -0
- package/dist/esm/{relayer-sdk.types-CGfXwKcB.d.ts → relayer-cleartext-DJkSUlZ2.d.ts} +263 -106
- package/dist/esm/relayer-cleartext-SZCM9wTx.js +2 -0
- package/dist/esm/relayer-cleartext-SZCM9wTx.js.map +1 -0
- package/dist/esm/relayer-sdk.worker.js +71 -71
- package/dist/esm/types-C1S426x4.d.ts +48 -0
- package/dist/esm/types-CVyJHEya.d.ts +14 -0
- package/dist/esm/types-DePjTTbo.d.ts +30 -0
- package/dist/esm/types-FY7ciI37.d.ts +615 -0
- package/dist/esm/viem/index.d.ts +39 -11
- package/dist/esm/viem/index.js +1 -1
- package/dist/esm/viem/index.js.map +1 -1
- package/dist/esm/wrappers-registry-CXNs4eR0.js +2 -0
- package/dist/esm/wrappers-registry-CXNs4eR0.js.map +1 -0
- package/package.json +17 -3
- package/dist/cjs/cleartext.cjs +0 -2
- package/dist/cjs/cleartext.cjs.map +0 -1
- package/dist/esm/cleartext-Cs28cTsa.js +0 -2
- package/dist/esm/cleartext-Cs28cTsa.js.map +0 -1
- package/dist/esm/eip1193-subscribe-Cl_wlVuQ.js +0 -2
- package/dist/esm/eip1193-subscribe-Cl_wlVuQ.js.map +0 -1
- package/dist/esm/memory-storage-F8xjMzVy.js +0 -2
- package/dist/esm/memory-storage-F8xjMzVy.js.map +0 -1
- package/dist/esm/readonly-token-D4GjTj0q.js +0 -2
- package/dist/esm/readonly-token-D4GjTj0q.js.map +0 -1
- package/dist/esm/relayer-C6u3eOlN.js.map +0 -1
- package/dist/esm/relayer-sdk-DPqytEbO.d.ts +0 -44
- package/dist/esm/relayer-utils-BeoTNDM4.js +0 -2
- package/dist/esm/relayer-utils-BeoTNDM4.js.map +0 -1
- package/dist/esm/wrappers-registry-ydyySM9g.js +0 -2
- package/dist/esm/wrappers-registry-ydyySM9g.js.map +0 -1
package/dist/esm/viem/index.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as FheChain } from "../types-C1S426x4.js";
|
|
2
|
+
import { A as GenericSigner, F as TransactionReceipt, N as SignerIdentityListener, U as WriteContractConfig, a as EIP712TypedData, k as GenericProvider, l as Handle, z as ReadContractConfig } from "../relayer-cleartext-DJkSUlZ2.js";
|
|
3
|
+
import { a as ZamaConfig } from "../types-FY7ciI37.js";
|
|
4
|
+
import { t as ZamaConfigViem } from "../types-CVyJHEya.js";
|
|
2
5
|
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ContractFunctionReturnType, EIP1193Provider, Hex, PublicClient, WalletClient } from "viem";
|
|
3
6
|
|
|
7
|
+
//#region src/viem/config.d.ts
|
|
8
|
+
/** Create a {@link ZamaConfig} from viem clients. */
|
|
9
|
+
declare function createConfig<const TChains extends readonly [FheChain, ...FheChain[]]>(params: ZamaConfigViem<TChains>): ZamaConfig;
|
|
10
|
+
//#endregion
|
|
4
11
|
//#region src/viem/viem-signer.d.ts
|
|
5
12
|
/**
|
|
6
13
|
* Configuration for {@link ViemSigner}.
|
|
@@ -15,16 +22,10 @@ import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ContractFunct
|
|
|
15
22
|
* wallet lifecycle handling, consider using `WagmiSigner` instead.
|
|
16
23
|
*/
|
|
17
24
|
interface ViemSignerConfig {
|
|
18
|
-
/** Wallet client for signing and write operations.
|
|
19
|
-
walletClient
|
|
20
|
-
publicClient: PublicClient;
|
|
25
|
+
/** Wallet client for signing and write operations. */
|
|
26
|
+
walletClient: WalletClient;
|
|
21
27
|
ethereum?: EIP1193Provider;
|
|
22
28
|
}
|
|
23
|
-
/**
|
|
24
|
-
* GenericSigner backed by viem.
|
|
25
|
-
*
|
|
26
|
-
* @param config - {@link ViemSignerConfig} with walletClient and publicClient
|
|
27
|
-
*/
|
|
28
29
|
declare class ViemSigner implements GenericSigner {
|
|
29
30
|
#private;
|
|
30
31
|
constructor(config: ViemSignerConfig);
|
|
@@ -32,10 +33,37 @@ declare class ViemSigner implements GenericSigner {
|
|
|
32
33
|
getAddress(): Promise<Address>;
|
|
33
34
|
signTypedData(typedData: EIP712TypedData): Promise<Hex>;
|
|
34
35
|
writeContract<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable">, const TArgs extends ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName>>(config: WriteContractConfig<TAbi, TFunctionName, TArgs>): Promise<Hex>;
|
|
36
|
+
subscribe(onIdentityChange: SignerIdentityListener): () => void;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/viem/viem-provider.d.ts
|
|
40
|
+
/** Configuration for {@link ViemProvider}. */
|
|
41
|
+
interface ViemProviderConfig {
|
|
42
|
+
/** A viem `PublicClient` backing all read operations. */
|
|
43
|
+
publicClient: PublicClient;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Read-only {@link GenericProvider} backed by a viem `PublicClient`.
|
|
47
|
+
*
|
|
48
|
+
* Use this for integrations that only need public chain reads — server
|
|
49
|
+
* indexers, SSR, dashboards, explorers, or dApps before the user has
|
|
50
|
+
* connected their wallet. Pair with a {@link ViemSigner} when wallet
|
|
51
|
+
* authority is required; the two can share a transport or point at
|
|
52
|
+
* independent RPCs.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* const publicClient = createPublicClient({ chain: sepolia, transport: http(ALCHEMY_URL) });
|
|
57
|
+
* const provider = new ViemProvider({ publicClient });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
declare class ViemProvider implements GenericProvider {
|
|
61
|
+
#private;
|
|
62
|
+
constructor(config: ViemProviderConfig);
|
|
63
|
+
getChainId(): Promise<number>;
|
|
35
64
|
readContract<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, "pure" | "view">, const TArgs extends ContractFunctionArgs<TAbi, "pure" | "view", TFunctionName>>(config: ReadContractConfig<TAbi, TFunctionName, TArgs>): Promise<ContractFunctionReturnType<TAbi, "pure" | "view", TFunctionName, TArgs>>;
|
|
36
65
|
waitForTransactionReceipt(hash: Hex): Promise<TransactionReceipt>;
|
|
37
66
|
getBlockTimestamp(): Promise<bigint>;
|
|
38
|
-
subscribe(callbacks: SignerLifecycleCallbacks): () => void;
|
|
39
67
|
}
|
|
40
68
|
//#endregion
|
|
41
69
|
//#region src/viem/contracts.d.ts
|
|
@@ -68,5 +96,5 @@ declare function readConfidentialTokenAddressContract(client: PublicClient, regi
|
|
|
68
96
|
declare function readTokenAddressContract(client: PublicClient, registry: Address, confidentialTokenAddress: Address): Promise<readonly [boolean, `0x${string}`]>;
|
|
69
97
|
declare function readIsConfidentialTokenValidContract(client: PublicClient, registry: Address, confidentialTokenAddress: Address): Promise<boolean>;
|
|
70
98
|
//#endregion
|
|
71
|
-
export { ViemSigner, type ViemSignerConfig, readConfidentialBalanceOfContract, readConfidentialTokenAddressContract, readIsConfidentialTokenValidContract, readSupportsInterfaceContract, readTokenAddressContract, readTokenPairContract, readTokenPairsContract, readTokenPairsLengthContract, readTokenPairsSliceContract, readUnderlyingTokenContract, writeConfidentialTransferContract, writeFinalizeUnwrapContract, writeSetOperatorContract, writeUnwrapContract, writeUnwrapFromBalanceContract, writeWrapContract };
|
|
99
|
+
export { ViemProvider, type ViemProviderConfig, ViemSigner, type ViemSignerConfig, type ZamaConfigViem, createConfig, readConfidentialBalanceOfContract, readConfidentialTokenAddressContract, readIsConfidentialTokenValidContract, readSupportsInterfaceContract, readTokenAddressContract, readTokenPairContract, readTokenPairsContract, readTokenPairsLengthContract, readTokenPairsSliceContract, readUnderlyingTokenContract, writeConfidentialTransferContract, writeFinalizeUnwrapContract, writeSetOperatorContract, writeUnwrapContract, writeUnwrapFromBalanceContract, writeWrapContract };
|
|
72
100
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/viem/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as e}from"../build-CvenCk6R.js";import{D as t,E as n,_ as r,a as i,b as a,g as o,i as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,v as h,w as g}from"../wrappers-registry-CXNs4eR0.js";import{t as _}from"../eip1193-subscribe-CcotSOIm.js";import{getAddress as v}from"viem";var y=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}};function b(e){if(!(!e.account||!e.chain))return{address:v(e.account.address),chainId:e.chain.id}}var x=class{#e;#t;constructor(e){this.#e=e.walletClient,this.#t=e.ethereum}#n(){if(!this.#e.account)throw TypeError(`WalletClient has no account`);return{walletClient:this.#e,account:this.#e.account}}async getChainId(){return this.#e.getChainId()}async getAddress(){return this.#n().account.address}async signTypedData(e){let{walletClient:t,account:n}=this.#n(),{EIP712Domain:r,...i}=e.types;return t.signTypedData({account:n,primaryType:e.primaryType,types:i,domain:e.domain,message:{...e.message,startTimestamp:BigInt(e.message.startTimestamp),durationDays:BigInt(e.message.durationDays)}})}async writeContract(e){let{walletClient:t,account:n}=this.#n();return t.writeContract({chain:t.chain,account:n,...e})}subscribe(e){return _({provider:this.#t,getInitialIdentity:()=>b(this.#e),onIdentityChange:e})}};function S(t){return e(new x({walletClient:t.walletClient,ethereum:t.ethereum}),new y({publicClient:t.publicClient}),t)}function C(e){if(!e.account)throw TypeError(`WalletClient has no account`);return e.account}function w(e,t,n){return e.readContract(h(t,n))}function T(e,t){return e.readContract(o(t))}function E(e,t,n){return e.readContract(d(t,n))}function D(e,t,n,r,i){return e.writeContract({chain:e.chain,account:C(e),...a(t,n,r,i)})}function O(e,t,r,i,a,o){return e.writeContract({chain:e.chain,account:C(e),...n(t,r,i,a,o)})}function k(e,n,r,i,a){return e.writeContract({chain:e.chain,account:C(e),...t(n,r,i,a)})}function A(e,t,n,r,i){return e.writeContract({chain:e.chain,account:C(e),...c(t,n,r,i)})}function j(e,t,n,r){return e.writeContract({chain:e.chain,account:C(e),...g(t,n,r)})}function M(e,t,n,i){return e.writeContract({chain:e.chain,account:C(e),...r(t,n,i)})}function N(e,t){return e.readContract(s(t))}function P(e,t){return e.readContract(i(t))}function F(e,t,n,r){return e.readContract(u(t,n,r))}function I(e,t,n){return e.readContract(f(t,n))}function L(e,t,n){return e.readContract(m(t,n))}function R(e,t,n){return e.readContract(l(t,n))}function z(e,t,n){return e.readContract(p(t,n))}export{y as ViemProvider,x as ViemSigner,S as createConfig,w as readConfidentialBalanceOfContract,L as readConfidentialTokenAddressContract,z as readIsConfidentialTokenValidContract,E as readSupportsInterfaceContract,R as readTokenAddressContract,I as readTokenPairContract,N as readTokenPairsContract,P as readTokenPairsLengthContract,F as readTokenPairsSliceContract,T as readUnderlyingTokenContract,D as writeConfidentialTransferContract,A as writeFinalizeUnwrapContract,j as writeSetOperatorContract,O as writeUnwrapContract,k as writeUnwrapFromBalanceContract,M as writeWrapContract};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#walletClient","#publicClient","#ethereum","#requireWalletClient","#requireWalletAndAccount"],"sources":["../../../src/viem/viem-signer.ts","../../../src/viem/contracts.ts"],"sourcesContent":["import type {\n Account,\n Abi,\n ContractFunctionArgs,\n ContractFunctionName,\n ContractFunctionReturnType,\n EIP1193Provider,\n PublicClient,\n WalletClient,\n Address,\n Hex,\n} from \"viem\";\nimport type { writeContract } from \"viem/actions\";\nimport type { EIP712TypedData } from \"../relayer/relayer-sdk.types\";\nimport type {\n GenericSigner,\n ReadContractConfig,\n SignerLifecycleCallbacks,\n TransactionReceipt,\n WriteContractConfig,\n} from \"../types\";\nimport { eip1193Subscribe } from \"../token/eip1193-subscribe\";\n\n/**\n * Configuration for {@link ViemSigner}.\n *\n * The optional `ethereum` field is needed for `subscribe()` (EIP-1193\n * `accountsChanged` / `disconnect` events). It cannot be auto-extracted from\n * `walletClient` because viem's `custom(ethereum)` transport captures the\n * provider in a closure and does **not** expose `on` / `removeListener` on\n * `walletClient.transport`.\n *\n * If you omit `ethereum`, `subscribe()` returns a no-op. For automatic\n * wallet lifecycle handling, consider using `WagmiSigner` instead.\n */\nexport interface ViemSignerConfig {\n /** Wallet client for signing and write operations. Optional — omit for read-only usage. */\n walletClient?: WalletClient;\n publicClient: PublicClient;\n ethereum?: EIP1193Provider;\n}\n\n/**\n * GenericSigner backed by viem.\n *\n * @param config - {@link ViemSignerConfig} with walletClient and publicClient\n */\nexport class ViemSigner implements GenericSigner {\n readonly #walletClient?: WalletClient;\n readonly #publicClient: PublicClient;\n readonly #ethereum?: EIP1193Provider;\n\n constructor(config: ViemSignerConfig) {\n this.#walletClient = config.walletClient;\n this.#publicClient = config.publicClient;\n this.#ethereum = config.ethereum;\n }\n\n #requireWalletClient(): WalletClient {\n if (!this.#walletClient) {\n throw new TypeError(\"No walletClient configured — read-only mode\");\n }\n return this.#walletClient;\n }\n\n #requireWalletAndAccount(): { walletClient: WalletClient; account: Account } {\n const walletClient = this.#requireWalletClient();\n if (!walletClient.account) {\n throw new TypeError(\"WalletClient has no account\");\n }\n return { walletClient, account: walletClient.account };\n }\n\n async getChainId(): Promise<number> {\n return this.#publicClient.getChainId();\n }\n\n async getAddress(): Promise<Address> {\n return this.#requireWalletAndAccount().account.address;\n }\n\n async signTypedData(typedData: EIP712TypedData): Promise<Hex> {\n const { walletClient, account } = this.#requireWalletAndAccount();\n const { EIP712Domain: _, ...sigTypes } = typedData.types;\n return walletClient.signTypedData({\n account,\n primaryType: Object.keys(sigTypes)[0]!,\n types: sigTypes,\n domain: typedData.domain,\n message: typedData.message,\n });\n }\n\n async writeContract<\n const TAbi extends Abi | readonly unknown[],\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n const TArgs extends ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName>,\n >(config: WriteContractConfig<TAbi, TFunctionName, TArgs>): Promise<Hex> {\n const { walletClient, account } = this.#requireWalletAndAccount();\n return walletClient.writeContract({\n chain: walletClient.chain,\n account,\n ...config,\n } as Parameters<typeof writeContract>[1]);\n }\n\n async readContract<\n const TAbi extends Abi | readonly unknown[],\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n const TArgs extends ContractFunctionArgs<TAbi, \"pure\" | \"view\", TFunctionName>,\n >(\n config: ReadContractConfig<TAbi, TFunctionName, TArgs>,\n ): Promise<ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName, TArgs>> {\n return this.#publicClient.readContract(config);\n }\n\n async waitForTransactionReceipt(hash: Hex): Promise<TransactionReceipt> {\n return this.#publicClient.waitForTransactionReceipt({ hash });\n }\n\n async getBlockTimestamp(): Promise<bigint> {\n const block = await this.#publicClient.getBlock();\n return block.timestamp;\n }\n\n subscribe(callbacks: SignerLifecycleCallbacks): () => void {\n if (!this.#walletClient) {\n return () => {};\n }\n return eip1193Subscribe(this.#ethereum, () => this.getAddress(), callbacks);\n }\n}\n","import type { PublicClient, WalletClient, Address, Hex } from \"viem\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\nimport {\n confidentialBalanceOfContract,\n confidentialTransferContract,\n finalizeUnwrapContract,\n setOperatorContract,\n supportsInterfaceContract,\n underlyingContract,\n unwrapContract,\n unwrapFromBalanceContract,\n wrapContract,\n getTokenPairsContract,\n getTokenPairsLengthContract,\n getTokenPairsSliceContract,\n getTokenPairContract,\n getConfidentialTokenAddressContract,\n getTokenAddressContract,\n isConfidentialTokenValidContract,\n} from \"../contracts\";\n\n// ── Helpers ────────────────────────────────────────────────\n\nfunction requireAccount(client: WalletClient) {\n if (!client.account) {\n throw new TypeError(\"WalletClient has no account\");\n }\n return client.account;\n}\n\n// ── Read helpers ────────────────────────────────────────────\n\nexport function readConfidentialBalanceOfContract(\n client: PublicClient,\n tokenAddress: Address,\n userAddress: Address,\n) {\n return client.readContract(confidentialBalanceOfContract(tokenAddress, userAddress));\n}\n\nexport function readUnderlyingTokenContract(client: PublicClient, wrapperAddress: Address) {\n return client.readContract(underlyingContract(wrapperAddress));\n}\n\nexport function readSupportsInterfaceContract(\n client: PublicClient,\n tokenAddress: Address,\n interfaceId: Address,\n) {\n return client.readContract(supportsInterfaceContract(tokenAddress, interfaceId));\n}\n\n// ── Write helpers ───────────────────────────────────────────\n\nexport function writeConfidentialTransferContract(\n client: WalletClient,\n tokenAddress: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...confidentialTransferContract(tokenAddress, to, handle, inputProof),\n });\n}\n\nexport function writeUnwrapContract(\n client: WalletClient,\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedAmount: Uint8Array,\n inputProof: Uint8Array,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...unwrapContract(encryptedErc20, from, to, encryptedAmount, inputProof),\n });\n}\n\nexport function writeUnwrapFromBalanceContract(\n client: WalletClient,\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedBalance: Handle,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...unwrapFromBalanceContract(encryptedErc20, from, to, encryptedBalance),\n });\n}\n\nexport function writeFinalizeUnwrapContract(\n client: WalletClient,\n wrapper: Address,\n unwrapRequestId: Handle,\n burntAmountCleartext: bigint,\n decryptionProof: Hex,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...finalizeUnwrapContract(wrapper, unwrapRequestId, burntAmountCleartext, decryptionProof),\n });\n}\n\nexport function writeSetOperatorContract(\n client: WalletClient,\n tokenAddress: Address,\n spender: Address,\n timestamp?: number,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...setOperatorContract(tokenAddress, spender, timestamp),\n });\n}\n\nexport function writeWrapContract(\n client: WalletClient,\n wrapperAddress: Address,\n to: Address,\n amount: bigint,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...wrapContract(wrapperAddress, to, amount),\n });\n}\n\n// ── Registry read helpers ──────────────────────────────────\n\nexport function readTokenPairsContract(client: PublicClient, registry: Address) {\n return client.readContract(getTokenPairsContract(registry));\n}\n\nexport function readTokenPairsLengthContract(client: PublicClient, registry: Address) {\n return client.readContract(getTokenPairsLengthContract(registry));\n}\n\nexport function readTokenPairsSliceContract(\n client: PublicClient,\n registry: Address,\n fromIndex: bigint,\n toIndex: bigint,\n) {\n return client.readContract(getTokenPairsSliceContract(registry, fromIndex, toIndex));\n}\n\nexport function readTokenPairContract(client: PublicClient, registry: Address, index: bigint) {\n return client.readContract(getTokenPairContract(registry, index));\n}\n\nexport function readConfidentialTokenAddressContract(\n client: PublicClient,\n registry: Address,\n tokenAddress: Address,\n) {\n return client.readContract(getConfidentialTokenAddressContract(registry, tokenAddress));\n}\n\nexport function readTokenAddressContract(\n client: PublicClient,\n registry: Address,\n confidentialTokenAddress: Address,\n) {\n return client.readContract(getTokenAddressContract(registry, confidentialTokenAddress));\n}\n\nexport function readIsConfidentialTokenValidContract(\n client: PublicClient,\n registry: Address,\n confidentialTokenAddress: Address,\n) {\n return client.readContract(isConfidentialTokenValidContract(registry, confidentialTokenAddress));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["#publicClient","#walletClient","#ethereum","#requireAccount"],"sources":["../../../src/viem/viem-provider.ts","../../../src/viem/viem-signer.ts","../../../src/viem/config.ts","../../../src/viem/contracts.ts"],"sourcesContent":["import type {\n Abi,\n ContractFunctionArgs,\n ContractFunctionName,\n ContractFunctionReturnType,\n Hex,\n PublicClient,\n} from \"viem\";\nimport type { GenericProvider, ReadContractConfig, TransactionReceipt } from \"../types\";\n\n/** Configuration for {@link ViemProvider}. */\nexport interface ViemProviderConfig {\n /** A viem `PublicClient` backing all read operations. */\n publicClient: PublicClient;\n}\n\n/**\n * Read-only {@link GenericProvider} backed by a viem `PublicClient`.\n *\n * Use this for integrations that only need public chain reads — server\n * indexers, SSR, dashboards, explorers, or dApps before the user has\n * connected their wallet. Pair with a {@link ViemSigner} when wallet\n * authority is required; the two can share a transport or point at\n * independent RPCs.\n *\n * @example\n * ```ts\n * const publicClient = createPublicClient({ chain: sepolia, transport: http(ALCHEMY_URL) });\n * const provider = new ViemProvider({ publicClient });\n * ```\n */\nexport class ViemProvider implements GenericProvider {\n readonly #publicClient: PublicClient;\n\n constructor(config: ViemProviderConfig) {\n this.#publicClient = config.publicClient;\n }\n\n async getChainId(): Promise<number> {\n return this.#publicClient.getChainId();\n }\n\n async readContract<\n const TAbi extends Abi | readonly unknown[],\n TFunctionName extends ContractFunctionName<TAbi, \"pure\" | \"view\">,\n const TArgs extends ContractFunctionArgs<TAbi, \"pure\" | \"view\", TFunctionName>,\n >(\n config: ReadContractConfig<TAbi, TFunctionName, TArgs>,\n ): Promise<ContractFunctionReturnType<TAbi, \"pure\" | \"view\", TFunctionName, TArgs>> {\n return this.#publicClient.readContract(config);\n }\n\n async waitForTransactionReceipt(hash: Hex): Promise<TransactionReceipt> {\n return this.#publicClient.waitForTransactionReceipt({ hash });\n }\n\n async getBlockTimestamp(): Promise<bigint> {\n const block = await this.#publicClient.getBlock();\n return block.timestamp;\n }\n}\n","import type {\n Account,\n Abi,\n ContractFunctionArgs,\n ContractFunctionName,\n EIP1193Provider,\n WalletClient,\n Address,\n Hex,\n} from \"viem\";\nimport { getAddress } from \"viem\";\nimport type { writeContract } from \"viem/actions\";\nimport type { EIP712TypedData } from \"../relayer/relayer-sdk.types\";\nimport type {\n GenericSigner,\n SignerIdentity,\n SignerIdentityListener,\n WriteContractConfig,\n} from \"../types\";\nimport { eip1193Subscribe } from \"../signer/eip1193-subscribe\";\n\n/**\n * Configuration for {@link ViemSigner}.\n *\n * The optional `ethereum` field is needed for `subscribe()` (EIP-1193\n * `accountsChanged` / `disconnect` events). It cannot be auto-extracted from\n * `walletClient` because viem's `custom(ethereum)` transport captures the\n * provider in a closure and does **not** expose `on` / `removeListener` on\n * `walletClient.transport`.\n *\n * If you omit `ethereum`, `subscribe()` returns a no-op. For automatic\n * wallet lifecycle handling, consider using `WagmiSigner` instead.\n */\nexport interface ViemSignerConfig {\n /** Wallet client for signing and write operations. */\n walletClient: WalletClient;\n ethereum?: EIP1193Provider;\n}\n\nfunction identityFromWalletClient(walletClient: WalletClient): SignerIdentity | undefined {\n if (!walletClient.account || !walletClient.chain) {\n return undefined;\n }\n const address = getAddress(walletClient.account.address);\n return { address, chainId: walletClient.chain.id };\n}\n\nexport class ViemSigner implements GenericSigner {\n readonly #walletClient: WalletClient;\n readonly #ethereum?: EIP1193Provider;\n constructor(config: ViemSignerConfig) {\n this.#walletClient = config.walletClient;\n this.#ethereum = config.ethereum;\n }\n\n #requireAccount(): { walletClient: WalletClient; account: Account } {\n if (!this.#walletClient.account) {\n throw new TypeError(\"WalletClient has no account\");\n }\n return { walletClient: this.#walletClient, account: this.#walletClient.account };\n }\n\n async getChainId(): Promise<number> {\n return this.#walletClient.getChainId();\n }\n\n async getAddress(): Promise<Address> {\n return this.#requireAccount().account.address;\n }\n\n async signTypedData(typedData: EIP712TypedData): Promise<Hex> {\n const { walletClient, account } = this.#requireAccount();\n const { EIP712Domain: _, ...sigTypes } = typedData.types;\n return walletClient.signTypedData({\n account,\n primaryType: typedData.primaryType,\n types: sigTypes,\n domain: typedData.domain,\n message: {\n ...typedData.message,\n startTimestamp: BigInt(typedData.message.startTimestamp),\n durationDays: BigInt(typedData.message.durationDays),\n },\n // Cast: EIP712TypedData is a union; viem cannot correlate primaryType/types/message across union members, so the inferred `message` collapses to `never`.\n } as Parameters<typeof walletClient.signTypedData>[0]);\n }\n\n async writeContract<\n const TAbi extends Abi | readonly unknown[],\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\">,\n const TArgs extends ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName>,\n >(config: WriteContractConfig<TAbi, TFunctionName, TArgs>): Promise<Hex> {\n const { walletClient, account } = this.#requireAccount();\n return walletClient.writeContract({\n chain: walletClient.chain,\n account,\n ...config,\n } as Parameters<typeof writeContract>[1]);\n }\n\n subscribe(onIdentityChange: SignerIdentityListener): () => void {\n return eip1193Subscribe({\n provider: this.#ethereum,\n getInitialIdentity: () => identityFromWalletClient(this.#walletClient),\n onIdentityChange,\n });\n }\n}\n","import type { FheChain } from \"../chains\";\nimport type { ZamaConfig } from \"../config/types\";\nimport { buildZamaConfig } from \"../config/build\";\nimport { ViemProvider } from \"./viem-provider\";\nimport { ViemSigner } from \"./viem-signer\";\nimport type { ZamaConfigViem } from \"./types\";\n\n/** Create a {@link ZamaConfig} from viem clients. */\nexport function createConfig<const TChains extends readonly [FheChain, ...FheChain[]]>(\n params: ZamaConfigViem<TChains>,\n): ZamaConfig {\n const signer = new ViemSigner({\n walletClient: params.walletClient,\n ethereum: params.ethereum,\n });\n const provider = new ViemProvider({ publicClient: params.publicClient });\n return buildZamaConfig(signer, provider, params);\n}\n","import type { PublicClient, WalletClient, Address, Hex } from \"viem\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\nimport {\n confidentialBalanceOfContract,\n confidentialTransferContract,\n finalizeUnwrapContract,\n setOperatorContract,\n supportsInterfaceContract,\n underlyingContract,\n unwrapContract,\n unwrapFromBalanceContract,\n wrapContract,\n getTokenPairsContract,\n getTokenPairsLengthContract,\n getTokenPairsSliceContract,\n getTokenPairContract,\n getConfidentialTokenAddressContract,\n getTokenAddressContract,\n isConfidentialTokenValidContract,\n} from \"../contracts\";\n\n// ── Helpers ────────────────────────────────────────────────\n\nfunction requireAccount(client: WalletClient) {\n if (!client.account) {\n throw new TypeError(\"WalletClient has no account\");\n }\n return client.account;\n}\n\n// ── Read helpers ────────────────────────────────────────────\n\nexport function readConfidentialBalanceOfContract(\n client: PublicClient,\n tokenAddress: Address,\n userAddress: Address,\n) {\n return client.readContract(confidentialBalanceOfContract(tokenAddress, userAddress));\n}\n\nexport function readUnderlyingTokenContract(client: PublicClient, wrapperAddress: Address) {\n return client.readContract(underlyingContract(wrapperAddress));\n}\n\nexport function readSupportsInterfaceContract(\n client: PublicClient,\n tokenAddress: Address,\n interfaceId: Address,\n) {\n return client.readContract(supportsInterfaceContract(tokenAddress, interfaceId));\n}\n\n// ── Write helpers ───────────────────────────────────────────\n\nexport function writeConfidentialTransferContract(\n client: WalletClient,\n tokenAddress: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...confidentialTransferContract(tokenAddress, to, handle, inputProof),\n });\n}\n\nexport function writeUnwrapContract(\n client: WalletClient,\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedAmount: Uint8Array,\n inputProof: Uint8Array,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...unwrapContract(encryptedErc20, from, to, encryptedAmount, inputProof),\n });\n}\n\nexport function writeUnwrapFromBalanceContract(\n client: WalletClient,\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedBalance: Handle,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...unwrapFromBalanceContract(encryptedErc20, from, to, encryptedBalance),\n });\n}\n\nexport function writeFinalizeUnwrapContract(\n client: WalletClient,\n wrapper: Address,\n unwrapRequestId: Handle,\n burntAmountCleartext: bigint,\n decryptionProof: Hex,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...finalizeUnwrapContract(wrapper, unwrapRequestId, burntAmountCleartext, decryptionProof),\n });\n}\n\nexport function writeSetOperatorContract(\n client: WalletClient,\n tokenAddress: Address,\n spender: Address,\n timestamp?: number,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...setOperatorContract(tokenAddress, spender, timestamp),\n });\n}\n\nexport function writeWrapContract(\n client: WalletClient,\n wrapperAddress: Address,\n to: Address,\n amount: bigint,\n) {\n return client.writeContract({\n chain: client.chain,\n account: requireAccount(client),\n ...wrapContract(wrapperAddress, to, amount),\n });\n}\n\n// ── Registry read helpers ──────────────────────────────────\n\nexport function readTokenPairsContract(client: PublicClient, registry: Address) {\n return client.readContract(getTokenPairsContract(registry));\n}\n\nexport function readTokenPairsLengthContract(client: PublicClient, registry: Address) {\n return client.readContract(getTokenPairsLengthContract(registry));\n}\n\nexport function readTokenPairsSliceContract(\n client: PublicClient,\n registry: Address,\n fromIndex: bigint,\n toIndex: bigint,\n) {\n return client.readContract(getTokenPairsSliceContract(registry, fromIndex, toIndex));\n}\n\nexport function readTokenPairContract(client: PublicClient, registry: Address, index: bigint) {\n return client.readContract(getTokenPairContract(registry, index));\n}\n\nexport function readConfidentialTokenAddressContract(\n client: PublicClient,\n registry: Address,\n tokenAddress: Address,\n) {\n return client.readContract(getConfidentialTokenAddressContract(registry, tokenAddress));\n}\n\nexport function readTokenAddressContract(\n client: PublicClient,\n registry: Address,\n confidentialTokenAddress: Address,\n) {\n return client.readContract(getTokenAddressContract(registry, confidentialTokenAddress));\n}\n\nexport function readIsConfidentialTokenValidContract(\n client: PublicClient,\n registry: Address,\n confidentialTokenAddress: Address,\n) {\n return client.readContract(isConfidentialTokenValidContract(registry, confidentialTokenAddress));\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{toHex as e}from"viem";const t=[{inputs:[],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`AddressEmptyCode`,type:`error`},{inputs:[],name:`CannotReceiveEthForTokenWrap`,type:`error`},{inputs:[{internalType:`address`,name:`implementation`,type:`address`}],name:`ERC1967InvalidImplementation`,type:`error`},{inputs:[],name:`ERC1967NonPayable`,type:`error`},{inputs:[{internalType:`uint256`,name:`requestId`,type:`uint256`}],name:`ERC7984InvalidGatewayRequest`,type:`error`},{inputs:[{internalType:`address`,name:`receiver`,type:`address`}],name:`ERC7984InvalidReceiver`,type:`error`},{inputs:[{internalType:`address`,name:`receiver`,type:`address`}],name:`ERC7984InvalidReceiver`,type:`error`},{inputs:[{internalType:`address`,name:`sender`,type:`address`}],name:`ERC7984InvalidSender`,type:`error`},{inputs:[],name:`ERC7984TotalSupplyOverflow`,type:`error`},{inputs:[{internalType:`address`,name:`caller`,type:`address`}],name:`ERC7984UnauthorizedCaller`,type:`error`},{inputs:[{internalType:`address`,name:`holder`,type:`address`},{internalType:`address`,name:`spender`,type:`address`}],name:`ERC7984UnauthorizedSpender`,type:`error`},{inputs:[{internalType:`euint64`,name:`amount`,type:`bytes32`},{internalType:`address`,name:`user`,type:`address`}],name:`ERC7984UnauthorizedUseOfEncryptedAmount`,type:`error`},{inputs:[{internalType:`address`,name:`holder`,type:`address`}],name:`ERC7984ZeroBalance`,type:`error`},{inputs:[],name:`FailedCall`,type:`error`},{inputs:[],name:`IncorrectEthAmount`,type:`error`},{inputs:[],name:`InvalidInitialization`,type:`error`},{inputs:[],name:`InvalidKMSSignatures`,type:`error`},{inputs:[{internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`}],name:`InvalidUnwrapRequest`,type:`error`},{inputs:[],name:`NotInitializing`,type:`error`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`OwnableInvalidOwner`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`OwnableUnauthorizedAccount`,type:`error`},{inputs:[],name:`ReentrancyGuardReentrantCall`,type:`error`},{inputs:[{internalType:`uint8`,name:`bits`,type:`uint8`},{internalType:`uint256`,name:`value`,type:`uint256`}],name:`SafeCastOverflowedUintDowncast`,type:`error`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`SafeERC20FailedOperation`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`SanctionedAddress`,type:`error`},{inputs:[{internalType:`bytes32`,name:`handle`,type:`bytes32`},{internalType:`address`,name:`sender`,type:`address`}],name:`SenderNotAllowedToUseHandle`,type:`error`},{inputs:[],name:`UUPSUnauthorizedCallContext`,type:`error`},{inputs:[{internalType:`bytes32`,name:`slot`,type:`bytes32`}],name:`UUPSUnsupportedProxiableUUID`,type:`error`},{inputs:[{internalType:`euint64`,name:`burntAmount`,type:`bytes32`},{internalType:`address`,name:`caller`,type:`address`},{internalType:`address`,name:`unwrapInitiator`,type:`address`}],name:`UnauthorizedFinalizeUnwrapCaller`,type:`error`},{inputs:[],name:`WrapperBalanceExceedsMaxSupply`,type:`error`},{inputs:[],name:`ZamaProtocolUnsupported`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`requester`,type:`address`}],name:`AmountDiscloseRequested`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`},{indexed:!1,internalType:`uint64`,name:`amount`,type:`uint64`}],name:`AmountDisclosed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`from`,type:`address`},{indexed:!1,internalType:`euint64`,name:`amount`,type:`bytes32`},{indexed:!1,internalType:`uint256`,name:`txId`,type:`uint256`}],name:`BurnInfo`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`from`,type:`address`},{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!0,internalType:`euint64`,name:`amount`,type:`bytes32`}],name:`ConfidentialTransfer`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint64`,name:`version`,type:`uint64`}],name:`Initialized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`uint64`,name:`amount`,type:`uint64`},{indexed:!1,internalType:`uint256`,name:`txId`,type:`uint256`}],name:`MintInfo`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`holder`,type:`address`},{indexed:!0,internalType:`address`,name:`operator`,type:`address`},{indexed:!1,internalType:`uint48`,name:`until`,type:`uint48`}],name:`OperatorSet`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bytes32[]`,name:`handlesList`,type:`bytes32[]`},{indexed:!1,internalType:`bytes`,name:`abiEncodedCleartexts`,type:`bytes`}],name:`PublicDecryptionVerified`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`oldRegulator`,type:`address`},{indexed:!0,internalType:`address`,name:`newRegulator`,type:`address`}],name:`TokenRegulatorUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`from`,type:`address`},{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`},{indexed:!1,internalType:`uint256`,name:`txId`,type:`uint256`}],name:`TransferInfo`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`},{indexed:!1,internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`},{indexed:!1,internalType:`uint64`,name:`cleartextAmount`,type:`uint64`}],name:`UnwrapFinalized`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`receiver`,type:`address`},{indexed:!0,internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`},{indexed:!1,internalType:`euint64`,name:`amount`,type:`bytes32`}],name:`UnwrapRequested`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`bool`,name:`returnVal`,type:`bool`},{indexed:!0,internalType:`uint256`,name:`requestId`,type:`uint256`},{indexed:!0,internalType:`uint256`,name:`txId`,type:`uint256`},{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`address`,name:`refund`,type:`address`},{indexed:!1,internalType:`euint64`,name:`requestedAmount`,type:`bytes32`},{indexed:!1,internalType:`euint64`,name:`burnAmount`,type:`bytes32`}],name:`UnwrappedStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`implementation`,type:`address`}],name:`Upgraded`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountIn`,type:`uint256`}],name:`Wrapped`,type:`event`},{inputs:[],name:`UPGRADE_INTERFACE_VERSION`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`confidentialBalanceOf`,outputs:[{internalType:`euint64`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`confidentialProtocolId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`confidentialTotalSupply`,outputs:[{internalType:`euint64`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`}],name:`confidentialTransfer`,outputs:[{internalType:`euint64`,name:``,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`}],name:`confidentialTransfer`,outputs:[{internalType:`euint64`,name:``,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`confidentialTransferAndCall`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`confidentialTransferAndCall`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`}],name:`confidentialTransferFrom`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`}],name:`confidentialTransferFrom`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`confidentialTransferFromAndCall`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`confidentialTransferFromAndCall`,outputs:[{internalType:`euint64`,name:`transferred`,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`contractURI`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`decimals`,outputs:[{internalType:`uint8`,name:``,type:`uint8`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`uint64`,name:`cleartextAmount`,type:`uint64`},{internalType:`bytes`,name:`decryptionProof`,type:`bytes`}],name:`discloseEncryptedAmount`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`},{internalType:`uint64`,name:`burntAmountCleartext`,type:`uint64`},{internalType:`bytes`,name:`decryptionProof`,type:`bytes`}],name:`finalizeUnwrap`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`string`,name:`name_`,type:`string`},{internalType:`string`,name:`symbol_`,type:`string`},{internalType:`string`,name:`contractURI_`,type:`string`},{internalType:`contract IERC20`,name:`underlying_`,type:`address`},{internalType:`address`,name:`owner_`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`holder`,type:`address`},{internalType:`address`,name:`spender`,type:`address`}],name:`isOperator`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`maxTotalSupply`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`name`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`nextTxId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`},{internalType:`address`,name:`from`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`onTransferReceived`,outputs:[{internalType:`bytes4`,name:``,type:`bytes4`}],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`proxiableUUID`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[],name:`rate`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`regulator`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`euint64`,name:`encryptedAmount`,type:`bytes32`}],name:`requestDiscloseEncryptedAmount`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`requestId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`operator`,type:`address`},{internalType:`uint48`,name:`until`,type:`uint48`}],name:`setOperator`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newRegulator`,type:`address`}],name:`setTokenRegulator`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`symbol`,outputs:[{internalType:`string`,name:``,type:`string`}],stateMutability:`view`,type:`function`},{inputs:[],name:`tokenRegulator`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`inferredTotalSupply`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`underlying`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`}],name:`unwrap`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`}],name:`unwrap`,outputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`}],name:`unwrapAmount`,outputs:[{internalType:`euint64`,name:``,type:`bytes32`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`unwrapRequestId`,type:`bytes32`}],name:`unwrapRequester`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`},{internalType:`address`,name:`refund`,type:`address`},{internalType:`bytes`,name:`unwrapCallbackData`,type:`bytes`}],name:`unwrapAndCall`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`},{internalType:`address`,name:`refund`,type:`address`},{internalType:`bytes`,name:`unwrapCallbackData`,type:`bytes`}],name:`unwrapAndCall`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`euint64`,name:`amount`,type:`bytes32`},{internalType:`address`,name:`refund`,type:`address`}],name:`unwrapWithRefund`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`from`,type:`address`},{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`},{internalType:`address`,name:`refund`,type:`address`}],name:`unwrapWithRefund`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newImplementation`,type:`address`},{internalType:`bytes`,name:`data`,type:`bytes`}],name:`upgradeToAndCall`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`},{internalType:`uint256`,name:`amount`,type:`uint256`}],name:`wrap`,outputs:[],stateMutability:`nonpayable`,type:`function`}],n=[{inputs:[],name:`totalSupply`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`}];function r(e,n){return{address:e,abi:t,functionName:`confidentialBalanceOf`,args:[n]}}function i(n,r,i,a){return{address:n,abi:t,functionName:`confidentialTransfer`,args:[r,e(i),e(a)]}}function a(n,r,i,a,o){return{address:n,abi:t,functionName:`confidentialTransferFrom`,args:[r,i,e(a),e(o)]}}function o(e,n,r){return{address:e,abi:t,functionName:`isOperator`,args:[n,r]}}function s(e,n,r){return{address:e,abi:t,functionName:`setOperator`,args:[n,r??Math.floor(Date.now()/1e3)+3600]}}function c(n,r,i,a,o){return{address:n,abi:t,functionName:`unwrap`,args:[r,i,e(a),e(o)]}}function l(e,n,r,i){return{address:e,abi:t,functionName:`unwrap`,args:[n,r,i]}}function u(e){return{address:e,abi:t,functionName:`confidentialTotalSupply`,args:[]}}function d(e){return{address:e,abi:n,functionName:`totalSupply`,args:[]}}function f(e){return{address:e,abi:t,functionName:`rate`,args:[]}}const p=[{type:`constructor`,inputs:[],stateMutability:`nonpayable`},{type:`function`,name:`UPGRADE_INTERFACE_VERSION`,inputs:[],outputs:[{name:``,type:`string`,internalType:`string`}],stateMutability:`view`},{type:`function`,name:`acceptOwnership`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`confidentialBalanceOf`,inputs:[{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`confidentialProtocolId`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`confidentialTotalSupply`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`confidentialTransfer`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransfer`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`bytes32`,internalType:`euint64`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferAndCall`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`bytes32`,internalType:`euint64`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferAndCall`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferFrom`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferFrom`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`bytes32`,internalType:`euint64`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferFromAndCall`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`confidentialTransferFromAndCall`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`bytes32`,internalType:`euint64`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`transferred`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`contractURI`,inputs:[],outputs:[{name:``,type:`string`,internalType:`string`}],stateMutability:`view`},{type:`function`,name:`decimals`,inputs:[],outputs:[{name:``,type:`uint8`,internalType:`uint8`}],stateMutability:`view`},{type:`function`,name:`discloseEncryptedAmount`,inputs:[{name:`encryptedAmount`,type:`bytes32`,internalType:`euint64`},{name:`cleartextAmount`,type:`uint64`,internalType:`uint64`},{name:`decryptionProof`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`finalizeUnwrap`,inputs:[{name:`unwrapRequestId`,type:`bytes32`,internalType:`bytes32`},{name:`burntAmountCleartext`,type:`uint64`,internalType:`uint64`},{name:`decryptionProof`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`initialize`,inputs:[{name:`name_`,type:`string`,internalType:`string`},{name:`symbol_`,type:`string`,internalType:`string`},{name:`contractURI_`,type:`string`,internalType:`string`},{name:`underlying_`,type:`address`,internalType:`contract IERC20`},{name:`owner_`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`isOperator`,inputs:[{name:`holder`,type:`address`,internalType:`address`},{name:`spender`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`maxTotalSupply`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`name`,inputs:[],outputs:[{name:``,type:`string`,internalType:`string`}],stateMutability:`view`},{type:`function`,name:`onTransferReceived`,inputs:[{name:``,type:`address`,internalType:`address`},{name:`from`,type:`address`,internalType:`address`},{name:`amount`,type:`uint256`,internalType:`uint256`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bytes4`,internalType:`bytes4`}],stateMutability:`nonpayable`},{type:`function`,name:`owner`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`pendingOwner`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`proxiableUUID`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`rate`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`renounceOwnership`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`requestDiscloseEncryptedAmount`,inputs:[{name:`encryptedAmount`,type:`bytes32`,internalType:`euint64`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`setOperator`,inputs:[{name:`operator`,type:`address`,internalType:`address`},{name:`until`,type:`uint48`,internalType:`uint48`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`supportsInterface`,inputs:[{name:`interfaceId`,type:`bytes4`,internalType:`bytes4`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`symbol`,inputs:[],outputs:[{name:``,type:`string`,internalType:`string`}],stateMutability:`view`},{type:`function`,name:`inferredTotalSupply`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`transferOwnership`,inputs:[{name:`newOwner`,type:`address`,internalType:`address`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`underlying`,inputs:[],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`unwrap`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`nonpayable`},{type:`function`,name:`unwrap`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`bytes32`,internalType:`euint64`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`nonpayable`},{type:`function`,name:`unwrapAmount`,inputs:[{name:`unwrapRequestId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`unwrapRequester`,inputs:[{name:`unwrapRequestId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`address`,internalType:`address`}],stateMutability:`view`},{type:`function`,name:`upgradeToAndCall`,inputs:[{name:`newImplementation`,type:`address`,internalType:`address`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`payable`},{type:`function`,name:`wrap`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`amount`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`event`,name:`AmountDiscloseRequested`,inputs:[{name:`encryptedAmount`,type:`bytes32`,indexed:!0,internalType:`euint64`},{name:`requester`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`AmountDisclosed`,inputs:[{name:`encryptedAmount`,type:`bytes32`,indexed:!0,internalType:`euint64`},{name:`amount`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`ConfidentialTransfer`,inputs:[{name:`from`,type:`address`,indexed:!0,internalType:`address`},{name:`to`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!0,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Initialized`,inputs:[{name:`version`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`OperatorSet`,inputs:[{name:`holder`,type:`address`,indexed:!0,internalType:`address`},{name:`operator`,type:`address`,indexed:!0,internalType:`address`},{name:`until`,type:`uint48`,indexed:!1,internalType:`uint48`}],anonymous:!1},{type:`event`,name:`OwnershipTransferStarted`,inputs:[{name:`previousOwner`,type:`address`,indexed:!0,internalType:`address`},{name:`newOwner`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`OwnershipTransferred`,inputs:[{name:`previousOwner`,type:`address`,indexed:!0,internalType:`address`},{name:`newOwner`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`PublicDecryptionVerified`,inputs:[{name:`handlesList`,type:`bytes32[]`,indexed:!1,internalType:`bytes32[]`},{name:`abiEncodedCleartexts`,type:`bytes`,indexed:!1,internalType:`bytes`}],anonymous:!1},{type:`event`,name:`UnwrapFinalized`,inputs:[{name:`receiver`,type:`address`,indexed:!0,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,indexed:!1,internalType:`euint64`},{name:`cleartextAmount`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`UnwrapFinalized`,inputs:[{name:`receiver`,type:`address`,indexed:!0,internalType:`address`},{name:`unwrapRequestId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`encryptedAmount`,type:`bytes32`,indexed:!1,internalType:`euint64`},{name:`cleartextAmount`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`UnwrapRequested`,inputs:[{name:`receiver`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`UnwrapRequested`,inputs:[{name:`receiver`,type:`address`,indexed:!0,internalType:`address`},{name:`unwrapRequestId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Upgraded`,inputs:[{name:`implementation`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`error`,name:`AddressEmptyCode`,inputs:[{name:`target`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC1967InvalidImplementation`,inputs:[{name:`implementation`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC1967NonPayable`,inputs:[]},{type:`error`,name:`ERC7984InvalidGatewayRequest`,inputs:[{name:`requestId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`ERC7984InvalidReceiver`,inputs:[{name:`receiver`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984InvalidReceiver`,inputs:[{name:`receiver`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984InvalidSender`,inputs:[{name:`sender`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984TotalSupplyOverflow`,inputs:[]},{type:`error`,name:`ERC7984UnauthorizedCaller`,inputs:[{name:`caller`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984UnauthorizedSpender`,inputs:[{name:`holder`,type:`address`,internalType:`address`},{name:`spender`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984UnauthorizedUseOfEncryptedAmount`,inputs:[{name:`amount`,type:`bytes32`,internalType:`euint64`},{name:`user`,type:`address`,internalType:`address`}]},{type:`error`,name:`ERC7984ZeroBalance`,inputs:[{name:`holder`,type:`address`,internalType:`address`}]},{type:`error`,name:`FailedCall`,inputs:[]},{type:`error`,name:`InvalidInitialization`,inputs:[]},{type:`error`,name:`InvalidKMSSignatures`,inputs:[]},{type:`error`,name:`InvalidUnwrapRequest`,inputs:[{name:`unwrapRequestId`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`NotInitializing`,inputs:[]},{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:`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:`UUPSUnauthorizedCallContext`,inputs:[]},{type:`error`,name:`UUPSUnsupportedProxiableUUID`,inputs:[{name:`slot`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`ZamaProtocolUnsupported`,inputs:[]}];function m(e,t,n,r){return{address:e,abi:p,functionName:`finalizeUnwrap`,args:[t,n,r]}}function h(e){return{address:e,abi:p,functionName:`underlying`,args:[]}}function g(e){return{address:e,abi:p,functionName:`inferredTotalSupply`,args:[]}}function _(e,t,n){return{address:e,abi:p,functionName:`wrap`,args:[t,n]}}const v=[{inputs:[{internalType:`bytes4`,name:`interfaceId`,type:`bytes4`}],name:`supportsInterface`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`}],y=`0x4958f2a4`,b=`0xd04584ba`,x=`0x1f1c62b2`;function S(e,t){return{address:e,abi:v,functionName:`supportsInterface`,args:[t]}}function C(e){return S(e,y)}function w(e){return S(e,b)}const T=[{inputs:[],name:`getTokenConfidentialTokenPairs`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`address`,name:`confidentialTokenAddress`,type:`address`},{internalType:`bool`,name:`isValid`,type:`bool`}],internalType:`struct ConfidentialTokenWrappersRegistry.TokenWrapperPair[]`,name:``,type:`tuple[]`}],stateMutability:`view`,type:`function`},{inputs:[],name:`getTokenConfidentialTokenPairsLength`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`fromIndex`,type:`uint256`},{internalType:`uint256`,name:`toIndex`,type:`uint256`}],name:`getTokenConfidentialTokenPairsSlice`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`address`,name:`confidentialTokenAddress`,type:`address`},{internalType:`bool`,name:`isValid`,type:`bool`}],internalType:`struct ConfidentialTokenWrappersRegistry.TokenWrapperPair[]`,name:``,type:`tuple[]`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`uint256`,name:`index`,type:`uint256`}],name:`getTokenConfidentialTokenPair`,outputs:[{components:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`address`,name:`confidentialTokenAddress`,type:`address`},{internalType:`bool`,name:`isValid`,type:`bool`}],internalType:`struct ConfidentialTokenWrappersRegistry.TokenWrapperPair`,name:``,type:`tuple`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`tokenAddress`,type:`address`}],name:`getConfidentialTokenAddress`,outputs:[{internalType:`bool`,name:``,type:`bool`},{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`confidentialTokenAddress`,type:`address`}],name:`getTokenAddress`,outputs:[{internalType:`bool`,name:``,type:`bool`},{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`confidentialTokenAddress`,type:`address`}],name:`isConfidentialTokenValid`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`initialOwner`,type:`address`}],name:`initialize`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`tokenAddress`,type:`address`},{internalType:`address`,name:`confidentialTokenAddress`,type:`address`}],name:`registerConfidentialToken`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`confidentialTokenAddress`,type:`address`}],name:`revokeConfidentialToken`,outputs:[],stateMutability:`nonpayable`,type:`function`}];function E(e){return{address:e,abi:T,functionName:`getTokenConfidentialTokenPairs`,args:[]}}function D(e){return{address:e,abi:T,functionName:`getTokenConfidentialTokenPairsLength`,args:[]}}function O(e,t,n){return{address:e,abi:T,functionName:`getTokenConfidentialTokenPairsSlice`,args:[t,n]}}function k(e,t){return{address:e,abi:T,functionName:`getTokenConfidentialTokenPair`,args:[t]}}function A(e,t){return{address:e,abi:T,functionName:`getConfidentialTokenAddress`,args:[t]}}function j(e,t){return{address:e,abi:T,functionName:`getTokenAddress`,args:[t]}}function M(e,t){return{address:e,abi:T,functionName:`isConfidentialTokenValid`,args:[t]}}export{f as C,l as D,c as E,o as S,d as T,_,D as a,i as b,y as c,C as d,w as f,h as g,g as h,E as i,x as l,m,j as n,O as o,S as p,k as r,M as s,A as t,b as u,r as v,s as w,a as x,u as y};
|
|
2
|
+
//# sourceMappingURL=wrappers-registry-CXNs4eR0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrappers-registry-CXNs4eR0.js","names":[],"sources":["../../src/abi/encrypted.abi.ts","../../src/contracts/encrypted.ts","../../src/abi/wrapper.abi.ts","../../src/contracts/wrapper.ts","../../src/abi/erc165.abi.ts","../../src/contracts/erc165.ts","../../src/contracts/wrappers-registry.ts"],"sourcesContent":["export const encryptedAbi = [\n {\n inputs: [],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n ],\n name: \"AddressEmptyCode\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"CannotReceiveEthForTokenWrap\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"ERC1967InvalidImplementation\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC1967NonPayable\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n ],\n name: \"ERC7984InvalidGatewayRequest\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidSender\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC7984TotalSupplyOverflow\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedCaller\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedSpender\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"user\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedUseOfEncryptedAmount\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n ],\n name: \"ERC7984ZeroBalance\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"FailedCall\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"IncorrectEthAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidInitialization\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidKMSSignatures\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n ],\n name: \"InvalidUnwrapRequest\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"NotInitializing\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"OwnableInvalidOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"OwnableUnauthorizedAccount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReentrancyGuardReentrantCall\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint8\",\n name: \"bits\",\n type: \"uint8\",\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n ],\n name: \"SafeCastOverflowedUintDowncast\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n ],\n name: \"SafeERC20FailedOperation\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"SanctionedAddress\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"handle\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"SenderNotAllowedToUseHandle\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"UUPSUnauthorizedCallContext\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"slot\",\n type: \"bytes32\",\n },\n ],\n name: \"UUPSUnsupportedProxiableUUID\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"unwrapInitiator\",\n type: \"address\",\n },\n ],\n name: \"UnauthorizedFinalizeUnwrapCaller\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"WrapperBalanceExceedsMaxSupply\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZamaProtocolUnsupported\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"requester\",\n type: \"address\",\n },\n ],\n name: \"AmountDiscloseRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n ],\n name: \"AmountDisclosed\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"BurnInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"ConfidentialTransfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"version\",\n type: \"uint64\",\n },\n ],\n name: \"Initialized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"MintInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"OperatorSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32[]\",\n name: \"handlesList\",\n type: \"bytes32[]\",\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"abiEncodedCleartexts\",\n type: \"bytes\",\n },\n ],\n name: \"PublicDecryptionVerified\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"oldRegulator\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"TokenRegulatorUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"TransferInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n ],\n name: \"UnwrapFinalized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrapRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"returnVal\",\n type: \"bool\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"requestedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"burnAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrappedStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"Upgraded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountIn\",\n type: \"uint256\",\n },\n ],\n name: \"Wrapped\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"UPGRADE_INTERFACE_VERSION\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"confidentialBalanceOf\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialProtocolId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialTotalSupply\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"contractURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"discloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"burntAmountCleartext\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"finalizeUnwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"name_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"contractURI_\",\n type: \"string\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"underlying_\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"owner_\",\n type: \"address\",\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"isOperator\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxTotalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"nextTxId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"onTransferReceived\",\n outputs: [\n {\n internalType: \"bytes4\",\n name: \"\",\n type: \"bytes4\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"pendingOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"proxiableUUID\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"rate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"regulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"requestDiscloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"requestId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"setOperator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"setTokenRegulator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenRegulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"inferredTotalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"underlying\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"unwrap\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"unwrap\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n ],\n name: \"unwrapAmount\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n },\n ],\n name: \"unwrapRequester\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"upgradeToAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"wrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n] as const;\n","import type { Address } from \"viem\";\nimport { toHex } from \"viem\";\nimport { encryptedAbi } from \"../abi/encrypted.abi\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\n\nconst legacyTotalSupplyAbi = [\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\n/**\n * Returns the contract config to read an encrypted balance.\n *\n * @example\n * ```ts\n * const handle = await provider.readContract(\n * confidentialBalanceOfContract(tokenAddress, userAddress),\n * );\n * ```\n */\nexport function confidentialBalanceOfContract(tokenAddress: Address, userAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"confidentialBalanceOf\",\n args: [userAddress],\n } as const;\n}\n\n/**\n * Returns the contract config for a confidential transfer.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * confidentialTransferContract(tokenAddress, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function confidentialTransferContract(\n encryptedErc20: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"confidentialTransfer\",\n args: [to, toHex(handle), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for a confidential transferFrom.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * confidentialTransferFromContract(tokenAddress, from, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function confidentialTransferFromContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"confidentialTransferFrom\",\n args: [from, to, toHex(handle), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for checking operator status.\n *\n * @example\n * ```ts\n * const isApproved = await provider.readContract(\n * isOperatorContract(tokenAddress, holder, spender),\n * );\n * ```\n */\nexport function isOperatorContract(tokenAddress: Address, holder: Address, spender: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"isOperator\",\n args: [holder, spender],\n } as const;\n}\n\n/**\n * Returns the contract config for setting an operator.\n * Defaults timestamp to 1 hour from now.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * setOperatorContract(tokenAddress, spender),\n * );\n * ```\n */\nexport function setOperatorContract(tokenAddress: Address, spender: Address, timestamp?: number) {\n const until = timestamp ?? Math.floor(Date.now() / 1000) + 3600;\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"setOperator\",\n args: [spender, until],\n } as const;\n}\n\n/**\n * Returns the contract config for an unwrap with newly encrypted amount.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * unwrapContract(encryptedErc20, from, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function unwrapContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedAmount: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"unwrap\",\n args: [from, to, toHex(encryptedAmount), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for an unwrap with an existing balance handle.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * unwrapFromBalanceContract(encryptedErc20, from, to, encryptedBalance),\n * );\n * ```\n */\nexport function unwrapFromBalanceContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedBalance: Handle,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"unwrap\",\n args: [from, to, encryptedBalance],\n } as const;\n}\n\n/**\n * Returns the contract config to read the confidential (encrypted) total supply.\n *\n * @example\n * ```ts\n * const handle = await provider.readContract(\n * confidentialTotalSupplyContract(tokenAddress),\n * );\n * ```\n */\nexport function confidentialTotalSupplyContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"confidentialTotalSupply\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the legacy plaintext total supply.\n *\n * @deprecated Prefer higher-level APIs such as `totalSupplyQueryOptions` / `useTotalSupply`,\n * which choose between legacy `totalSupply()` and upgraded `inferredTotalSupply()` via ERC-165.\n *\n * @example\n * ```ts\n * const supply = await provider.readContract(\n * totalSupplyContract(wrapperAddress),\n * );\n * ```\n */\nexport function totalSupplyContract(wrapperAddress: Address) {\n return {\n address: wrapperAddress,\n abi: legacyTotalSupplyAbi,\n functionName: \"totalSupply\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the wrap/unwrap conversion rate.\n *\n * @example\n * ```ts\n * const rate = await provider.readContract(rateContract(tokenAddress));\n * ```\n */\nexport function rateContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"rate\",\n args: [],\n } as const;\n}\n","export const wrapperAbi = [\n {\n type: \"constructor\",\n inputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"UPGRADE_INTERFACE_VERSION\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"acceptOwnership\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialBalanceOf\",\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"confidentialProtocolId\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"confidentialTotalSupply\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"confidentialTransfer\",\n inputs: [\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"externalEuint64\",\n },\n {\n name: \"inputProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransfer\",\n inputs: [\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferAndCall\",\n inputs: [\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferAndCall\",\n inputs: [\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"externalEuint64\",\n },\n {\n name: \"inputProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferFrom\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"externalEuint64\",\n },\n {\n name: \"inputProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferFrom\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferFromAndCall\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"externalEuint64\",\n },\n {\n name: \"inputProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"confidentialTransferFromAndCall\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"transferred\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"contractURI\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint8\",\n internalType: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"discloseEncryptedAmount\",\n inputs: [\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n {\n name: \"cleartextAmount\",\n type: \"uint64\",\n internalType: \"uint64\",\n },\n {\n name: \"decryptionProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"finalizeUnwrap\",\n inputs: [\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n {\n name: \"burntAmountCleartext\",\n type: \"uint64\",\n internalType: \"uint64\",\n },\n {\n name: \"decryptionProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"initialize\",\n inputs: [\n {\n name: \"name_\",\n type: \"string\",\n internalType: \"string\",\n },\n {\n name: \"symbol_\",\n type: \"string\",\n internalType: \"string\",\n },\n {\n name: \"contractURI_\",\n type: \"string\",\n internalType: \"string\",\n },\n {\n name: \"underlying_\",\n type: \"address\",\n internalType: \"contract IERC20\",\n },\n {\n name: \"owner_\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"isOperator\",\n inputs: [\n {\n name: \"holder\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n internalType: \"bool\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"maxTotalSupply\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"name\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onTransferReceived\",\n inputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pendingOwner\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"proxiableUUID\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"rate\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"renounceOwnership\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"requestDiscloseEncryptedAmount\",\n inputs: [\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setOperator\",\n inputs: [\n {\n name: \"operator\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"until\",\n type: \"uint48\",\n internalType: \"uint48\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [\n {\n name: \"interfaceId\",\n type: \"bytes4\",\n internalType: \"bytes4\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n internalType: \"bool\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"symbol\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\",\n internalType: \"string\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"inferredTotalSupply\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [\n {\n name: \"newOwner\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"underlying\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"unwrap\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n internalType: \"externalEuint64\",\n },\n {\n name: \"inputProof\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"unwrap\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"unwrapAmount\",\n inputs: [\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"unwrapRequester\",\n inputs: [\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"upgradeToAndCall\",\n inputs: [\n {\n name: \"newImplementation\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"data\",\n type: \"bytes\",\n internalType: \"bytes\",\n },\n ],\n outputs: [],\n stateMutability: \"payable\",\n },\n {\n type: \"function\",\n name: \"wrap\",\n inputs: [\n {\n name: \"to\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"event\",\n name: \"AmountDiscloseRequested\",\n inputs: [\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n indexed: true,\n internalType: \"euint64\",\n },\n {\n name: \"requester\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"AmountDisclosed\",\n inputs: [\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n indexed: true,\n internalType: \"euint64\",\n },\n {\n name: \"amount\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ConfidentialTransfer\",\n inputs: [\n {\n name: \"from\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"to\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n indexed: true,\n internalType: \"euint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Initialized\",\n inputs: [\n {\n name: \"version\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OperatorSet\",\n inputs: [\n {\n name: \"holder\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"operator\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"until\",\n type: \"uint48\",\n indexed: false,\n internalType: \"uint48\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferStarted\",\n inputs: [\n {\n name: \"previousOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n {\n name: \"previousOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"PublicDecryptionVerified\",\n inputs: [\n {\n name: \"handlesList\",\n type: \"bytes32[]\",\n indexed: false,\n internalType: \"bytes32[]\",\n },\n {\n name: \"abiEncodedCleartexts\",\n type: \"bytes\",\n indexed: false,\n internalType: \"bytes\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"UnwrapFinalized\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n indexed: false,\n internalType: \"euint64\",\n },\n {\n name: \"cleartextAmount\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"UnwrapFinalized\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n indexed: true,\n internalType: \"bytes32\",\n },\n {\n name: \"encryptedAmount\",\n type: \"bytes32\",\n indexed: false,\n internalType: \"euint64\",\n },\n {\n name: \"cleartextAmount\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"UnwrapRequested\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n indexed: false,\n internalType: \"euint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"UnwrapRequested\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n indexed: true,\n internalType: \"bytes32\",\n },\n {\n name: \"amount\",\n type: \"bytes32\",\n indexed: false,\n internalType: \"euint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Upgraded\",\n inputs: [\n {\n name: \"implementation\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AddressEmptyCode\",\n inputs: [\n {\n name: \"target\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC1967InvalidImplementation\",\n inputs: [\n {\n name: \"implementation\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC1967NonPayable\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"ERC7984InvalidGatewayRequest\",\n inputs: [\n {\n name: \"requestId\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984InvalidReceiver\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984InvalidReceiver\",\n inputs: [\n {\n name: \"receiver\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984InvalidSender\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984TotalSupplyOverflow\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"ERC7984UnauthorizedCaller\",\n inputs: [\n {\n name: \"caller\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984UnauthorizedSpender\",\n inputs: [\n {\n name: \"holder\",\n type: \"address\",\n internalType: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984UnauthorizedUseOfEncryptedAmount\",\n inputs: [\n {\n name: \"amount\",\n type: \"bytes32\",\n internalType: \"euint64\",\n },\n {\n name: \"user\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ERC7984ZeroBalance\",\n inputs: [\n {\n name: \"holder\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"FailedCall\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"InvalidInitialization\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"InvalidKMSSignatures\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"InvalidUnwrapRequest\",\n inputs: [\n {\n name: \"unwrapRequestId\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"NotInitializing\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"OwnableInvalidOwner\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"OwnableUnauthorizedAccount\",\n inputs: [\n {\n name: \"account\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"SafeCastOverflowedUintDowncast\",\n inputs: [\n {\n name: \"bits\",\n type: \"uint8\",\n internalType: \"uint8\",\n },\n {\n name: \"value\",\n type: \"uint256\",\n internalType: \"uint256\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"SafeERC20FailedOperation\",\n inputs: [\n {\n name: \"token\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"SenderNotAllowedToUseHandle\",\n inputs: [\n {\n name: \"handle\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n {\n name: \"sender\",\n type: \"address\",\n internalType: \"address\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"UUPSUnauthorizedCallContext\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"UUPSUnsupportedProxiableUUID\",\n inputs: [\n {\n name: \"slot\",\n type: \"bytes32\",\n internalType: \"bytes32\",\n },\n ],\n },\n {\n type: \"error\",\n name: \"ZamaProtocolUnsupported\",\n inputs: [],\n },\n] as const;\n","import type { Address, Hex } from \"viem\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\nimport { wrapperAbi } from \"../abi/wrapper.abi\";\n\n/**\n * Returns the contract config for finalizing an unwrap.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * finalizeUnwrapContract(wrapper, unwrapRequestIdOrAmount, cleartext, proof),\n * );\n * ```\n */\nexport function finalizeUnwrapContract(\n wrapper: Address,\n unwrapRequestIdOrAmount: Handle,\n unwrapAmountCleartext: bigint,\n decryptionProof: Hex,\n) {\n return {\n address: wrapper,\n abi: wrapperAbi,\n functionName: \"finalizeUnwrap\",\n args: [unwrapRequestIdOrAmount, unwrapAmountCleartext, decryptionProof],\n } as const;\n}\n\n/**\n * Returns the contract config to read the underlying ERC-20 token of a wrapper.\n *\n * @example\n * ```ts\n * const token = await provider.readContract(underlyingContract(wrapperAddress));\n * ```\n */\nexport function underlyingContract(wrapperAddress: Address) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"underlying\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the inferred plaintext total supply.\n *\n * @example\n * ```ts\n * const supply = await provider.readContract(\n * inferredTotalSupplyContract(wrapperAddress),\n * );\n * ```\n */\nexport function inferredTotalSupplyContract(wrapperAddress: Address) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"inferredTotalSupply\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config for a wrap (shield) operation.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * wrapContract(wrapperAddress, to, amount),\n * );\n * ```\n */\nexport function wrapContract(wrapperAddress: Address, to: Address, amount: bigint) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"wrap\",\n args: [to, amount],\n } as const;\n}\n","export const erc165Abi = [\n {\n inputs: [{ internalType: \"bytes4\", name: \"interfaceId\", type: \"bytes4\" }],\n name: \"supportsInterface\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n","import type { Address } from \"viem\";\nimport { erc165Abi } from \"../abi/erc165.abi\";\n\n/** ERC-165 interface ID for IERC7984 (confidential fungible token). */\nexport const ERC7984_INTERFACE_ID = \"0x4958f2a4\" as const;\n\n/** ERC-165 interface ID for IERC7984ERC20Wrapper (confidential wrapper) — current deployed baseline. */\nexport const ERC7984_WRAPPER_INTERFACE_ID_LEGACY = \"0xd04584ba\" as const;\n\n/**\n * ERC-165 interface ID for IERC7984ERC20Wrapper (confidential wrapper) — upgraded interface.\n *\n * Verified against the protocol-apps upgraded wrapper line: commit b06eb263 asserts\n * `supportsInterface(0x1f1c62b2)` for `type(IERC7984ERC20Wrapper).interfaceId`,\n * and the implementation exposes `inferredTotalSupply()`.\n * During the transition period, both {@link ERC7984_WRAPPER_INTERFACE_ID_LEGACY} and this\n * constant must be checked to support old and new wrappers simultaneously.\n *\n * @see {@link ERC7984_WRAPPER_INTERFACE_ID_LEGACY} for the legacy interface ID.\n */\nexport const ERC7984_WRAPPER_INTERFACE_ID = \"0x1f1c62b2\" as const;\n\n/**\n * Returns the contract config for an ERC-165 `supportsInterface` check.\n *\n * Use with {@link ERC7984_INTERFACE_ID} to detect confidential tokens,\n * or {@link ERC7984_WRAPPER_INTERFACE_ID_LEGACY} / {@link ERC7984_WRAPPER_INTERFACE_ID}\n * to detect wrappers (both must be checked during the transition period).\n *\n * @example\n * ```ts\n * const isConfidential = await provider.readContract(\n * supportsInterfaceContract(tokenAddress, ERC7984_INTERFACE_ID),\n * );\n * ```\n */\nexport function supportsInterfaceContract(tokenAddress: Address, interfaceId: Address) {\n return {\n address: tokenAddress,\n abi: erc165Abi,\n functionName: \"supportsInterface\",\n args: [interfaceId],\n } as const;\n}\n\n/**\n * Returns contract config to check if a token implements IERC7984 (confidential fungible token).\n *\n * @example\n * ```ts\n * const isConfidential = await provider.readContract(\n * isConfidentialTokenContract(\"0xTokenAddress\"),\n * );\n * ```\n */\nexport function isConfidentialTokenContract(tokenAddress: Address) {\n return supportsInterfaceContract(tokenAddress, ERC7984_INTERFACE_ID);\n}\n\n/**\n * Returns contract config to check if a token implements IERC7984ERC20Wrapper (confidential wrapper)\n * using the **current deployed baseline** interface ID\n * ({@link ERC7984_WRAPPER_INTERFACE_ID_LEGACY}, `0xd04584ba`).\n *\n * Note: During the transition period, calling this alone is insufficient. Upgraded wrappers\n * respond only to {@link ERC7984_WRAPPER_INTERFACE_ID}. Prefer higher-level APIs\n * (`ReadonlyToken.isWrapper()`, `isWrapperQueryOptions()`) which check both interface IDs.\n *\n * @example\n * ```ts\n * const isWrapper = await provider.readContract(\n * isConfidentialWrapperContract(\"0xWrapperAddress\"),\n * );\n * ```\n */\nexport function isConfidentialWrapperContract(tokenAddress: Address) {\n return supportsInterfaceContract(tokenAddress, ERC7984_WRAPPER_INTERFACE_ID_LEGACY);\n}\n","import type { Address } from \"viem\";\n\nexport const wrappersRegistryAbi = [\n {\n inputs: [],\n name: \"getTokenConfidentialTokenPairs\",\n outputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenAddress\", type: \"address\" },\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n { internalType: \"bool\", name: \"isValid\", type: \"bool\" },\n ],\n internalType: \"struct ConfidentialTokenWrappersRegistry.TokenWrapperPair[]\",\n name: \"\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTokenConfidentialTokenPairsLength\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"fromIndex\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"toIndex\", type: \"uint256\" },\n ],\n name: \"getTokenConfidentialTokenPairsSlice\",\n outputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenAddress\", type: \"address\" },\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n { internalType: \"bool\", name: \"isValid\", type: \"bool\" },\n ],\n internalType: \"struct ConfidentialTokenWrappersRegistry.TokenWrapperPair[]\",\n name: \"\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"index\", type: \"uint256\" }],\n name: \"getTokenConfidentialTokenPair\",\n outputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenAddress\", type: \"address\" },\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n { internalType: \"bool\", name: \"isValid\", type: \"bool\" },\n ],\n internalType: \"struct ConfidentialTokenWrappersRegistry.TokenWrapperPair\",\n name: \"\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"tokenAddress\", type: \"address\" }],\n name: \"getConfidentialTokenAddress\",\n outputs: [\n { internalType: \"bool\", name: \"\", type: \"bool\" },\n { internalType: \"address\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n ],\n name: \"getTokenAddress\",\n outputs: [\n { internalType: \"bool\", name: \"\", type: \"bool\" },\n { internalType: \"address\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n ],\n name: \"isConfidentialTokenValid\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"initialOwner\", type: \"address\" }],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenAddress\", type: \"address\" },\n { internalType: \"address\", name: \"confidentialTokenAddress\", type: \"address\" },\n ],\n name: \"registerConfidentialToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"confidentialTokenAddress\",\n type: \"address\",\n },\n ],\n name: \"revokeConfidentialToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n] as const;\n\nexport interface TokenWrapperPair {\n readonly tokenAddress: Address;\n readonly confidentialTokenAddress: Address;\n readonly isValid: boolean;\n}\n\n/** Extended pair with on-chain metadata for both tokens. */\nexport interface TokenWrapperPairWithMetadata extends TokenWrapperPair {\n readonly underlying: {\n readonly name: string;\n readonly symbol: string;\n readonly decimals: number;\n readonly totalSupply: bigint;\n };\n readonly confidential: {\n readonly name: string;\n readonly symbol: string;\n readonly decimals: number;\n };\n}\n\n/** Paginated result set modelled after standard API pagination. */\nexport interface PaginatedResult<T> {\n readonly items: readonly T[];\n readonly total: number;\n readonly page: number;\n readonly pageSize: number;\n}\n\n/**\n * Returns the contract config to fetch all token wrapper pairs.\n *\n * @example\n * ```ts\n * const pairs = await client.readContract(\n * getTokenPairsContract(registryAddress),\n * );\n * ```\n */\nexport function getTokenPairsContract(registry: Address) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getTokenConfidentialTokenPairs\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to get the number of token wrapper pairs.\n *\n * @example\n * ```ts\n * const length = await client.readContract(\n * getTokenPairsLengthContract(registryAddress),\n * );\n * ```\n */\nexport function getTokenPairsLengthContract(registry: Address) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getTokenConfidentialTokenPairsLength\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to fetch a slice of token wrapper pairs.\n *\n * @example\n * ```ts\n * const pairs = await client.readContract(\n * getTokenPairsSliceContract(registryAddress, 0n, 10n),\n * );\n * ```\n */\nexport function getTokenPairsSliceContract(registry: Address, fromIndex: bigint, toIndex: bigint) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getTokenConfidentialTokenPairsSlice\",\n args: [fromIndex, toIndex],\n } as const;\n}\n\n/**\n * Returns the contract config to fetch a single token wrapper pair by index.\n *\n * @example\n * ```ts\n * const pair = await client.readContract(\n * getTokenPairContract(registryAddress, 0n),\n * );\n * ```\n */\nexport function getTokenPairContract(registry: Address, index: bigint) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getTokenConfidentialTokenPair\",\n args: [index],\n } as const;\n}\n\n/**\n * Returns the contract config to look up the confidential token for a given plain token.\n *\n * @example\n * ```ts\n * const [isValid, confidentialToken] = await client.readContract(\n * getConfidentialTokenAddressContract(registryAddress, tokenAddress),\n * );\n * // isValid=false + confidentialToken=zeroAddress → not registered\n * // isValid=false + confidentialToken=nonZeroAddress → registered but revoked\n * // isValid=true + confidentialToken=nonZeroAddress → registered and valid\n * ```\n */\nexport function getConfidentialTokenAddressContract(registry: Address, tokenAddress: Address) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getConfidentialTokenAddress\",\n args: [tokenAddress],\n } as const;\n}\n\n/**\n * Returns the contract config to look up the plain token for a given confidential token.\n *\n * @example\n * ```ts\n * const [isValid, token] = await client.readContract(\n * getTokenAddressContract(registryAddress, confidentialTokenAddress),\n * );\n * // isValid=false + token=zeroAddress → not registered\n * // isValid=false + token=nonZeroAddress → registered but revoked\n * // isValid=true + token=nonZeroAddress → registered and valid\n * ```\n */\nexport function getTokenAddressContract(registry: Address, confidentialTokenAddress: Address) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"getTokenAddress\",\n args: [confidentialTokenAddress],\n } as const;\n}\n\n/**\n * Returns the contract config to check if a confidential token is valid.\n *\n * @example\n * ```ts\n * const isValid = await client.readContract(\n * isConfidentialTokenValidContract(registryAddress, confidentialTokenAddress),\n * );\n * ```\n */\nexport function isConfidentialTokenValidContract(\n registry: Address,\n confidentialTokenAddress: Address,\n) {\n return {\n address: registry,\n abi: wrappersRegistryAbi,\n functionName: \"isConfidentialTokenValid\",\n args: [confidentialTokenAddress],\n } as const;\n}\n"],"mappings":"6BAAA,MAAa,EAAe,CAC1B,CACE,OAAQ,EAAE,CACV,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,0CACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,wBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,mCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,YACd,KAAM,cACN,KAAM,YACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,uBACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,eACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,OACd,KAAM,YACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,UACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,4BACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,yBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,QACd,KAAM,GACN,KAAM,QACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,0BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,uBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,eACN,KAAM,SACP,CACD,CACE,aAAc,kBACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,qBACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,cACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,SACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,SACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,OACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACF,CChqDK,EAAuB,CAC3B,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CAAC,CAAE,aAAc,UAAW,KAAM,GAAI,KAAM,UAAW,CAAC,CACjE,gBAAiB,OACjB,KAAM,WACP,CACF,CAYD,SAAgB,EAA8B,EAAuB,EAAsB,CACzF,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,wBACd,KAAM,CAAC,EAAY,CACpB,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,uBACd,KAAM,CAAC,EAAI,EAAM,EAAO,CAAE,EAAM,EAAW,CAAC,CAC7C,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,2BACd,KAAM,CAAC,EAAM,EAAI,EAAM,EAAO,CAAE,EAAM,EAAW,CAAC,CACnD,CAaH,SAAgB,EAAmB,EAAuB,EAAiB,EAAkB,CAC3F,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,aACd,KAAM,CAAC,EAAQ,EAAQ,CACxB,CAcH,SAAgB,EAAoB,EAAuB,EAAkB,EAAoB,CAE/F,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,cACd,KAAM,CAAC,EALK,GAAa,KAAK,MAAM,KAAK,KAAK,CAAG,IAAK,CAAG,KAKnC,CACvB,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,SACd,KAAM,CAAC,EAAM,EAAI,EAAM,EAAgB,CAAE,EAAM,EAAW,CAAC,CAC5D,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,SACd,KAAM,CAAC,EAAM,EAAI,EAAiB,CACnC,CAaH,SAAgB,EAAgC,EAAuB,CACrE,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,0BACd,KAAM,EAAE,CACT,CAgBH,SAAgB,EAAoB,EAAyB,CAC3D,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,cACd,KAAM,EAAE,CACT,CAWH,SAAgB,EAAa,EAAuB,CAClD,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,OACd,KAAM,EAAE,CACT,CCnOH,MAAa,EAAa,CACxB,CACE,KAAM,cACN,OAAQ,EAAE,CACV,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,4BACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACN,aAAc,SACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,kBACN,OAAQ,EAAE,CACV,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,wBACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,yBACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,0BACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,aACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,8BACN,OAAQ,CACN,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,8BACN,OAAQ,CACN,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,aACN,KAAM,QACN,aAAc,QACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,aACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,kCACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,aACN,KAAM,QACN,aAAc,QACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,kCACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,cACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,cACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACN,aAAc,SACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,WACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,QACN,aAAc,QACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,0BACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,SACN,aAAc,SACf,CACD,CACE,KAAM,kBACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,iBACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,uBACN,KAAM,SACN,aAAc,SACf,CACD,CACE,KAAM,kBACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,aACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,SACN,aAAc,SACf,CACD,CACE,KAAM,UACN,KAAM,SACN,aAAc,SACf,CACD,CACE,KAAM,eACN,KAAM,SACN,aAAc,SACf,CACD,CACE,KAAM,cACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,aACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,UACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,OACN,aAAc,OACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,iBACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,OACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACN,aAAc,SACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,qBACN,OAAQ,CACN,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACN,aAAc,SACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,QACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,eACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,gBACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,OACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,oBACN,OAAQ,EAAE,CACV,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,iCACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,cACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,QACN,KAAM,SACN,aAAc,SACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,oBACN,OAAQ,CACN,CACE,KAAM,cACN,KAAM,SACN,aAAc,SACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,OACN,aAAc,OACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,SACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,SACN,aAAc,SACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,sBACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,oBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,aACN,OAAQ,EAAE,CACV,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,SACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,aAAc,kBACf,CACD,CACE,KAAM,aACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,SACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,aAClB,CACD,CACE,KAAM,WACN,KAAM,eACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,CACP,CACE,KAAM,GACN,KAAM,UACN,aAAc,UACf,CACF,CACD,gBAAiB,OAClB,CACD,CACE,KAAM,WACN,KAAM,mBACN,OAAQ,CACN,CACE,KAAM,oBACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,UAClB,CACD,CACE,KAAM,WACN,KAAM,OACN,OAAQ,CACN,CACE,KAAM,KACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACD,QAAS,EAAE,CACX,gBAAiB,aAClB,CACD,CACE,KAAM,QACN,KAAM,0BACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,YACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,SACN,QAAS,GACT,aAAc,SACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,KACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,cACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,SACN,QAAS,GACT,aAAc,SACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,cACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,QACN,KAAM,SACN,QAAS,GACT,aAAc,SACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,gBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,gBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,cACN,KAAM,YACN,QAAS,GACT,aAAc,YACf,CACD,CACE,KAAM,uBACN,KAAM,QACN,QAAS,GACT,aAAc,QACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,SACN,QAAS,GACT,aAAc,SACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,SACN,QAAS,GACT,aAAc,SACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,kBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,WACN,OAAQ,CACN,CACE,KAAM,iBACN,KAAM,UACN,QAAS,GACT,aAAc,UACf,CACF,CACD,UAAW,GACZ,CACD,CACE,KAAM,QACN,KAAM,mBACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,+BACN,OAAQ,CACN,CACE,KAAM,iBACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,oBACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,+BACN,OAAQ,CACN,CACE,KAAM,YACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,yBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,yBACN,OAAQ,CACN,CACE,KAAM,WACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,6BACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,4BACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,6BACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,UACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,0CACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,qBACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,aACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,wBACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,uBACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,uBACN,OAAQ,CACN,CACE,KAAM,kBACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,kBACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,sBACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,6BACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,iCACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,QACN,aAAc,QACf,CACD,CACE,KAAM,QACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,2BACN,OAAQ,CACN,CACE,KAAM,QACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,8BACN,OAAQ,CACN,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACD,CACE,KAAM,SACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CACE,KAAM,QACN,KAAM,8BACN,OAAQ,EAAE,CACX,CACD,CACE,KAAM,QACN,KAAM,+BACN,OAAQ,CACN,CACE,KAAM,OACN,KAAM,UACN,aAAc,UACf,CACF,CACF,CACD,CA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"}
|