@pyratzlabs/react-fhevm-utils 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import { FhevmConfig } from "../types/fhevmConfig";
3
- import { FhevmInstance } from "@zama-fhe/relayer-sdk/web";
3
+ import { FhevmInstance } from "@zama-fhe/relayer-sdk/bundle";
4
4
  interface ProviderProps {
5
5
  children: ReactNode;
6
6
  config?: FhevmConfig;
@@ -1,4 +1,4 @@
1
- import { HandleContractPair } from "@zama-fhe/relayer-sdk/web";
1
+ import type { HandleContractPair } from "@zama-fhe/relayer-sdk/bundle";
2
2
  export declare const useDecryptHandles: () => {
3
3
  data: undefined;
4
4
  variables: undefined;
@@ -8,14 +8,14 @@ export declare const useDecryptHandles: () => {
8
8
  isPending: false;
9
9
  isSuccess: false;
10
10
  status: "idle";
11
- mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
11
+ mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
12
12
  reset: () => void;
13
13
  context: unknown;
14
14
  failureCount: number;
15
15
  failureReason: Error | null;
16
16
  isPaused: boolean;
17
17
  submittedAt: number;
18
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
18
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
19
19
  } | {
20
20
  data: undefined;
21
21
  variables: HandleContractPair[];
@@ -25,14 +25,14 @@ export declare const useDecryptHandles: () => {
25
25
  isPending: true;
26
26
  isSuccess: false;
27
27
  status: "pending";
28
- mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
28
+ mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
29
29
  reset: () => void;
30
30
  context: unknown;
31
31
  failureCount: number;
32
32
  failureReason: Error | null;
33
33
  isPaused: boolean;
34
34
  submittedAt: number;
35
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
35
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
36
36
  } | {
37
37
  data: undefined;
38
38
  error: Error;
@@ -42,16 +42,16 @@ export declare const useDecryptHandles: () => {
42
42
  isPending: false;
43
43
  isSuccess: false;
44
44
  status: "error";
45
- mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
45
+ mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
46
46
  reset: () => void;
47
47
  context: unknown;
48
48
  failureCount: number;
49
49
  failureReason: Error | null;
50
50
  isPaused: boolean;
51
51
  submittedAt: number;
52
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
52
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
53
53
  } | {
54
- data: import("@zama-fhe/relayer-sdk/web").DecryptedResults;
54
+ data: import("@zama-fhe/relayer-sdk").DecryptedResults;
55
55
  error: null;
56
56
  variables: HandleContractPair[];
57
57
  isError: false;
@@ -59,12 +59,12 @@ export declare const useDecryptHandles: () => {
59
59
  isPending: false;
60
60
  isSuccess: true;
61
61
  status: "success";
62
- mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
62
+ mutate: import("@tanstack/react-query").UseMutateFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
63
63
  reset: () => void;
64
64
  context: unknown;
65
65
  failureCount: number;
66
66
  failureReason: Error | null;
67
67
  isPaused: boolean;
68
68
  submittedAt: number;
69
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk/web").DecryptedResults, Error, HandleContractPair[], unknown>;
69
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<import("@zama-fhe/relayer-sdk").DecryptedResults, Error, HandleContractPair[], unknown>;
70
70
  };
@@ -15,20 +15,14 @@ export declare const useEncryptValue: ({ tokenAddress }: EncryptValueParams) =>
15
15
  isPending: false;
16
16
  isSuccess: false;
17
17
  status: "idle";
18
- mutate: import("@tanstack/react-query").UseMutateFunction<{
19
- handles: Uint8Array[];
20
- inputProof: Uint8Array;
21
- }, Error, bigint, unknown>;
18
+ mutate: import("@tanstack/react-query").UseMutateFunction<EncryptionResult, Error, bigint, unknown>;
22
19
  reset: () => void;
23
20
  context: unknown;
24
21
  failureCount: number;
25
22
  failureReason: Error | null;
26
23
  isPaused: boolean;
27
24
  submittedAt: number;
28
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<{
29
- handles: Uint8Array[];
30
- inputProof: Uint8Array;
31
- }, Error, bigint, unknown>;
25
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<EncryptionResult, Error, bigint, unknown>;
32
26
  } | {
33
27
  data: undefined;
34
28
  variables: bigint;
@@ -38,20 +32,14 @@ export declare const useEncryptValue: ({ tokenAddress }: EncryptValueParams) =>
38
32
  isPending: true;
39
33
  isSuccess: false;
40
34
  status: "pending";
41
- mutate: import("@tanstack/react-query").UseMutateFunction<{
42
- handles: Uint8Array[];
43
- inputProof: Uint8Array;
44
- }, Error, bigint, unknown>;
35
+ mutate: import("@tanstack/react-query").UseMutateFunction<EncryptionResult, Error, bigint, unknown>;
45
36
  reset: () => void;
46
37
  context: unknown;
47
38
  failureCount: number;
48
39
  failureReason: Error | null;
49
40
  isPaused: boolean;
50
41
  submittedAt: number;
51
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<{
52
- handles: Uint8Array[];
53
- inputProof: Uint8Array;
54
- }, Error, bigint, unknown>;
42
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<EncryptionResult, Error, bigint, unknown>;
55
43
  } | {
56
44
  data: undefined;
57
45
  error: Error;
@@ -61,25 +49,16 @@ export declare const useEncryptValue: ({ tokenAddress }: EncryptValueParams) =>
61
49
  isPending: false;
62
50
  isSuccess: false;
63
51
  status: "error";
64
- mutate: import("@tanstack/react-query").UseMutateFunction<{
65
- handles: Uint8Array[];
66
- inputProof: Uint8Array;
67
- }, Error, bigint, unknown>;
52
+ mutate: import("@tanstack/react-query").UseMutateFunction<EncryptionResult, Error, bigint, unknown>;
68
53
  reset: () => void;
69
54
  context: unknown;
70
55
  failureCount: number;
71
56
  failureReason: Error | null;
72
57
  isPaused: boolean;
73
58
  submittedAt: number;
74
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<{
75
- handles: Uint8Array[];
76
- inputProof: Uint8Array;
77
- }, Error, bigint, unknown>;
59
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<EncryptionResult, Error, bigint, unknown>;
78
60
  } | {
79
- data: {
80
- handles: Uint8Array[];
81
- inputProof: Uint8Array;
82
- };
61
+ data: EncryptionResult;
83
62
  error: null;
84
63
  variables: bigint;
85
64
  isError: false;
@@ -87,18 +66,12 @@ export declare const useEncryptValue: ({ tokenAddress }: EncryptValueParams) =>
87
66
  isPending: false;
88
67
  isSuccess: true;
89
68
  status: "success";
90
- mutate: import("@tanstack/react-query").UseMutateFunction<{
91
- handles: Uint8Array[];
92
- inputProof: Uint8Array;
93
- }, Error, bigint, unknown>;
69
+ mutate: import("@tanstack/react-query").UseMutateFunction<EncryptionResult, Error, bigint, unknown>;
94
70
  reset: () => void;
95
71
  context: unknown;
96
72
  failureCount: number;
97
73
  failureReason: Error | null;
98
74
  isPaused: boolean;
99
75
  submittedAt: number;
100
- mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<{
101
- handles: Uint8Array[];
102
- inputProof: Uint8Array;
103
- }, Error, bigint, unknown>;
76
+ mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<EncryptionResult, Error, bigint, unknown>;
104
77
  };
@@ -8,22 +8,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { useMutation } from "@tanstack/react-query";
11
+ import { useEffect, useRef } from "react";
11
12
  import { useAccount } from "wagmi";
12
13
  import { useFhevmContext } from "../context/FhevmProvider";
13
- import { encryptInt64 } from "../workers/encryption.worker";
14
14
  export const useEncryptValue = ({ tokenAddress }) => {
15
15
  const { instance, config } = useFhevmContext();
16
16
  const { address } = useAccount();
17
+ const workerRef = useRef(null);
18
+ useEffect(() => {
19
+ workerRef.current = new Worker(new URL("../workers/encryption.worker", import.meta.url), { type: "module" });
20
+ return () => {
21
+ var _a;
22
+ (_a = workerRef.current) === null || _a === void 0 ? void 0 : _a.terminate();
23
+ };
24
+ }, []);
17
25
  const encryptMutation = useMutation({
18
26
  mutationFn: (value) => __awaiter(void 0, void 0, void 0, function* () {
19
27
  if (!instance)
20
28
  throw new Error("Instance is not defined");
21
29
  if (!address)
22
30
  throw new Error("User is not connected");
23
- return yield encryptInt64(Object.assign({ tokenAddress,
24
- address,
25
- value,
26
- instance }, config));
31
+ const encryption = new Promise((resolve, reject) => {
32
+ if (!workerRef.current)
33
+ return reject("Worker not initialized");
34
+ workerRef.current.onmessage = (event) => {
35
+ if (event.data.error) {
36
+ reject(event.data.error);
37
+ }
38
+ else {
39
+ resolve(event.data.result);
40
+ }
41
+ };
42
+ workerRef.current.postMessage(Object.assign({ tokenAddress,
43
+ address,
44
+ value }, config));
45
+ });
46
+ return encryption;
27
47
  }),
28
48
  });
29
49
  return Object.assign({}, encryptMutation);
@@ -1,3 +1,3 @@
1
1
  export declare const useFhevmInstance: () => {
2
- instance: import("@zama-fhe/relayer-sdk/web").FhevmInstance | undefined;
2
+ instance: import("@zama-fhe/relayer-sdk").FhevmInstance | undefined;
3
3
  };
@@ -4,5 +4,5 @@ export interface GetEncryptedBalanceParams {
4
4
  userAddress?: Address;
5
5
  }
6
6
  export declare const useGetEncryptedBalance: ({ tokenAddress, userAddress, }: GetEncryptedBalanceParams) => {
7
- encryptedBalance: bigint | undefined;
7
+ encryptedBalance: Address | undefined;
8
8
  };
@@ -5,7 +5,7 @@ export const useGetEncryptedBalance = ({ tokenAddress, userAddress, }) => {
5
5
  const { data } = useReadContract({
6
6
  address: tokenAddress,
7
7
  abi: encryptedABI,
8
- functionName: "balanceOf",
8
+ functionName: "confidentialBalanceOf",
9
9
  args: [userAddress !== null && userAddress !== void 0 ? userAddress : address],
10
10
  query: {
11
11
  enabled: !!address,
@@ -1,5 +1,5 @@
1
1
  import { FhevmConfig } from "../types/fhevmConfig";
2
- import { createInstance, FhevmInstance, SepoliaConfig, initSDK } from "@zama-fhe/relayer-sdk/web";
2
+ import type { createInstance, FhevmInstance, SepoliaConfig, initSDK } from "@zama-fhe/relayer-sdk/bundle";
3
3
  declare global {
4
4
  interface Window {
5
5
  relayerSDK: {
package/dist/lib/fhevm.js CHANGED
@@ -7,16 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { createInstance, SepoliaConfig, initSDK, } from "@zama-fhe/relayer-sdk/web";
11
10
  let fhevmInstance = null;
12
11
  export const createFhevmInstance = (config) => __awaiter(void 0, void 0, void 0, function* () {
13
12
  if (!fhevmInstance) {
14
- yield initSDK();
13
+ yield window.relayerSDK.initSDK();
15
14
  if (config) {
16
- fhevmInstance = yield createInstance(Object.assign({}, SepoliaConfig));
15
+ fhevmInstance = yield window.relayerSDK.createInstance(Object.assign({}, window.relayerSDK.SepoliaConfig));
17
16
  }
18
17
  else {
19
- fhevmInstance = yield createInstance(SepoliaConfig);
18
+ fhevmInstance = yield window.relayerSDK.createInstance(window.relayerSDK.SepoliaConfig);
20
19
  }
21
20
  }
22
21
  return fhevmInstance;