@zama-fhe/react-sdk 3.0.0-alpha.3 → 3.0.0-alpha.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -883
- package/dist/index.d.ts +184 -227
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/wagmi/index.d.ts +9 -27
- package/dist/wagmi/index.js +1 -1
- package/dist/wagmi/index.js.map +1 -1
- package/package.json +4 -4
package/dist/wagmi/index.d.ts
CHANGED
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { ZamaConfig, ZamaConfigBase } from "@zama-fhe/sdk";
|
|
4
4
|
import { Config } from "wagmi";
|
|
5
|
+
import { AtLeastOneChain } from "@zama-fhe/sdk/chains";
|
|
5
6
|
|
|
6
|
-
//#region src/wagmi/
|
|
7
|
-
/**
|
|
8
|
-
interface
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* GenericSigner backed by wagmi.
|
|
13
|
-
*
|
|
14
|
-
* @param signerConfig - {@link WagmiSignerConfig} with wagmi config
|
|
15
|
-
*/
|
|
16
|
-
declare class WagmiSigner implements GenericSigner {
|
|
17
|
-
private readonly config;
|
|
18
|
-
constructor(signerConfig: WagmiSignerConfig);
|
|
19
|
-
getChainId(): Promise<number>;
|
|
20
|
-
getAddress(): Promise<Address>;
|
|
21
|
-
signTypedData(typedData: EIP712TypedData): Promise<Hex>;
|
|
22
|
-
writeContract<const TAbi extends ContractAbi, TFunctionName extends WriteFunctionName<TAbi>, const TArgs extends WriteContractArgs<TAbi, TFunctionName>>(config: WriteContractConfig<TAbi, TFunctionName, TArgs>): Promise<Hex>;
|
|
23
|
-
readContract<const TAbi extends ContractAbi, TFunctionName extends ReadFunctionName<TAbi>, const TArgs extends ReadContractArgs<TAbi, TFunctionName>>(config: ReadContractConfig<TAbi, TFunctionName, TArgs>): Promise<ReadContractReturnType<TAbi, TFunctionName, TArgs>>;
|
|
24
|
-
waitForTransactionReceipt(hash: Hex): Promise<TransactionReceipt>;
|
|
25
|
-
getBlockTimestamp(): Promise<bigint>;
|
|
26
|
-
subscribe({
|
|
27
|
-
onDisconnect,
|
|
28
|
-
onAccountChange,
|
|
29
|
-
onChainChange
|
|
30
|
-
}: SignerLifecycleCallbacks): () => void;
|
|
7
|
+
//#region src/wagmi/config.d.ts
|
|
8
|
+
/** Wagmi-backed config — signer derived from wagmi Config. */
|
|
9
|
+
interface ZamaConfigWagmi<TChains extends AtLeastOneChain = AtLeastOneChain, T = Config> extends ZamaConfigBase<TChains> {
|
|
10
|
+
wagmiConfig: T;
|
|
31
11
|
}
|
|
12
|
+
/** Create a {@link ZamaConfig} from a wagmi `Config`. */
|
|
13
|
+
declare function createConfig<const TChains extends AtLeastOneChain>(params: ZamaConfigWagmi<TChains>): ZamaConfig;
|
|
32
14
|
//#endregion
|
|
33
|
-
export {
|
|
15
|
+
export { type ZamaConfigWagmi, createConfig };
|
|
34
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/wagmi/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{TransactionRevertedError as
|
|
1
|
+
"use client";import{BaseSigner as e,TransactionRevertedError as t,buildZamaConfig as n}from"@zama-fhe/sdk";import*as r from"wagmi/actions";import{getAccount as i,getBlock as a,getChainId as o,readContract as s,signTypedData as c,waitForTransactionReceipt as l,watchAccount as u,writeContract as d}from"wagmi/actions";import{getAddress as f}from"viem";import*as p from"wagmi";import"wagmi";var m=class{#e;constructor(e){this.#e=e.config}async getChainId(){return o(this.#e)}async readContract(e){return s(this.#e,e)}async waitForTransactionReceipt(e){try{return await l(this.#e,{hash:e})}catch(n){let r=n instanceof Error?n.message:String(n);throw r.includes(`could not be found`)||r.includes(`Transaction not found`)?new t(`Could not find transaction receipt for hash "${e.slice(0,10)}…". If using ERC-4337 with a bundler, your connector may be returning a UserOperation hash instead of a transaction hash.`,{cause:n instanceof Error?n:void 0}):n}}async getBlockTimestamp(){return(await a(this.#e)).timestamp}};`useConnection`in p&&p.useConnection;const h=`getConnection`in r?r.getConnection:i,g=`watchConnection`in r?r.watchConnection:u;function _(e){if(e.status!==`disconnected`&&!(!e.address||e.chainId===void 0))return{address:f(e.address),chainId:e.chainId}}var v=class extends e{#e;#t;constructor(e){super(_(h(e.config))),this.#e=e.config,this.#t=g(this.#e,{onChange:e=>{this.walletAccount.setSnapshot(_(e))}})}async signTypedData(e){let{EIP712Domain:t,...n}=e.types;return c(this.#e,{primaryType:e.primaryType,types:n,domain:e.domain,message:{...e.message,startTimestamp:BigInt(e.message.startTimestamp),durationDays:BigInt(e.message.durationDays)}})}async writeContract(e){return d(this.#e,e)}onDispose(){this.#t()}};function y(e){let{wagmiConfig:t}=e;return n(new v({config:t}),new m({config:t}),e)}export{y as createConfig};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/wagmi/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/wagmi/wagmi-signer.ts"],"sourcesContent":["import type {\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["#config","#config","#unsubscribeConnection"],"sources":["../../src/wagmi/wagmi-provider.ts","../../src/wagmi/compat.ts","../../src/wagmi/wagmi-signer.ts","../../src/wagmi/config.ts"],"sourcesContent":["import type {\n ContractAbi,\n GenericProvider,\n Hex,\n ReadContractArgs,\n ReadContractConfig,\n ReadContractReturnType,\n ReadFunctionName,\n TransactionReceipt,\n} from \"@zama-fhe/sdk\";\nimport { TransactionRevertedError } from \"@zama-fhe/sdk\";\nimport type { Config } from \"wagmi\";\nimport { getBlock, getChainId, readContract, waitForTransactionReceipt } from \"wagmi/actions\";\n\n/** Configuration for {@link WagmiProvider}. */\nexport interface WagmiProviderConfig {\n /** Wagmi `Config` — same instance passed to {@link WagmiSigner}. */\n config: Config;\n}\n\n/**\n * Read-only {@link GenericProvider} backed by wagmi.\n *\n * Uses the same `Config` as {@link WagmiSigner}, sharing the transport the\n * application has already configured. Pair with a {@link WagmiSigner} when\n * wallet authority is required.\n *\n * @example\n * ```ts\n * const provider = new WagmiProvider({ config: wagmiConfig });\n * const signer = new WagmiSigner({ config: wagmiConfig });\n * ```\n */\nexport class WagmiProvider implements GenericProvider {\n readonly #config: Config;\n\n constructor(providerConfig: WagmiProviderConfig) {\n this.#config = providerConfig.config;\n }\n\n async getChainId(): Promise<number> {\n return getChainId(this.#config);\n }\n\n async readContract<\n const TAbi extends ContractAbi,\n TFunctionName extends ReadFunctionName<TAbi>,\n const TArgs extends ReadContractArgs<TAbi, TFunctionName>,\n >(\n config: ReadContractConfig<TAbi, TFunctionName, TArgs>,\n ): Promise<ReadContractReturnType<TAbi, TFunctionName, TArgs>> {\n return readContract(this.#config, config);\n }\n\n /**\n * Wait for a transaction receipt.\n *\n * @param hash - The transaction hash to wait for.\n * @returns The transaction receipt.\n * @throws {@link TransactionRevertedError} if the transaction hash cannot be found (e.g.\n * an ERC-4337 bundler returned a `UserOperation` hash instead of a transaction hash).\n */\n async waitForTransactionReceipt(hash: Hex): Promise<TransactionReceipt> {\n try {\n return await waitForTransactionReceipt(this.#config, { hash });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n if (message.includes(\"could not be found\") || message.includes(\"Transaction not found\")) {\n throw new TransactionRevertedError(\n `Could not find transaction receipt for hash \"${hash.slice(0, 10)}…\". ` +\n \"If using ERC-4337 with a bundler, your connector may be returning a UserOperation hash \" +\n \"instead of a transaction hash.\",\n { cause: error instanceof Error ? error : undefined },\n );\n }\n throw error;\n }\n }\n\n async getBlockTimestamp(): Promise<bigint> {\n const block = await getBlock(this.#config);\n return block.timestamp;\n }\n}\n","import * as wagmi from \"wagmi\";\nimport { useAccount } from \"wagmi\";\nimport * as actions from \"wagmi/actions\";\nimport { getAccount, watchAccount } from \"wagmi/actions\";\n\n// wagmi v3 renamed useAccount → useConnection\nexport const useConnection = \"useConnection\" in wagmi ? wagmi.useConnection : useAccount;\n\n// wagmi v3 renamed getAccount → getConnection\nexport const getConnection = \"getConnection\" in actions ? actions.getConnection : getAccount;\n\n// wagmi v3 renamed watchAccount → watchConnection\nexport const watchConnection =\n \"watchConnection\" in actions ? actions.watchConnection : watchAccount;\n","import {\n BaseSigner,\n type ContractAbi,\n type EIP712TypedData,\n type Hex,\n type WalletAccount,\n type WriteContractArgs,\n type WriteFunctionName,\n type WriteContractConfig,\n} from \"@zama-fhe/sdk\";\nimport { getAddress } from \"viem\";\nimport type { Config } from \"wagmi\";\nimport { signTypedData, writeContract } from \"wagmi/actions\";\nimport { getConnection, watchConnection } from \"./compat\";\n\ntype WagmiConnection = ReturnType<typeof getConnection>;\n\nfunction walletAccountFromConnection(connection: WagmiConnection): WalletAccount | undefined {\n if (connection.status === \"disconnected\") {\n return undefined;\n }\n if (!connection.address || connection.chainId === undefined) {\n return undefined;\n }\n return { address: getAddress(connection.address), chainId: connection.chainId };\n}\n\n/** Configuration for {@link WagmiSigner}. */\nexport interface WagmiSignerConfig {\n /** Wagmi `Config` — same instance passed to {@link WagmiProvider}. */\n config: Config;\n}\n\n/**\n * GenericSigner backed by wagmi.\n *\n * @param signerConfig - {@link WagmiSignerConfig} with wagmi config\n */\nexport class WagmiSigner extends BaseSigner {\n readonly #config: Config;\n readonly #unsubscribeConnection: () => void;\n\n constructor(signerConfig: WagmiSignerConfig) {\n super(walletAccountFromConnection(getConnection(signerConfig.config)));\n this.#config = signerConfig.config;\n this.#unsubscribeConnection = watchConnection(this.#config, {\n onChange: (connection) => {\n this.walletAccount.setSnapshot(walletAccountFromConnection(connection));\n },\n });\n }\n\n async signTypedData(typedData: EIP712TypedData): Promise<Hex> {\n const { EIP712Domain: _, ...sigTypes } = typedData.types;\n return signTypedData(this.#config, {\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 signTypedData>[1]);\n }\n\n async writeContract<\n const TAbi extends ContractAbi,\n TFunctionName extends WriteFunctionName<TAbi>,\n const TArgs extends WriteContractArgs<TAbi, TFunctionName>,\n >(config: WriteContractConfig<TAbi, TFunctionName, TArgs>): Promise<Hex> {\n return writeContract(this.#config, config as Parameters<typeof writeContract>[1]);\n }\n\n protected override onDispose(): void {\n this.#unsubscribeConnection();\n }\n}\n","import { buildZamaConfig, type ZamaConfig, type ZamaConfigBase } from \"@zama-fhe/sdk\";\nimport type { AtLeastOneChain } from \"@zama-fhe/sdk/chains\";\nimport type { Config } from \"wagmi\";\nimport { WagmiProvider } from \"./wagmi-provider\";\nimport { WagmiSigner } from \"./wagmi-signer\";\n\n/** Wagmi-backed config — signer derived from wagmi Config. */\nexport interface ZamaConfigWagmi<\n TChains extends AtLeastOneChain = AtLeastOneChain,\n T = Config,\n> extends ZamaConfigBase<TChains> {\n wagmiConfig: T;\n}\n\n/** Create a {@link ZamaConfig} from a wagmi `Config`. */\nexport function createConfig<const TChains extends AtLeastOneChain>(\n params: ZamaConfigWagmi<TChains>,\n): ZamaConfig {\n const { wagmiConfig } = params;\n const signer = new WagmiSigner({ config: wagmiConfig });\n const provider = new WagmiProvider({ config: wagmiConfig });\n return buildZamaConfig(signer, provider, params);\n}\n"],"mappings":"qYAiCA,IAAa,EAAb,KAAsD,CACpD,GAEA,YAAY,EAAqC,CAC/C,MAAA,EAAe,EAAe,OAGhC,MAAM,YAA8B,CAClC,OAAO,EAAW,MAAA,EAAa,CAGjC,MAAM,aAKJ,EAC6D,CAC7D,OAAO,EAAa,MAAA,EAAc,EAAO,CAW3C,MAAM,0BAA0B,EAAwC,CACtE,GAAI,CACF,OAAO,MAAM,EAA0B,MAAA,EAAc,CAAE,OAAM,CAAC,OACvD,EAAO,CACd,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,EAAM,CAStE,MARI,EAAQ,SAAS,qBAAqB,EAAI,EAAQ,SAAS,wBAAwB,CAC/E,IAAI,EACR,gDAAgD,EAAK,MAAM,EAAG,GAAG,CAAC,2HAGlE,CAAE,MAAO,aAAiB,MAAQ,EAAQ,IAAA,GAAW,CACtD,CAEG,GAIV,MAAM,mBAAqC,CAEzC,OAAO,MADa,EAAS,MAAA,EAAa,EAC7B,YC3EY,kBAAmB,GAAQ,EAAM,cAG9D,MAAa,EAAgB,kBAAmB,EAAU,EAAQ,cAAgB,EAGrE,EACX,oBAAqB,EAAU,EAAQ,gBAAkB,ECI3D,SAAS,EAA4B,EAAwD,CACvF,KAAW,SAAW,gBAGtB,GAAC,EAAW,SAAW,EAAW,UAAY,IAAA,IAGlD,MAAO,CAAE,QAAS,EAAW,EAAW,QAAQ,CAAE,QAAS,EAAW,QAAS,CAcjF,IAAa,EAAb,cAAiC,CAAW,CAC1C,GACA,GAEA,YAAY,EAAiC,CAC3C,MAAM,EAA4B,EAAc,EAAa,OAAO,CAAC,CAAC,CACtE,MAAA,EAAe,EAAa,OAC5B,MAAA,EAA8B,EAAgB,MAAA,EAAc,CAC1D,SAAW,GAAe,CACxB,KAAK,cAAc,YAAY,EAA4B,EAAW,CAAC,EAE1E,CAAC,CAGJ,MAAM,cAAc,EAA0C,CAC5D,GAAM,CAAE,aAAc,EAAG,GAAG,GAAa,EAAU,MACnD,OAAO,EAAc,MAAA,EAAc,CACjC,YAAa,EAAU,YACvB,MAAO,EACP,OAAQ,EAAU,OAClB,QAAS,CACP,GAAG,EAAU,QACb,eAAgB,OAAO,EAAU,QAAQ,eAAe,CACxD,aAAc,OAAO,EAAU,QAAQ,aAAa,CACrD,CAEF,CAAwC,CAG3C,MAAM,cAIJ,EAAuE,CACvE,OAAO,EAAc,MAAA,EAAc,EAA8C,CAGnF,WAAqC,CACnC,MAAA,GAA6B,GC7DjC,SAAgB,EACd,EACY,CACZ,GAAM,CAAE,eAAgB,EAGxB,OAAO,EAAgB,IAFJ,EAAY,CAAE,OAAQ,EAAa,CAEzB,CAAE,IADV,EAAc,CAAE,OAAQ,EAAa,CACnB,CAAE,EAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zama-fhe/react-sdk",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.31",
|
|
4
4
|
"description": "React hooks for Zama SDK",
|
|
5
5
|
"license": "BSD-3-Clause-Clear",
|
|
6
6
|
"author": "Zama",
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@zama-fhe/sdk": "workspace:*",
|
|
61
|
-
"rolldown": "1.0.0-rc.
|
|
62
|
-
"rolldown-plugin-dts": "^0.
|
|
61
|
+
"rolldown": "1.0.0-rc.17",
|
|
62
|
+
"rolldown-plugin-dts": "^0.24.1",
|
|
63
63
|
"viem": "^2.47.12"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@tanstack/react-query": ">=5",
|
|
67
|
-
"@zama-fhe/sdk": "^3.0.0-alpha.
|
|
67
|
+
"@zama-fhe/sdk": "^3.0.0-alpha.31",
|
|
68
68
|
"react": ">=18",
|
|
69
69
|
"viem": "^2.47.0",
|
|
70
70
|
"wagmi": ">=2"
|