@pyratzlabs/react-fhevm-utils 3.1.1 → 3.2.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.
@@ -0,0 +1,11 @@
1
+ import { Address } from "viem";
2
+ interface Props {
3
+ wrapper: Address;
4
+ }
5
+ export declare const useFinalizeUnwrap: ({ wrapper }: Props) => {
6
+ finalizeUnwrap: (requestId: bigint, unwrapStartedAmounts: Address[], clearValues: Address, decryptionProof: Address) => void;
7
+ isFailed: boolean;
8
+ isLoading: boolean;
9
+ isSuccess: boolean;
10
+ };
11
+ export {};
@@ -0,0 +1,19 @@
1
+ import { usePerformTransaction } from "./usePerformTransaction";
2
+ import { useAccount } from "wagmi";
3
+ import { WRAPPER_ABI } from "../../types/ABI/Wrapper.abi";
4
+ export const useFinalizeUnwrap = ({ wrapper }) => {
5
+ const { address } = useAccount();
6
+ const { perform, isFailed, isLoading, isSuccess } = usePerformTransaction({
7
+ abi: WRAPPER_ABI,
8
+ address: wrapper,
9
+ functionName: "finalizeUnwrap",
10
+ });
11
+ const finalizeUnwrap = (requestId, unwrapStartedAmounts, clearValues, decryptionProof) => {
12
+ if (!address)
13
+ throw new Error("UNWRAP: User is not connected");
14
+ perform({
15
+ args: [requestId, unwrapStartedAmounts, [clearValues, decryptionProof]],
16
+ });
17
+ };
18
+ return { finalizeUnwrap, isFailed, isLoading, isSuccess };
19
+ };
package/dist/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export { useUnwrap } from "./client/hooks/useUnwrap";
8
8
  export { useEncryptedBatchTransfer } from "./client/hooks/useEncryptedBatchTransfer";
9
9
  export { useSetOperator } from "./client/hooks/useSetOperator";
10
10
  export { usePublicDecrypt } from "./client/hooks/usePublicDecrypt";
11
+ export { useFinalizeUnwrap } from "./client/hooks/useFinalizeUnwrap";
11
12
  export { type FhevmConfig } from "./types/fhevmConfig";
package/dist/index.js CHANGED
@@ -10,3 +10,4 @@ export { useUnwrap } from "./client/hooks/useUnwrap";
10
10
  export { useEncryptedBatchTransfer } from "./client/hooks/useEncryptedBatchTransfer";
11
11
  export { useSetOperator } from "./client/hooks/useSetOperator";
12
12
  export { usePublicDecrypt } from "./client/hooks/usePublicDecrypt";
13
+ export { useFinalizeUnwrap } from "./client/hooks/useFinalizeUnwrap";
@@ -0,0 +1,278 @@
1
+ export declare const WRAPPER_ABI: readonly [{
2
+ readonly inputs: readonly [{
3
+ readonly internalType: "address";
4
+ readonly name: "originalToken_";
5
+ readonly type: "address";
6
+ }, {
7
+ readonly internalType: "contract RegulatedERC7984Upgradeable";
8
+ readonly name: "confidentialToken_";
9
+ readonly type: "address";
10
+ }, {
11
+ readonly internalType: "contract AdminProvider";
12
+ readonly name: "adminProvider_";
13
+ readonly type: "address";
14
+ }];
15
+ readonly stateMutability: "nonpayable";
16
+ readonly type: "constructor";
17
+ }, {
18
+ readonly inputs: readonly [];
19
+ readonly name: "CannotReceiveEthForTokenWrap";
20
+ readonly type: "error";
21
+ }, {
22
+ readonly inputs: readonly [];
23
+ readonly name: "CannotSendToZeroAddress";
24
+ readonly type: "error";
25
+ }, {
26
+ readonly inputs: readonly [{
27
+ readonly internalType: "uint256";
28
+ readonly name: "requestId";
29
+ readonly type: "uint256";
30
+ }];
31
+ readonly name: "ERC7984InvalidGatewayRequest";
32
+ readonly type: "error";
33
+ }, {
34
+ readonly inputs: readonly [];
35
+ readonly name: "EthFeeTransferFailed";
36
+ readonly type: "error";
37
+ }, {
38
+ readonly inputs: readonly [];
39
+ readonly name: "IncorrectEthAmount";
40
+ readonly type: "error";
41
+ }, {
42
+ readonly inputs: readonly [{
43
+ readonly internalType: "uint8";
44
+ readonly name: "bits";
45
+ readonly type: "uint8";
46
+ }, {
47
+ readonly internalType: "uint256";
48
+ readonly name: "value";
49
+ readonly type: "uint256";
50
+ }];
51
+ readonly name: "SafeCastOverflowedUintDowncast";
52
+ readonly type: "error";
53
+ }, {
54
+ readonly inputs: readonly [{
55
+ readonly internalType: "address";
56
+ readonly name: "token";
57
+ readonly type: "address";
58
+ }];
59
+ readonly name: "SafeERC20FailedOperation";
60
+ readonly type: "error";
61
+ }, {
62
+ readonly inputs: readonly [];
63
+ readonly name: "SenderNotAllowed";
64
+ readonly type: "error";
65
+ }, {
66
+ readonly anonymous: false;
67
+ readonly inputs: readonly [{
68
+ readonly indexed: true;
69
+ readonly internalType: "uint256";
70
+ readonly name: "requestId";
71
+ readonly type: "uint256";
72
+ }, {
73
+ readonly indexed: false;
74
+ readonly internalType: "bool";
75
+ readonly name: "finalizeSuccess";
76
+ readonly type: "bool";
77
+ }, {
78
+ readonly indexed: false;
79
+ readonly internalType: "bool";
80
+ readonly name: "feeTransferSuccess";
81
+ readonly type: "bool";
82
+ }, {
83
+ readonly indexed: false;
84
+ readonly internalType: "uint64";
85
+ readonly name: "burnAmount";
86
+ readonly type: "uint64";
87
+ }, {
88
+ readonly indexed: false;
89
+ readonly internalType: "uint256";
90
+ readonly name: "unwrapAmount";
91
+ readonly type: "uint256";
92
+ }, {
93
+ readonly indexed: false;
94
+ readonly internalType: "uint256";
95
+ readonly name: "feeAmount";
96
+ readonly type: "uint256";
97
+ }, {
98
+ readonly indexed: true;
99
+ readonly internalType: "uint256";
100
+ readonly name: "nextTxId";
101
+ readonly type: "uint256";
102
+ }];
103
+ readonly name: "UnwrappedFinalized";
104
+ readonly type: "event";
105
+ }, {
106
+ readonly anonymous: false;
107
+ readonly inputs: readonly [{
108
+ readonly indexed: false;
109
+ readonly internalType: "bool";
110
+ readonly name: "returnVal";
111
+ readonly type: "bool";
112
+ }, {
113
+ readonly indexed: true;
114
+ readonly internalType: "uint256";
115
+ readonly name: "requestId";
116
+ readonly type: "uint256";
117
+ }, {
118
+ readonly indexed: true;
119
+ readonly internalType: "uint256";
120
+ readonly name: "txId";
121
+ readonly type: "uint256";
122
+ }, {
123
+ readonly indexed: true;
124
+ readonly internalType: "address";
125
+ readonly name: "to";
126
+ readonly type: "address";
127
+ }, {
128
+ readonly indexed: false;
129
+ readonly internalType: "euint64";
130
+ readonly name: "requestedAmount";
131
+ readonly type: "bytes32";
132
+ }, {
133
+ readonly indexed: false;
134
+ readonly internalType: "euint64";
135
+ readonly name: "burnAmount";
136
+ readonly type: "bytes32";
137
+ }];
138
+ readonly name: "UnwrappedStarted";
139
+ readonly type: "event";
140
+ }, {
141
+ readonly anonymous: false;
142
+ readonly inputs: readonly [{
143
+ readonly indexed: false;
144
+ readonly internalType: "uint64";
145
+ readonly name: "mintAmount";
146
+ readonly type: "uint64";
147
+ }, {
148
+ readonly indexed: false;
149
+ readonly internalType: "uint256";
150
+ readonly name: "amountIn";
151
+ readonly type: "uint256";
152
+ }, {
153
+ readonly indexed: false;
154
+ readonly internalType: "uint256";
155
+ readonly name: "feeAmount";
156
+ readonly type: "uint256";
157
+ }, {
158
+ readonly indexed: true;
159
+ readonly internalType: "address";
160
+ readonly name: "to_";
161
+ readonly type: "address";
162
+ }, {
163
+ readonly indexed: true;
164
+ readonly internalType: "uint256";
165
+ readonly name: "mintTxId";
166
+ readonly type: "uint256";
167
+ }];
168
+ readonly name: "Wrapped";
169
+ readonly type: "event";
170
+ }, {
171
+ readonly inputs: readonly [];
172
+ readonly name: "adminProvider";
173
+ readonly outputs: readonly [{
174
+ readonly internalType: "contract AdminProvider";
175
+ readonly name: "";
176
+ readonly type: "address";
177
+ }];
178
+ readonly stateMutability: "view";
179
+ readonly type: "function";
180
+ }, {
181
+ readonly inputs: readonly [];
182
+ readonly name: "confidentialToken";
183
+ readonly outputs: readonly [{
184
+ readonly internalType: "contract RegulatedERC7984Upgradeable";
185
+ readonly name: "";
186
+ readonly type: "address";
187
+ }];
188
+ readonly stateMutability: "view";
189
+ readonly type: "function";
190
+ }, {
191
+ readonly inputs: readonly [{
192
+ readonly internalType: "uint256";
193
+ readonly name: "requestId";
194
+ readonly type: "uint256";
195
+ }, {
196
+ readonly internalType: "euint64[]";
197
+ readonly name: "handles";
198
+ readonly type: "bytes32[]";
199
+ }, {
200
+ readonly internalType: "bytes[]";
201
+ readonly name: "clearTextsAndProof";
202
+ readonly type: "bytes[]";
203
+ }];
204
+ readonly name: "finalizeUnwrap";
205
+ readonly outputs: readonly [];
206
+ readonly stateMutability: "nonpayable";
207
+ readonly type: "function";
208
+ }, {
209
+ readonly inputs: readonly [{
210
+ readonly internalType: "address";
211
+ readonly name: "";
212
+ readonly type: "address";
213
+ }, {
214
+ readonly internalType: "address";
215
+ readonly name: "from";
216
+ readonly type: "address";
217
+ }, {
218
+ readonly internalType: "euint64";
219
+ readonly name: "amount";
220
+ readonly type: "bytes32";
221
+ }, {
222
+ readonly internalType: "bytes";
223
+ readonly name: "data";
224
+ readonly type: "bytes";
225
+ }];
226
+ readonly name: "onConfidentialTransferReceived";
227
+ readonly outputs: readonly [{
228
+ readonly internalType: "ebool";
229
+ readonly name: "";
230
+ readonly type: "bytes32";
231
+ }];
232
+ readonly stateMutability: "nonpayable";
233
+ readonly type: "function";
234
+ }, {
235
+ readonly inputs: readonly [];
236
+ readonly name: "originalToken";
237
+ readonly outputs: readonly [{
238
+ readonly internalType: "address";
239
+ readonly name: "";
240
+ readonly type: "address";
241
+ }];
242
+ readonly stateMutability: "view";
243
+ readonly type: "function";
244
+ }, {
245
+ readonly inputs: readonly [];
246
+ readonly name: "protocolId";
247
+ readonly outputs: readonly [{
248
+ readonly internalType: "uint256";
249
+ readonly name: "";
250
+ readonly type: "uint256";
251
+ }];
252
+ readonly stateMutability: "view";
253
+ readonly type: "function";
254
+ }, {
255
+ readonly inputs: readonly [];
256
+ readonly name: "requestId";
257
+ readonly outputs: readonly [{
258
+ readonly internalType: "uint256";
259
+ readonly name: "";
260
+ readonly type: "uint256";
261
+ }];
262
+ readonly stateMutability: "view";
263
+ readonly type: "function";
264
+ }, {
265
+ readonly inputs: readonly [{
266
+ readonly internalType: "uint256";
267
+ readonly name: "amount_";
268
+ readonly type: "uint256";
269
+ }, {
270
+ readonly internalType: "address";
271
+ readonly name: "to_";
272
+ readonly type: "address";
273
+ }];
274
+ readonly name: "wrap";
275
+ readonly outputs: readonly [];
276
+ readonly stateMutability: "payable";
277
+ readonly type: "function";
278
+ }];
@@ -0,0 +1,355 @@
1
+ export const WRAPPER_ABI = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: "address",
6
+ name: "originalToken_",
7
+ type: "address",
8
+ },
9
+ {
10
+ internalType: "contract RegulatedERC7984Upgradeable",
11
+ name: "confidentialToken_",
12
+ type: "address",
13
+ },
14
+ {
15
+ internalType: "contract AdminProvider",
16
+ name: "adminProvider_",
17
+ type: "address",
18
+ },
19
+ ],
20
+ stateMutability: "nonpayable",
21
+ type: "constructor",
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: "CannotReceiveEthForTokenWrap",
26
+ type: "error",
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: "CannotSendToZeroAddress",
31
+ type: "error",
32
+ },
33
+ {
34
+ inputs: [
35
+ {
36
+ internalType: "uint256",
37
+ name: "requestId",
38
+ type: "uint256",
39
+ },
40
+ ],
41
+ name: "ERC7984InvalidGatewayRequest",
42
+ type: "error",
43
+ },
44
+ {
45
+ inputs: [],
46
+ name: "EthFeeTransferFailed",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "IncorrectEthAmount",
52
+ type: "error",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ internalType: "uint8",
58
+ name: "bits",
59
+ type: "uint8",
60
+ },
61
+ {
62
+ internalType: "uint256",
63
+ name: "value",
64
+ type: "uint256",
65
+ },
66
+ ],
67
+ name: "SafeCastOverflowedUintDowncast",
68
+ type: "error",
69
+ },
70
+ {
71
+ inputs: [
72
+ {
73
+ internalType: "address",
74
+ name: "token",
75
+ type: "address",
76
+ },
77
+ ],
78
+ name: "SafeERC20FailedOperation",
79
+ type: "error",
80
+ },
81
+ {
82
+ inputs: [],
83
+ name: "SenderNotAllowed",
84
+ type: "error",
85
+ },
86
+ {
87
+ anonymous: false,
88
+ inputs: [
89
+ {
90
+ indexed: true,
91
+ internalType: "uint256",
92
+ name: "requestId",
93
+ type: "uint256",
94
+ },
95
+ {
96
+ indexed: false,
97
+ internalType: "bool",
98
+ name: "finalizeSuccess",
99
+ type: "bool",
100
+ },
101
+ {
102
+ indexed: false,
103
+ internalType: "bool",
104
+ name: "feeTransferSuccess",
105
+ type: "bool",
106
+ },
107
+ {
108
+ indexed: false,
109
+ internalType: "uint64",
110
+ name: "burnAmount",
111
+ type: "uint64",
112
+ },
113
+ {
114
+ indexed: false,
115
+ internalType: "uint256",
116
+ name: "unwrapAmount",
117
+ type: "uint256",
118
+ },
119
+ {
120
+ indexed: false,
121
+ internalType: "uint256",
122
+ name: "feeAmount",
123
+ type: "uint256",
124
+ },
125
+ {
126
+ indexed: true,
127
+ internalType: "uint256",
128
+ name: "nextTxId",
129
+ type: "uint256",
130
+ },
131
+ ],
132
+ name: "UnwrappedFinalized",
133
+ type: "event",
134
+ },
135
+ {
136
+ anonymous: false,
137
+ inputs: [
138
+ {
139
+ indexed: false,
140
+ internalType: "bool",
141
+ name: "returnVal",
142
+ type: "bool",
143
+ },
144
+ {
145
+ indexed: true,
146
+ internalType: "uint256",
147
+ name: "requestId",
148
+ type: "uint256",
149
+ },
150
+ {
151
+ indexed: true,
152
+ internalType: "uint256",
153
+ name: "txId",
154
+ type: "uint256",
155
+ },
156
+ {
157
+ indexed: true,
158
+ internalType: "address",
159
+ name: "to",
160
+ type: "address",
161
+ },
162
+ {
163
+ indexed: false,
164
+ internalType: "euint64",
165
+ name: "requestedAmount",
166
+ type: "bytes32",
167
+ },
168
+ {
169
+ indexed: false,
170
+ internalType: "euint64",
171
+ name: "burnAmount",
172
+ type: "bytes32",
173
+ },
174
+ ],
175
+ name: "UnwrappedStarted",
176
+ type: "event",
177
+ },
178
+ {
179
+ anonymous: false,
180
+ inputs: [
181
+ {
182
+ indexed: false,
183
+ internalType: "uint64",
184
+ name: "mintAmount",
185
+ type: "uint64",
186
+ },
187
+ {
188
+ indexed: false,
189
+ internalType: "uint256",
190
+ name: "amountIn",
191
+ type: "uint256",
192
+ },
193
+ {
194
+ indexed: false,
195
+ internalType: "uint256",
196
+ name: "feeAmount",
197
+ type: "uint256",
198
+ },
199
+ {
200
+ indexed: true,
201
+ internalType: "address",
202
+ name: "to_",
203
+ type: "address",
204
+ },
205
+ {
206
+ indexed: true,
207
+ internalType: "uint256",
208
+ name: "mintTxId",
209
+ type: "uint256",
210
+ },
211
+ ],
212
+ name: "Wrapped",
213
+ type: "event",
214
+ },
215
+ {
216
+ inputs: [],
217
+ name: "adminProvider",
218
+ outputs: [
219
+ {
220
+ internalType: "contract AdminProvider",
221
+ name: "",
222
+ type: "address",
223
+ },
224
+ ],
225
+ stateMutability: "view",
226
+ type: "function",
227
+ },
228
+ {
229
+ inputs: [],
230
+ name: "confidentialToken",
231
+ outputs: [
232
+ {
233
+ internalType: "contract RegulatedERC7984Upgradeable",
234
+ name: "",
235
+ type: "address",
236
+ },
237
+ ],
238
+ stateMutability: "view",
239
+ type: "function",
240
+ },
241
+ {
242
+ inputs: [
243
+ {
244
+ internalType: "uint256",
245
+ name: "requestId",
246
+ type: "uint256",
247
+ },
248
+ {
249
+ internalType: "euint64[]",
250
+ name: "handles",
251
+ type: "bytes32[]",
252
+ },
253
+ {
254
+ internalType: "bytes[]",
255
+ name: "clearTextsAndProof",
256
+ type: "bytes[]",
257
+ },
258
+ ],
259
+ name: "finalizeUnwrap",
260
+ outputs: [],
261
+ stateMutability: "nonpayable",
262
+ type: "function",
263
+ },
264
+ {
265
+ inputs: [
266
+ {
267
+ internalType: "address",
268
+ name: "",
269
+ type: "address",
270
+ },
271
+ {
272
+ internalType: "address",
273
+ name: "from",
274
+ type: "address",
275
+ },
276
+ {
277
+ internalType: "euint64",
278
+ name: "amount",
279
+ type: "bytes32",
280
+ },
281
+ {
282
+ internalType: "bytes",
283
+ name: "data",
284
+ type: "bytes",
285
+ },
286
+ ],
287
+ name: "onConfidentialTransferReceived",
288
+ outputs: [
289
+ {
290
+ internalType: "ebool",
291
+ name: "",
292
+ type: "bytes32",
293
+ },
294
+ ],
295
+ stateMutability: "nonpayable",
296
+ type: "function",
297
+ },
298
+ {
299
+ inputs: [],
300
+ name: "originalToken",
301
+ outputs: [
302
+ {
303
+ internalType: "address",
304
+ name: "",
305
+ type: "address",
306
+ },
307
+ ],
308
+ stateMutability: "view",
309
+ type: "function",
310
+ },
311
+ {
312
+ inputs: [],
313
+ name: "protocolId",
314
+ outputs: [
315
+ {
316
+ internalType: "uint256",
317
+ name: "",
318
+ type: "uint256",
319
+ },
320
+ ],
321
+ stateMutability: "view",
322
+ type: "function",
323
+ },
324
+ {
325
+ inputs: [],
326
+ name: "requestId",
327
+ outputs: [
328
+ {
329
+ internalType: "uint256",
330
+ name: "",
331
+ type: "uint256",
332
+ },
333
+ ],
334
+ stateMutability: "view",
335
+ type: "function",
336
+ },
337
+ {
338
+ inputs: [
339
+ {
340
+ internalType: "uint256",
341
+ name: "amount_",
342
+ type: "uint256",
343
+ },
344
+ {
345
+ internalType: "address",
346
+ name: "to_",
347
+ type: "address",
348
+ },
349
+ ],
350
+ name: "wrap",
351
+ outputs: [],
352
+ stateMutability: "payable",
353
+ type: "function",
354
+ },
355
+ ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pyratzlabs/react-fhevm-utils",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "React hooks and utilities for Fhevmjs",
5
5
  "main": "dist/index.js",
6
6
  "files": [