@enclave-e3/react 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -2
- package/dist/index.js +8 -24
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -16,8 +16,6 @@ interface UseEnclaveSDKReturn {
|
|
|
16
16
|
isInitialized: boolean;
|
|
17
17
|
error: string | null;
|
|
18
18
|
requestE3: typeof EnclaveSDK.prototype.requestE3;
|
|
19
|
-
activateE3: typeof EnclaveSDK.prototype.activateE3;
|
|
20
|
-
publishInput: typeof EnclaveSDK.prototype.publishInput;
|
|
21
19
|
getThresholdBfvParamsSet: typeof EnclaveSDK.prototype.getThresholdBfvParamsSet;
|
|
22
20
|
onEnclaveEvent: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void;
|
|
23
21
|
off: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void;
|
package/dist/index.js
CHANGED
|
@@ -20,8 +20,8 @@ var useEnclaveSDK = (config) => {
|
|
|
20
20
|
if (!publicClient) {
|
|
21
21
|
throw new Error("Public client not available");
|
|
22
22
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
23
|
+
if (sdkRef.current) {
|
|
24
|
+
sdkRef.current.cleanup();
|
|
25
25
|
}
|
|
26
26
|
const sdkConfig = {
|
|
27
27
|
publicClient,
|
|
@@ -44,7 +44,7 @@ var useEnclaveSDK = (config) => {
|
|
|
44
44
|
setError(errorMessage);
|
|
45
45
|
console.error("SDK initialization failed:", err);
|
|
46
46
|
}
|
|
47
|
-
}, [publicClient, walletClient, config.contracts, config.chainId]);
|
|
47
|
+
}, [publicClient, walletClient, config.contracts, config.chainId, config.thresholdBfvParamsPresetName]);
|
|
48
48
|
useEffect(() => {
|
|
49
49
|
if (config.autoConnect && publicClient && !isInitialized) {
|
|
50
50
|
initializeSDK();
|
|
@@ -54,7 +54,7 @@ var useEnclaveSDK = (config) => {
|
|
|
54
54
|
if (isInitialized && publicClient && walletClient) {
|
|
55
55
|
initializeSDK();
|
|
56
56
|
}
|
|
57
|
-
}, [walletClient, initializeSDK]);
|
|
57
|
+
}, [walletClient, initializeSDK, isInitialized, publicClient]);
|
|
58
58
|
useEffect(() => {
|
|
59
59
|
return () => {
|
|
60
60
|
if (sdkRef.current) {
|
|
@@ -62,6 +62,10 @@ var useEnclaveSDK = (config) => {
|
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
}, []);
|
|
65
|
+
const getThresholdBfvParamsSet = useCallback(async () => {
|
|
66
|
+
if (!sdk) throw new Error("SDK not initialized");
|
|
67
|
+
return sdk.getThresholdBfvParamsSet();
|
|
68
|
+
}, [sdk]);
|
|
65
69
|
const requestE3 = useCallback(
|
|
66
70
|
(...args) => {
|
|
67
71
|
if (!sdk) throw new Error("SDK not initialized");
|
|
@@ -69,24 +73,6 @@ var useEnclaveSDK = (config) => {
|
|
|
69
73
|
},
|
|
70
74
|
[sdk]
|
|
71
75
|
);
|
|
72
|
-
const activateE3 = useCallback(
|
|
73
|
-
(...args) => {
|
|
74
|
-
if (!sdk) throw new Error("SDK not initialized");
|
|
75
|
-
return sdk.activateE3(...args);
|
|
76
|
-
},
|
|
77
|
-
[sdk]
|
|
78
|
-
);
|
|
79
|
-
const publishInput = useCallback(
|
|
80
|
-
(...args) => {
|
|
81
|
-
if (!sdk) throw new Error("SDK not initialized");
|
|
82
|
-
return sdk.publishInput(...args);
|
|
83
|
-
},
|
|
84
|
-
[sdk]
|
|
85
|
-
);
|
|
86
|
-
const getThresholdBfvParamsSet = useCallback(async () => {
|
|
87
|
-
if (!sdk) throw new Error("SDK not initialized");
|
|
88
|
-
return sdk.getThresholdBfvParamsSet();
|
|
89
|
-
}, [sdk]);
|
|
90
76
|
const onEnclaveEvent = useCallback(
|
|
91
77
|
(eventType, callback) => {
|
|
92
78
|
if (!sdk) throw new Error("SDK not initialized");
|
|
@@ -106,8 +92,6 @@ var useEnclaveSDK = (config) => {
|
|
|
106
92
|
isInitialized,
|
|
107
93
|
error,
|
|
108
94
|
requestE3,
|
|
109
|
-
activateE3,
|
|
110
|
-
publishInput,
|
|
111
95
|
getThresholdBfvParamsSet,
|
|
112
96
|
onEnclaveEvent,
|
|
113
97
|
off,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/useEnclaveSDK.ts","../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: LGPL-3.0-only\n//\n// This file is provided WITHOUT ANY WARRANTY;\n// without even the implied warranty of MERCHANTABILITY\n// or FITNESS FOR A PARTICULAR PURPOSE.\n\nimport { useState, useEffect, useCallback, useRef } from 'react'\nimport { useWalletClient, usePublicClient } from 'wagmi'\nimport {\n EnclaveSDK,\n type SDKConfig,\n type AllEventTypes,\n type EventCallback,\n type ThresholdBfvParamsPresetName,\n EnclaveEventType,\n RegistryEventType,\n SDKError,\n} from '@enclave-e3/sdk'\n\nexport interface UseEnclaveSDKConfig {\n contracts?: {\n enclave: `0x${string}`\n ciphernodeRegistry: `0x${string}`\n feeToken: `0x${string}`\n }\n chainId?: number\n autoConnect?: boolean\n thresholdBfvParamsPresetName: ThresholdBfvParamsPresetName\n}\n\nexport interface UseEnclaveSDKReturn {\n sdk: EnclaveSDK | null\n isInitialized: boolean\n error: string | null\n // Contract interaction methods (only the ones commonly used)\n requestE3: typeof EnclaveSDK.prototype.requestE3\n
|
|
1
|
+
{"version":3,"sources":["../src/useEnclaveSDK.ts","../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: LGPL-3.0-only\n//\n// This file is provided WITHOUT ANY WARRANTY;\n// without even the implied warranty of MERCHANTABILITY\n// or FITNESS FOR A PARTICULAR PURPOSE.\n\nimport { useState, useEffect, useCallback, useRef } from 'react'\nimport { useWalletClient, usePublicClient } from 'wagmi'\nimport {\n EnclaveSDK,\n type SDKConfig,\n type AllEventTypes,\n type EventCallback,\n type ThresholdBfvParamsPresetName,\n EnclaveEventType,\n RegistryEventType,\n SDKError,\n} from '@enclave-e3/sdk'\n\nexport interface UseEnclaveSDKConfig {\n contracts?: {\n enclave: `0x${string}`\n ciphernodeRegistry: `0x${string}`\n feeToken: `0x${string}`\n }\n chainId?: number\n autoConnect?: boolean\n thresholdBfvParamsPresetName: ThresholdBfvParamsPresetName\n}\n\nexport interface UseEnclaveSDKReturn {\n sdk: EnclaveSDK | null\n isInitialized: boolean\n error: string | null\n // Contract interaction methods (only the ones commonly used)\n requestE3: typeof EnclaveSDK.prototype.requestE3\n getThresholdBfvParamsSet: typeof EnclaveSDK.prototype.getThresholdBfvParamsSet\n // Event handling\n onEnclaveEvent: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void\n off: <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => void\n // Event types for convenience\n EnclaveEventType: typeof EnclaveEventType\n RegistryEventType: typeof RegistryEventType\n}\n\n/**\n * React hook for interacting with Enclave SDK\n *\n * @param config Configuration for the SDK initialization\n * @returns Object containing SDK instance and helper methods\n *\n * @example\n * ```tsx\n * import { useEnclaveSDK } from '@enclave-e3/react';\n *\n * function MyComponent() {\n * const {\n * sdk,\n * isInitialized,\n * error,\n * requestE3,\n * onEnclaveEvent\n * } = useEnclaveSDK({\n * autoConnect: true,\n * contracts: {\n * enclave: '0x...',\n * ciphernodeRegistry: '0x...'\n * },\n * thresholdBfvParamsPresetName: 'INSECURE_THRESHOLD_512',\n * });\n *\n * // Use the SDK...\n * }\n * ```\n */\nexport const useEnclaveSDK = (config: UseEnclaveSDKConfig): UseEnclaveSDKReturn => {\n const [sdk, setSdk] = useState<EnclaveSDK | null>(null)\n const [isInitialized, setIsInitialized] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const sdkRef = useRef<EnclaveSDK | null>(null)\n\n const publicClient = usePublicClient()\n\n const { data: walletClient } = useWalletClient()\n const initializeSDK = useCallback(async () => {\n try {\n setError(null)\n\n if (!publicClient) {\n throw new Error('Public client not available')\n }\n\n if (sdkRef.current) {\n sdkRef.current.cleanup()\n }\n\n const sdkConfig: SDKConfig = {\n publicClient,\n walletClient,\n contracts: config.contracts || {\n enclave: '0x0000000000000000000000000000000000000000',\n ciphernodeRegistry: '0x0000000000000000000000000000000000000000',\n feeToken: '0x0000000000000000000000000000000000000000',\n },\n chainId: config.chainId,\n thresholdBfvParamsPresetName: config.thresholdBfvParamsPresetName,\n }\n\n const newSdk = new EnclaveSDK(sdkConfig)\n await newSdk.initialize()\n setSdk(newSdk)\n sdkRef.current = newSdk\n setIsInitialized(true)\n } catch (err: unknown) {\n const errorMessage = err instanceof SDKError ? `SDK Error (${err.code}): ${err.message}` : `Failed to initialize SDK: ${err}`\n setError(errorMessage)\n console.error('SDK initialization failed:', err)\n }\n }, [publicClient, walletClient, config.contracts, config.chainId, config.thresholdBfvParamsPresetName])\n\n // Initialize SDK when wagmi clients are available\n useEffect(() => {\n if (config.autoConnect && publicClient && !isInitialized) {\n initializeSDK()\n }\n }, [config.autoConnect, publicClient, isInitialized, initializeSDK])\n\n // Re-initialize when wallet client changes (connect/disconnect)\n useEffect(() => {\n if (isInitialized && publicClient && walletClient) {\n initializeSDK()\n }\n }, [walletClient, initializeSDK, isInitialized, publicClient])\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (sdkRef.current) {\n sdkRef.current.cleanup()\n }\n }\n }, [])\n\n const getThresholdBfvParamsSet = useCallback(async () => {\n if (!sdk) throw new Error('SDK not initialized')\n return sdk.getThresholdBfvParamsSet()\n }, [sdk])\n\n // Contract interaction methods\n const requestE3 = useCallback(\n (...args: Parameters<typeof EnclaveSDK.prototype.requestE3>) => {\n if (!sdk) throw new Error('SDK not initialized')\n return sdk.requestE3(...args)\n },\n [sdk],\n )\n\n // Event handling methods\n const onEnclaveEvent = useCallback(\n <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => {\n if (!sdk) throw new Error('SDK not initialized')\n return sdk.onEnclaveEvent(eventType, callback)\n },\n [sdk],\n )\n\n const off = useCallback(\n <T extends AllEventTypes>(eventType: T, callback: EventCallback<T>) => {\n if (!sdk) throw new Error('SDK not initialized')\n return sdk.off(eventType, callback)\n },\n [sdk],\n )\n\n return {\n sdk,\n isInitialized,\n error,\n requestE3,\n getThresholdBfvParamsSet,\n onEnclaveEvent,\n off,\n EnclaveEventType,\n RegistryEventType,\n }\n}\n","// SPDX-License-Identifier: LGPL-3.0-only\n//\n// This file is provided WITHOUT ANY WARRANTY;\n// without even the implied warranty of MERCHANTABILITY\n// or FITNESS FOR A PARTICULAR PURPOSE.\n\n/**\n * @enclave-e3/react\n *\n * React hooks and utilities for Enclave SDK\n */\n\nexport { useEnclaveSDK } from './useEnclaveSDK'\nexport type { UseEnclaveSDKConfig, UseEnclaveSDKReturn } from './useEnclaveSDK'\n\n// Re-export commonly used types from the main SDK for convenience\nexport type {\n AllEventTypes,\n EventCallback,\n EnclaveEvent,\n E3RequestedData,\n E3ActivatedData,\n CiphertextOutputPublishedData,\n PlaintextOutputPublishedData,\n CiphernodeAddedData,\n CiphernodeRemovedData,\n CommitteeRequestedData,\n CommitteePublishedData,\n} from '@enclave-e3/sdk'\n\nexport { EnclaveEventType, RegistryEventType } from '@enclave-e3/sdk'\n"],"mappings":";AAMA,SAAS,UAAU,WAAW,aAAa,cAAc;AACzD,SAAS,iBAAiB,uBAAuB;AACjD;AAAA,EACE;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA0DA,IAAM,gBAAgB,CAAC,WAAqD;AACjF,QAAM,CAAC,KAAK,MAAM,IAAI,SAA4B,IAAI;AACtD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AACtD,QAAM,SAAS,OAA0B,IAAI;AAE7C,QAAM,eAAe,gBAAgB;AAErC,QAAM,EAAE,MAAM,aAAa,IAAI,gBAAgB;AAC/C,QAAM,gBAAgB,YAAY,YAAY;AAC5C,QAAI;AACF,eAAS,IAAI;AAEb,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C;AAEA,UAAI,OAAO,SAAS;AAClB,eAAO,QAAQ,QAAQ;AAAA,MACzB;AAEA,YAAM,YAAuB;AAAA,QAC3B;AAAA,QACA;AAAA,QACA,WAAW,OAAO,aAAa;AAAA,UAC7B,SAAS;AAAA,UACT,oBAAoB;AAAA,UACpB,UAAU;AAAA,QACZ;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,8BAA8B,OAAO;AAAA,MACvC;AAEA,YAAM,SAAS,IAAI,WAAW,SAAS;AACvC,YAAM,OAAO,WAAW;AACxB,aAAO,MAAM;AACb,aAAO,UAAU;AACjB,uBAAiB,IAAI;AAAA,IACvB,SAAS,KAAc;AACrB,YAAM,eAAe,eAAe,WAAW,cAAc,IAAI,IAAI,MAAM,IAAI,OAAO,KAAK,6BAA6B,GAAG;AAC3H,eAAS,YAAY;AACrB,cAAQ,MAAM,8BAA8B,GAAG;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,cAAc,cAAc,OAAO,WAAW,OAAO,SAAS,OAAO,4BAA4B,CAAC;AAGtG,YAAU,MAAM;AACd,QAAI,OAAO,eAAe,gBAAgB,CAAC,eAAe;AACxD,oBAAc;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,OAAO,aAAa,cAAc,eAAe,aAAa,CAAC;AAGnE,YAAU,MAAM;AACd,QAAI,iBAAiB,gBAAgB,cAAc;AACjD,oBAAc;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,cAAc,eAAe,eAAe,YAAY,CAAC;AAG7D,YAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,OAAO,SAAS;AAClB,eAAO,QAAQ,QAAQ;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,2BAA2B,YAAY,YAAY;AACvD,QAAI,CAAC,IAAK,OAAM,IAAI,MAAM,qBAAqB;AAC/C,WAAO,IAAI,yBAAyB;AAAA,EACtC,GAAG,CAAC,GAAG,CAAC;AAGR,QAAM,YAAY;AAAA,IAChB,IAAI,SAA4D;AAC9D,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,qBAAqB;AAC/C,aAAO,IAAI,UAAU,GAAG,IAAI;AAAA,IAC9B;AAAA,IACA,CAAC,GAAG;AAAA,EACN;AAGA,QAAM,iBAAiB;AAAA,IACrB,CAA0B,WAAc,aAA+B;AACrE,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,qBAAqB;AAC/C,aAAO,IAAI,eAAe,WAAW,QAAQ;AAAA,IAC/C;AAAA,IACA,CAAC,GAAG;AAAA,EACN;AAEA,QAAM,MAAM;AAAA,IACV,CAA0B,WAAc,aAA+B;AACrE,UAAI,CAAC,IAAK,OAAM,IAAI,MAAM,qBAAqB;AAC/C,aAAO,IAAI,IAAI,WAAW,QAAQ;AAAA,IACpC;AAAA,IACA,CAAC,GAAG;AAAA,EACN;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC3JA,SAAS,oBAAAA,mBAAkB,qBAAAC,0BAAyB;","names":["EnclaveEventType","RegistryEventType"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enclave-e3/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "React hooks and utilities for Enclave SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@enclave-e3/sdk": "^0.1.
|
|
45
|
+
"@enclave-e3/sdk": "^0.1.13",
|
|
46
46
|
"viem": "2.30.6"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@enclave-e3/config": "^0.1.
|
|
49
|
+
"@enclave-e3/config": "^0.1.13",
|
|
50
50
|
"@types/react": "^18.2.0",
|
|
51
51
|
"tsup": "^8.5.0",
|
|
52
52
|
"typescript": "5.8.3"
|