@tokenops/sdk 1.6.0 → 2.0.0-alpha.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.
Files changed (194) hide show
  1. package/CHANGELOG.md +48 -8
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +146 -90
  4. package/SUPPORT.md +47 -0
  5. package/dist/{chunk-HETNKZEE.js → chunk-335Z2W67.js} +1 -1
  6. package/dist/{chunk-BD4LZBVF.cjs → chunk-3QHNYEQD.cjs} +18 -17
  7. package/dist/chunk-456VDDA3.js +370 -0
  8. package/dist/{chunk-6WSNS3UV.js → chunk-4RAAATVY.js} +2 -4
  9. package/dist/{chunk-4KJ66YRH.js → chunk-4TSDNZQ3.js} +2 -2
  10. package/dist/{chunk-WUXUWTFW.cjs → chunk-5576FRT3.cjs} +31 -7
  11. package/dist/chunk-66IHPTOK.cjs +20 -0
  12. package/dist/{chunk-2RNW4MIJ.cjs → chunk-67OV5CX2.cjs} +0 -18
  13. package/dist/{chunk-PD7ME2BT.js → chunk-6GNR22OV.js} +2 -1
  14. package/dist/{chunk-VHSNYUYV.js → chunk-6NAVMWZQ.js} +5 -5
  15. package/dist/{chunk-EUKPOXWR.cjs → chunk-6PXXGACR.cjs} +17 -15
  16. package/dist/{chunk-WTK6JDSI.js → chunk-74QFZ5MK.js} +6 -4
  17. package/dist/{chunk-WOEETTH7.cjs → chunk-7AFPOE7N.cjs} +6 -6
  18. package/dist/{chunk-U57COLUE.js → chunk-AXIPOR3C.js} +2 -2
  19. package/dist/chunk-CTED3MTR.cjs +380 -0
  20. package/dist/{chunk-QKKBBH7I.js → chunk-DZHYSUGY.js} +28 -7
  21. package/dist/{chunk-V5D7BHW3.js → chunk-EAJ7SYHE.js} +6 -4
  22. package/dist/{chunk-SYHNZSZZ.cjs → chunk-FAXIIH5R.cjs} +3 -3
  23. package/dist/{chunk-7G7UOQV4.cjs → chunk-FGEB7RMY.cjs} +4 -4
  24. package/dist/chunk-GKKDAW44.js +8823 -0
  25. package/dist/{chunk-QET3Q4JP.js → chunk-H5POPGOZ.js} +8 -6
  26. package/dist/{chunk-VR3FREBX.cjs → chunk-JK4XMMKM.cjs} +3 -3
  27. package/dist/{chunk-CBRL2PJA.cjs → chunk-JQYC66TO.cjs} +12 -12
  28. package/dist/{chunk-YFIWCYHC.cjs → chunk-JZLGCTGK.cjs} +56 -54
  29. package/dist/{chunk-4ZCXK4VI.cjs → chunk-KFRDLKMA.cjs} +14 -14
  30. package/dist/chunk-KWFFIJYX.js +11 -0
  31. package/dist/chunk-M4IT6DNJ.cjs +608 -0
  32. package/dist/{chunk-43RFBQ73.cjs → chunk-MVDQMV25.cjs} +29 -32
  33. package/dist/chunk-NCVX3K2N.cjs +161 -0
  34. package/dist/chunk-NWFMBLSQ.js +4 -0
  35. package/dist/chunk-O5676ZWY.js +585 -0
  36. package/dist/chunk-PUX5VXDB.cjs +8845 -0
  37. package/dist/{chunk-DRSPMIZ7.js → chunk-QBJ7O2B4.js} +1 -11
  38. package/dist/{chunk-UJS4N2XM.cjs → chunk-TEBM66WA.cjs} +12 -12
  39. package/dist/{chunk-TN65XNTI.js → chunk-TWT3STIX.js} +8 -6
  40. package/dist/chunk-UG5RKLU2.cjs +6 -0
  41. package/dist/chunk-VP2B4WM2.js +154 -0
  42. package/dist/{chunk-BK7YIVLK.cjs → chunk-WJLECC22.cjs} +75 -73
  43. package/dist/{chunk-NFW7AUEX.js → chunk-WMACINXO.js} +1 -1
  44. package/dist/{chunk-AYGRYDBX.cjs → chunk-XAYGD4E4.cjs} +37 -35
  45. package/dist/{chunk-46T67CE2.js → chunk-ZA673I3O.js} +1 -1
  46. package/dist/{chunk-YPYCWLYP.js → chunk-ZWXJTBZO.js} +1 -1
  47. package/dist/core/addresses.d.ts +14 -2
  48. package/dist/core/brands.d.ts +8 -2
  49. package/dist/core/errors.d.ts +71 -10
  50. package/dist/core/preflight.d.ts +1 -0
  51. package/dist/fhe/erc7984-abi.d.ts +1 -0
  52. package/dist/fhe/index.cjs +64 -63
  53. package/dist/fhe/index.js +7 -6
  54. package/dist/fhe/operators.d.ts +22 -5
  55. package/dist/fhe/react/index.cjs +13 -12
  56. package/dist/fhe/react/index.js +6 -5
  57. package/dist/fhe/types.d.ts +6 -0
  58. package/dist/fhe-airdrop/abis/{cloneable.d.ts → airdrop-base.d.ts} +254 -396
  59. package/dist/fhe-airdrop/abis/compliance.d.ts +422 -0
  60. package/dist/fhe-airdrop/abis/ecdsa.d.ts +1316 -0
  61. package/dist/fhe-airdrop/abis/factory.d.ts +1319 -190
  62. package/dist/fhe-airdrop/abis/index.d.ts +5 -2
  63. package/dist/fhe-airdrop/abis/merkle.d.ts +1238 -0
  64. package/dist/fhe-airdrop/advanced/index.cjs +11 -12
  65. package/dist/fhe-airdrop/advanced/index.d.cts +34 -11
  66. package/dist/fhe-airdrop/advanced/index.d.ts +34 -11
  67. package/dist/fhe-airdrop/advanced/index.js +3 -8
  68. package/dist/fhe-airdrop/advanced/react/index.cjs +37 -50
  69. package/dist/fhe-airdrop/advanced/react/index.d.cts +9 -3
  70. package/dist/fhe-airdrop/advanced/react/index.d.ts +9 -3
  71. package/dist/fhe-airdrop/advanced/react/index.js +36 -50
  72. package/dist/fhe-airdrop/advanced/react/usePredictEcdsaAirdropAddress.d.ts +33 -0
  73. package/dist/fhe-airdrop/advanced/react/usePredictMerkleAirdropAddress.d.ts +27 -0
  74. package/dist/fhe-airdrop/airdrop-base.d.ts +600 -0
  75. package/dist/fhe-airdrop/campaign.d.ts +297 -0
  76. package/dist/fhe-airdrop/compliance.d.ts +302 -0
  77. package/dist/fhe-airdrop/constants.d.ts +33 -0
  78. package/dist/fhe-airdrop/ecdsa.d.ts +263 -0
  79. package/dist/fhe-airdrop/encryption.d.ts +92 -14
  80. package/dist/fhe-airdrop/errors.d.ts +245 -15
  81. package/dist/fhe-airdrop/factory.d.ts +533 -274
  82. package/dist/fhe-airdrop/guards.d.ts +273 -0
  83. package/dist/fhe-airdrop/index.cjs +1131 -74
  84. package/dist/fhe-airdrop/index.d.cts +46 -8
  85. package/dist/fhe-airdrop/index.d.ts +46 -8
  86. package/dist/fhe-airdrop/index.js +931 -8
  87. package/dist/fhe-airdrop/merkle-tree.d.ts +103 -0
  88. package/dist/fhe-airdrop/merkle.d.ts +180 -0
  89. package/dist/fhe-airdrop/react/_shared.d.ts +144 -71
  90. package/dist/fhe-airdrop/react/index.cjs +399 -459
  91. package/dist/fhe-airdrop/react/index.d.cts +53 -74
  92. package/dist/fhe-airdrop/react/index.d.ts +53 -74
  93. package/dist/fhe-airdrop/react/index.js +261 -374
  94. package/dist/fhe-airdrop/react/useAirdropGasFee.d.ts +10 -5
  95. package/dist/fhe-airdrop/react/useAirdropHasRole.d.ts +15 -6
  96. package/dist/fhe-airdrop/react/useAirdropPause.d.ts +30 -0
  97. package/dist/fhe-airdrop/react/useAirdropPaused.d.ts +17 -0
  98. package/dist/fhe-airdrop/react/useAirdropToken.d.ts +11 -4
  99. package/dist/fhe-airdrop/react/useAirdropWindow.d.ts +37 -0
  100. package/dist/fhe-airdrop/react/useClaimedAmount.d.ts +29 -0
  101. package/dist/fhe-airdrop/react/useComplianceManager.d.ts +16 -0
  102. package/dist/fhe-airdrop/react/useCreateEcdsaAirdrop.d.ts +28 -0
  103. package/dist/fhe-airdrop/react/useCreateMerkleAirdrop.d.ts +25 -0
  104. package/dist/fhe-airdrop/react/useEcdsaClaim.d.ts +23 -0
  105. package/dist/fhe-airdrop/react/useEffectiveUpgradeable.d.ts +20 -0
  106. package/dist/fhe-airdrop/react/useExtendClaimWindow.d.ts +17 -12
  107. package/dist/fhe-airdrop/react/useFactoryFees.d.ts +28 -0
  108. package/dist/fhe-airdrop/react/useFactoryRegistry.d.ts +35 -0
  109. package/dist/fhe-airdrop/react/useFundAirdrop.d.ts +35 -0
  110. package/dist/fhe-airdrop/react/useGrantInstanceRoles.d.ts +35 -0
  111. package/dist/fhe-airdrop/react/useMerkleClaim.d.ts +34 -0
  112. package/dist/fhe-airdrop/react/useMerkleRoot.d.ts +15 -0
  113. package/dist/fhe-airdrop/react/useSetMerkleRoot.d.ts +22 -0
  114. package/dist/fhe-airdrop/react/useWithdrawConfidential.d.ts +23 -0
  115. package/dist/fhe-airdrop/roles.d.ts +147 -0
  116. package/dist/fhe-airdrop/types.d.ts +67 -65
  117. package/dist/fhe-disperse/index.cjs +70 -68
  118. package/dist/fhe-disperse/index.js +10 -8
  119. package/dist/fhe-disperse/react/index.cjs +94 -92
  120. package/dist/fhe-disperse/react/index.js +13 -11
  121. package/dist/fhe-vesting/advanced/index.cjs +10 -8
  122. package/dist/fhe-vesting/advanced/index.js +8 -6
  123. package/dist/fhe-vesting/advanced/react/index.cjs +16 -14
  124. package/dist/fhe-vesting/advanced/react/index.js +13 -11
  125. package/dist/fhe-vesting/index.cjs +74 -72
  126. package/dist/fhe-vesting/index.js +11 -9
  127. package/dist/fhe-vesting/react/index.cjs +228 -226
  128. package/dist/fhe-vesting/react/index.js +15 -13
  129. package/dist/index.cjs +100 -87
  130. package/dist/index.js +3 -2
  131. package/dist/testnet-faucet/index.cjs +57 -55
  132. package/dist/testnet-faucet/index.js +7 -5
  133. package/dist/testnet-faucet/react/index.cjs +55 -53
  134. package/dist/testnet-faucet/react/index.js +9 -7
  135. package/package.json +6 -2
  136. package/dist/chunk-CNP4L3GF.js +0 -105
  137. package/dist/chunk-KSDSXJ34.js +0 -41
  138. package/dist/chunk-LBWRFZR3.cjs +0 -1681
  139. package/dist/chunk-OL6SHN3D.cjs +0 -44
  140. package/dist/chunk-S2XD75JM.js +0 -1637
  141. package/dist/chunk-SPGSO5SO.cjs +0 -1644
  142. package/dist/chunk-UE5XK2SY.js +0 -1673
  143. package/dist/chunk-WO72UBQD.cjs +0 -109
  144. package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +0 -53
  145. package/dist/fhe-airdrop/advanced/react/usePredictAirdropAddress.d.ts +0 -49
  146. package/dist/fhe-airdrop/airdrop.d.ts +0 -317
  147. package/dist/fhe-airdrop/react/useAccessClaimAmount.d.ts +0 -37
  148. package/dist/fhe-airdrop/react/useAirdropCanExtendClaimWindow.d.ts +0 -7
  149. package/dist/fhe-airdrop/react/useAirdropClaimTypehash.d.ts +0 -10
  150. package/dist/fhe-airdrop/react/useAirdropClaimedSignatures.d.ts +0 -16
  151. package/dist/fhe-airdrop/react/useAirdropDeploymentBlockNumber.d.ts +0 -6
  152. package/dist/fhe-airdrop/react/useAirdropDomainSeparator.d.ts +0 -8
  153. package/dist/fhe-airdrop/react/useAirdropEndTime.d.ts +0 -10
  154. package/dist/fhe-airdrop/react/useAirdropFactoryCustomFee.d.ts +0 -17
  155. package/dist/fhe-airdrop/react/useAirdropFactoryDefaultGasFee.d.ts +0 -10
  156. package/dist/fhe-airdrop/react/useAirdropFactoryDisableCustomFee.d.ts +0 -15
  157. package/dist/fhe-airdrop/react/useAirdropFactoryFeeCollector.d.ts +0 -11
  158. package/dist/fhe-airdrop/react/useAirdropFactoryInitCodeHash.d.ts +0 -17
  159. package/dist/fhe-airdrop/react/useAirdropFactorySetCustomFee.d.ts +0 -17
  160. package/dist/fhe-airdrop/react/useAirdropFactorySetDefaultGasFee.d.ts +0 -16
  161. package/dist/fhe-airdrop/react/useAirdropFactorySetFeeCollector.d.ts +0 -15
  162. package/dist/fhe-airdrop/react/useAirdropGrantRole.d.ts +0 -16
  163. package/dist/fhe-airdrop/react/useAirdropHasClaimEnded.d.ts +0 -7
  164. package/dist/fhe-airdrop/react/useAirdropHasClaimStarted.d.ts +0 -7
  165. package/dist/fhe-airdrop/react/useAirdropIsClaimWindowActive.d.ts +0 -9
  166. package/dist/fhe-airdrop/react/useAirdropIsPaused.d.ts +0 -8
  167. package/dist/fhe-airdrop/react/useAirdropIsSignatureClaimed.d.ts +0 -22
  168. package/dist/fhe-airdrop/react/useAirdropIsSignatureValid.d.ts +0 -51
  169. package/dist/fhe-airdrop/react/useAirdropRevokeRole.d.ts +0 -15
  170. package/dist/fhe-airdrop/react/useAirdropStartTime.d.ts +0 -10
  171. package/dist/fhe-airdrop/react/useAirdropWithdrawGasFee.d.ts +0 -15
  172. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherConfidentialToken.d.ts +0 -14
  173. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherToken.d.ts +0 -14
  174. package/dist/fhe-airdrop/react/useClaim.d.ts +0 -39
  175. package/dist/fhe-airdrop/react/useConfidentialAirdropFactoryImplementation.d.ts +0 -11
  176. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdrop.d.ts +0 -41
  177. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdropAndGetAddress.d.ts +0 -48
  178. package/dist/fhe-airdrop/react/useCreateConfidentialAirdrop.d.ts +0 -29
  179. package/dist/fhe-airdrop/react/useCreateConfidentialAirdropAndGetAddress.d.ts +0 -31
  180. package/dist/fhe-airdrop/react/useDisableCustomFee.d.ts +0 -14
  181. package/dist/fhe-airdrop/react/useFactoryCustomFee.d.ts +0 -17
  182. package/dist/fhe-airdrop/react/useFactoryDefaultGasFee.d.ts +0 -10
  183. package/dist/fhe-airdrop/react/useFactoryFeeCollector.d.ts +0 -11
  184. package/dist/fhe-airdrop/react/useFactoryInitCodeHash.d.ts +0 -17
  185. package/dist/fhe-airdrop/react/useFundConfidentialAirdrop.d.ts +0 -33
  186. package/dist/fhe-airdrop/react/usePreflightCreateAirdrop.d.ts +0 -51
  187. package/dist/fhe-airdrop/react/useSetCustomFee.d.ts +0 -16
  188. package/dist/fhe-airdrop/react/useSetDefaultGasFee.d.ts +0 -15
  189. package/dist/fhe-airdrop/react/useSetFeeCollector.d.ts +0 -14
  190. package/dist/fhe-airdrop/react/useSetPaused.d.ts +0 -14
  191. package/dist/fhe-airdrop/react/useSignClaimAuthorization.d.ts +0 -31
  192. package/dist/fhe-airdrop/react/useWithdraw.d.ts +0 -12
  193. package/dist/fhe-airdrop/react/useWithdrawOtherConfidentialToken.d.ts +0 -13
  194. package/dist/fhe-airdrop/react/useWithdrawOtherToken.d.ts +0 -13
@@ -1,93 +1,72 @@
1
1
  /**
2
2
  * React/wagmi hooks for `@tokenops/sdk/fhe-airdrop`.
3
3
  *
4
- * Every public method on the headless `ConfidentialAirdropFactoryClient` and
5
- * `ConfidentialAirdropClient` is wrapped as a hook here. Hooks compose with
6
- * wagmi (`usePublicClient`, `useWalletClient`) and TanStack Query
7
- * (`useQuery`, `useMutation`) — no extra provider needed beyond the standard
8
- * wagmi `<WagmiProvider>` + `<QueryClientProvider>`.
4
+ * v1 shipped 30 hooks, many one-line reads nobody called (Task 4 deleted all
5
+ * of them). This subpath ships exactly the v2 hook list — a consumer who
6
+ * needs a headless method not wrapped here calls it directly from
7
+ * `@tokenops/sdk/fhe-airdrop`; every hook below composes with wagmi
8
+ * (`usePublicClient`, `useWalletClient`) and TanStack Query (`useQuery`,
9
+ * `useMutation`) — no extra provider needed beyond the standard wagmi
10
+ * `<WagmiProvider>` + `<QueryClientProvider>`.
9
11
  *
10
- * **Encryptor.** For *factory* methods that submit encrypted inputs
11
- * (`useCreateAndFundConfidentialAirdrop`, `useFundConfidentialAirdrop`), pass
12
- * an explicit `encryptor` source (eager `Encryptor` or
13
- * `() => Encryptor | undefined`) at hook construction. `useZamaSDK()` returns
14
- * `ZamaSDK`; the encrypt-capable interface lives on `.relayer`. Wire it as a
15
- * lazy factory so the SDK picks up the live React context at submit time
16
- * (CLAUDE.md Pitfall #3):
12
+ * **Encryptor.** Only `useFundAirdrop` submits an encrypted input. Pass an
13
+ * explicit `encryptor` source (eager `Encryptor` or `() => Encryptor |
14
+ * undefined`) — wire it as a lazy factory so the SDK picks up the live React
15
+ * context at submit time (CLAUDE.md Pitfall #3):
17
16
  *
18
17
  * ```ts
19
18
  * import { useZamaSDK } from "@zama-fhe/react-sdk";
20
19
  *
21
- * function Component({ token }) {
20
+ * function Component() {
22
21
  * const zamaSDK = useZamaSDK();
23
- * const create = useCreateAndFundConfidentialAirdrop({
24
- * encryptor: () => zamaSDK.relayer,
25
- * });
22
+ * const fund = useFundAirdrop({ encryptor: () => zamaSDK.relayer });
26
23
  * ...
27
24
  * }
28
25
  * ```
29
26
  *
30
- * Airdrop *clone* hooks (`useClaim`, `useGetClaimAmount`) take no `encryptor`
31
- * — the recipient submits the admin-issued `{ encryptedInput, signature }`
32
- * payload verbatim. The signature commits to a specific handle; re-encrypting
33
- * client-side would invalidate it.
34
- *
35
27
  * `@zama-fhe/react-sdk` is an **OPTIONAL** peer dep — install it explicitly
36
- * (`pnpm add @zama-fhe/react-sdk`) for FHE flows. The hook surface here never
37
- * imports it at top level; consumers without FHE pay no cost.
28
+ * for FHE flows. The hook surface here never imports it at top level;
29
+ * consumers without FHE pay no cost.
38
30
  *
39
- * Mutations do NOT auto-invalidate read queries — that's a consumer decision.
40
- * Each mutation's TSDoc documents the recommended `queryClient.invalidateQueries`.
31
+ * **Invalidation — unlike `/fhe-vesting`, write hooks here DO invalidate**
32
+ * the query keys they affect, `onSuccess`, scoped to exactly what changed
33
+ * (this instance's `merkleRoot`, this instance's `hasRole` bucket, …) — never
34
+ * the whole `fhe-airdrop` namespace. See each write hook's "Invalidates" note.
41
35
  */
42
- export { useConfidentialAirdropFactoryImplementation } from "./useConfidentialAirdropFactoryImplementation.js";
43
- export { useFactoryDefaultGasFee } from "./useFactoryDefaultGasFee.js";
44
- export { useFactoryFeeCollector } from "./useFactoryFeeCollector.js";
45
- export { useFactoryCustomFee, type UseFactoryCustomFeeArgs } from "./useFactoryCustomFee.js";
46
- export { useFactoryInitCodeHash, type UseFactoryInitCodeHashArgs, } from "./useFactoryInitCodeHash.js";
47
- export { usePreflightCreateAirdrop, type UsePreflightCreateAirdropArgs, } from "./usePreflightCreateAirdrop.js";
48
- export { useCreateConfidentialAirdropAndGetAddress } from "./useCreateConfidentialAirdropAndGetAddress.js";
49
- export { useCreateConfidentialAirdrop } from "./useCreateConfidentialAirdrop.js";
50
- export { useCreateAndFundConfidentialAirdrop } from "./useCreateAndFundConfidentialAirdrop.js";
51
- export { useCreateAndFundConfidentialAirdropAndGetAddress } from "./useCreateAndFundConfidentialAirdropAndGetAddress.js";
52
- export { useFundConfidentialAirdrop } from "./useFundConfidentialAirdrop.js";
53
- export { useSetFeeCollector, type UseSetFeeCollectorArgs } from "./useSetFeeCollector.js";
54
- export { useSetDefaultGasFee, type UseSetDefaultGasFeeArgs } from "./useSetDefaultGasFee.js";
55
- export { useSetCustomFee, type UseSetCustomFeeArgs } from "./useSetCustomFee.js";
56
- export { useDisableCustomFee, type UseDisableCustomFeeArgs } from "./useDisableCustomFee.js";
57
- export { useAirdropToken } from "./useAirdropToken.js";
58
- export { useAirdropGasFee } from "./useAirdropGasFee.js";
59
- export { useAirdropStartTime } from "./useAirdropStartTime.js";
60
- export { useAirdropCanExtendClaimWindow } from "./useAirdropCanExtendClaimWindow.js";
61
- export { useAirdropEndTime } from "./useAirdropEndTime.js";
62
- export { useAirdropIsPaused } from "./useAirdropIsPaused.js";
63
- export { useAirdropDeploymentBlockNumber } from "./useAirdropDeploymentBlockNumber.js";
64
- export { useAirdropDomainSeparator } from "./useAirdropDomainSeparator.js";
65
- export { useAirdropClaimTypehash } from "./useAirdropClaimTypehash.js";
66
- export { useAirdropIsClaimWindowActive } from "./useAirdropIsClaimWindowActive.js";
67
- export { useAirdropHasClaimStarted } from "./useAirdropHasClaimStarted.js";
68
- export { useAirdropHasClaimEnded } from "./useAirdropHasClaimEnded.js";
69
- export { useAirdropClaimedSignatures, type UseAirdropClaimedSignaturesArgs, } from "./useAirdropClaimedSignatures.js";
70
- export { useAirdropIsSignatureClaimed, type UseAirdropIsSignatureClaimedArgs, } from "./useAirdropIsSignatureClaimed.js";
71
- export { useAirdropIsSignatureValid, type UseAirdropIsSignatureValidArgs, } from "./useAirdropIsSignatureValid.js";
36
+ export { useAirdropToken, type UseAirdropTokenArgs } from "./useAirdropToken.js";
37
+ export { useAirdropWindow, type AirdropWindow, type UseAirdropWindowArgs, } from "./useAirdropWindow.js";
38
+ export { useAirdropPaused, type UseAirdropPausedArgs } from "./useAirdropPaused.js";
39
+ export { useAirdropGasFee, type UseAirdropGasFeeArgs } from "./useAirdropGasFee.js";
72
40
  export { useAirdropHasRole, type UseAirdropHasRoleArgs } from "./useAirdropHasRole.js";
73
- export { useClaim } from "./useClaim.js";
74
- export { useAccessClaimAmount, useGetClaimAmount } from "./useAccessClaimAmount.js";
75
- export { useWithdraw, type UseWithdrawArgs } from "./useWithdraw.js";
76
- export { useSetPaused, type UseSetPausedArgs } from "./useSetPaused.js";
77
- export { useExtendClaimWindow, type UseExtendClaimWindowArgs } from "./useExtendClaimWindow.js";
78
- export { useWithdrawOtherToken, type UseWithdrawOtherTokenArgs } from "./useWithdrawOtherToken.js";
79
- export { useWithdrawOtherConfidentialToken, type UseWithdrawOtherConfidentialTokenArgs, } from "./useWithdrawOtherConfidentialToken.js";
80
- export { useAirdropWithdrawGasFee, type UseAirdropWithdrawGasFeeArgs, } from "./useAirdropWithdrawGasFee.js";
81
- export { useAirdropGrantRole, type UseAirdropGrantRoleArgs } from "./useAirdropGrantRole.js";
82
- export { useAirdropRevokeRole, type UseAirdropRevokeRoleArgs } from "./useAirdropRevokeRole.js";
83
- export { useSignClaimAuthorization, type UseSignClaimAuthorizationArgs, type UseSignClaimAuthorizationOptions, } from "./useSignClaimAuthorization.js";
84
- export type { BaseHookOptions, AirdropHookOptions, FactoryHookOptions } from "./_shared.js";
41
+ export { useMerkleRoot, type UseMerkleRootArgs } from "./useMerkleRoot.js";
42
+ export { useClaimedAmount, type UseClaimedAmountArgs } from "./useClaimedAmount.js";
43
+ export { useComplianceManager, type UseComplianceManagerArgs } from "./useComplianceManager.js";
44
+ export { useFactoryFees, type FactoryFees, type UseFactoryFeesArgs } from "./useFactoryFees.js";
45
+ export { useFactoryRegistry, type FactoryRegistryPage, type UseFactoryRegistryArgs, } from "./useFactoryRegistry.js";
46
+ export { useEffectiveUpgradeable, type UseEffectiveUpgradeableArgs, } from "./useEffectiveUpgradeable.js";
47
+ export { useCreateEcdsaAirdrop } from "./useCreateEcdsaAirdrop.js";
48
+ export { useCreateMerkleAirdrop } from "./useCreateMerkleAirdrop.js";
49
+ export { useFundAirdrop } from "./useFundAirdrop.js";
50
+ export { useEcdsaClaim } from "./useEcdsaClaim.js";
51
+ export { useMerkleClaim } from "./useMerkleClaim.js";
52
+ export { useSetMerkleRoot } from "./useSetMerkleRoot.js";
53
+ export { useGrantInstanceRoles, type GrantInstanceRolesArgs } from "./useGrantInstanceRoles.js";
54
+ export { useAirdropPause, type AirdropPauseArgs } from "./useAirdropPause.js";
55
+ export { useExtendClaimWindow } from "./useExtendClaimWindow.js";
56
+ export { useWithdrawConfidential } from "./useWithdrawConfidential.js";
57
+ export { airdropQueryKey, airdropQueryKeyPrefix, type AirdropClientOptions, type AirdropHookOptions, type AirdropInstanceClientOptions, type AirdropInstanceHookOptions, type EcdsaAirdropInstanceClientOptions, type EcdsaAirdropInstanceHookOptions, } from "./_shared.js";
85
58
  export { encryptUint64, encryptUint64Batch, resolveEncryptor, signClaimAuthorization, type Encryptor, type EncryptorSource, type EncryptUint64Args, type EncryptUint64BatchArgs, type FheValueInput, } from "../encryption.js";
86
- export { type AirdropParams, type CreateAirdropPreflightReport, type CustomFee, type EncryptedInput, type EncryptedInputs, } from "../types.js";
87
- export type { ClaimArgs, EncryptedViewResult, GetClaimAmountArgs, IsSignatureValidArgs, } from "../airdrop.js";
88
- export type { CreateAirdropResult, CreateAirdropArgs, CreateAndFundAirdropArgs, FundAirdropArgs, PredictAirdropArgs, PreflightCreateAirdropArgs, } from "../factory.js";
59
+ export type { EncryptedInput, EncryptedInputs, EncryptedViewResult } from "../../fhe/types.js";
60
+ export type { CreateAirdropArgs, CreateAirdropResult, EcdsaAirdropParams, MerkleAirdropParams, CommonAirdropParams, BuiltCampaign, CampaignEntry, CampaignRecipient, } from "../types.js";
61
+ export type { EcdsaClaimArgs, GetClaimAmountArgs as EcdsaGetClaimAmountArgs } from "../ecdsa.js";
62
+ export type { MerkleClaimArgs } from "../merkle.js";
63
+ export { buildMerkleTree, leafOf, type BuildMerkleTreeArgs, type BuiltMerkleTree, type LeafOfArgs, type MerkleLeafInput, } from "../merkle-tree.js";
64
+ export type { FundInput } from "../factory.js";
65
+ export type { WriteAccountOverride } from "../airdrop-base.js";
66
+ export { buildMerkleCampaign, encryptCampaignAmounts, planMerkleCampaign, rotateMerkleRoot, validateCampaignRecipients, type BuildMerkleCampaignArgs, type EncryptCampaignAmountsArgs, type EncryptedCampaignLeaf, type PlanMerkleCampaignArgs, type PlannedCampaign, type RotatedCampaign, type RotateMerkleRootArgs, } from "../campaign.js";
67
+ export { preflightClaim, preflightCreate, type ClaimPreflightTarget, type EcdsaClaimPreflightSignature, type PreflightClaimArgs, type PreflightCreateArgs, } from "../guards.js";
68
+ export type { PreflightResult } from "../../core/preflight.js";
69
+ export { grantInstanceRoles, planInstanceRoleSplit, type InstanceRoleAssignment, type RoleGrantOutcome, type RoleGrantStep, type RoleName, } from "../roles.js";
70
+ export { type DedupMode, type DeploymentMode } from "../constants.js";
89
71
  export { TokenOpsSdkError, isTokenOpsSdkError, DeploymentAddressUnavailableError, UnsupportedChainError, MissingAccountError, MissingClientError, MissingEncryptorError, MissingPublicClientError, MissingWalletClientError, InvalidArgumentError, ReceiptEventAmbiguousError, ReceiptEventNotFoundError, ContractRevertError, PausedError, AccessDeniedError, OperatorNotApprovedError, InsufficientFeeError, InsufficientBalanceError, BatchTooLargeError, FeatureDisabledError, TransferFailedError, FheHandleNotAllowedError, AlreadyInitializedError, ReentrancyError, InvalidSignatureError, WalletRejectedError, WalletChainMismatchError, NetworkError, InsufficientGasFundsError, UnknownWriteFailureError, UserRejectedSignatureError, SigningFailedError, RelayerUnreachableError, EncryptionFailedError, DecryptionFailedError, UserDecryptNotAllowedError, type DeploymentAddressUnavailableReason, type TokenOpsSdkErrorCode, } from "../../core/errors.js";
90
- export { type PreflightResult } from "../../core/preflight.js";
91
- export { AlreadyClaimedError, ClaimNotStartedError, ClaimWindowClosedError } from "../errors.js";
92
- export { useIsOperator, type UseIsOperatorOptions } from "../../fhe/react/useIsOperator.js";
93
- export { useEnsureOperator, type UseEnsureOperatorOptions, type EnsureOperatorVariables, } from "../../fhe/react/useEnsureOperator.js";
72
+ export { AlreadyClaimedError, ClaimNotStartedError, ClaimWindowClosedError, DedupIdConsumedError, FeeCollectorSelfAdministeredError, MerkleUupsUnsupportedError, NonStockWrapperError, PredictionDriftError, SaltCollisionError, SignatureExpiredError, UpgradeabilityNotAllowedError, type AirdropVariant, } from "../errors.js";
@@ -1,93 +1,72 @@
1
1
  /**
2
2
  * React/wagmi hooks for `@tokenops/sdk/fhe-airdrop`.
3
3
  *
4
- * Every public method on the headless `ConfidentialAirdropFactoryClient` and
5
- * `ConfidentialAirdropClient` is wrapped as a hook here. Hooks compose with
6
- * wagmi (`usePublicClient`, `useWalletClient`) and TanStack Query
7
- * (`useQuery`, `useMutation`) — no extra provider needed beyond the standard
8
- * wagmi `<WagmiProvider>` + `<QueryClientProvider>`.
4
+ * v1 shipped 30 hooks, many one-line reads nobody called (Task 4 deleted all
5
+ * of them). This subpath ships exactly the v2 hook list — a consumer who
6
+ * needs a headless method not wrapped here calls it directly from
7
+ * `@tokenops/sdk/fhe-airdrop`; every hook below composes with wagmi
8
+ * (`usePublicClient`, `useWalletClient`) and TanStack Query (`useQuery`,
9
+ * `useMutation`) — no extra provider needed beyond the standard wagmi
10
+ * `<WagmiProvider>` + `<QueryClientProvider>`.
9
11
  *
10
- * **Encryptor.** For *factory* methods that submit encrypted inputs
11
- * (`useCreateAndFundConfidentialAirdrop`, `useFundConfidentialAirdrop`), pass
12
- * an explicit `encryptor` source (eager `Encryptor` or
13
- * `() => Encryptor | undefined`) at hook construction. `useZamaSDK()` returns
14
- * `ZamaSDK`; the encrypt-capable interface lives on `.relayer`. Wire it as a
15
- * lazy factory so the SDK picks up the live React context at submit time
16
- * (CLAUDE.md Pitfall #3):
12
+ * **Encryptor.** Only `useFundAirdrop` submits an encrypted input. Pass an
13
+ * explicit `encryptor` source (eager `Encryptor` or `() => Encryptor |
14
+ * undefined`) — wire it as a lazy factory so the SDK picks up the live React
15
+ * context at submit time (CLAUDE.md Pitfall #3):
17
16
  *
18
17
  * ```ts
19
18
  * import { useZamaSDK } from "@zama-fhe/react-sdk";
20
19
  *
21
- * function Component({ token }) {
20
+ * function Component() {
22
21
  * const zamaSDK = useZamaSDK();
23
- * const create = useCreateAndFundConfidentialAirdrop({
24
- * encryptor: () => zamaSDK.relayer,
25
- * });
22
+ * const fund = useFundAirdrop({ encryptor: () => zamaSDK.relayer });
26
23
  * ...
27
24
  * }
28
25
  * ```
29
26
  *
30
- * Airdrop *clone* hooks (`useClaim`, `useGetClaimAmount`) take no `encryptor`
31
- * — the recipient submits the admin-issued `{ encryptedInput, signature }`
32
- * payload verbatim. The signature commits to a specific handle; re-encrypting
33
- * client-side would invalidate it.
34
- *
35
27
  * `@zama-fhe/react-sdk` is an **OPTIONAL** peer dep — install it explicitly
36
- * (`pnpm add @zama-fhe/react-sdk`) for FHE flows. The hook surface here never
37
- * imports it at top level; consumers without FHE pay no cost.
28
+ * for FHE flows. The hook surface here never imports it at top level;
29
+ * consumers without FHE pay no cost.
38
30
  *
39
- * Mutations do NOT auto-invalidate read queries — that's a consumer decision.
40
- * Each mutation's TSDoc documents the recommended `queryClient.invalidateQueries`.
31
+ * **Invalidation — unlike `/fhe-vesting`, write hooks here DO invalidate**
32
+ * the query keys they affect, `onSuccess`, scoped to exactly what changed
33
+ * (this instance's `merkleRoot`, this instance's `hasRole` bucket, …) — never
34
+ * the whole `fhe-airdrop` namespace. See each write hook's "Invalidates" note.
41
35
  */
42
- export { useConfidentialAirdropFactoryImplementation } from "./useConfidentialAirdropFactoryImplementation.js";
43
- export { useFactoryDefaultGasFee } from "./useFactoryDefaultGasFee.js";
44
- export { useFactoryFeeCollector } from "./useFactoryFeeCollector.js";
45
- export { useFactoryCustomFee, type UseFactoryCustomFeeArgs } from "./useFactoryCustomFee.js";
46
- export { useFactoryInitCodeHash, type UseFactoryInitCodeHashArgs, } from "./useFactoryInitCodeHash.js";
47
- export { usePreflightCreateAirdrop, type UsePreflightCreateAirdropArgs, } from "./usePreflightCreateAirdrop.js";
48
- export { useCreateConfidentialAirdropAndGetAddress } from "./useCreateConfidentialAirdropAndGetAddress.js";
49
- export { useCreateConfidentialAirdrop } from "./useCreateConfidentialAirdrop.js";
50
- export { useCreateAndFundConfidentialAirdrop } from "./useCreateAndFundConfidentialAirdrop.js";
51
- export { useCreateAndFundConfidentialAirdropAndGetAddress } from "./useCreateAndFundConfidentialAirdropAndGetAddress.js";
52
- export { useFundConfidentialAirdrop } from "./useFundConfidentialAirdrop.js";
53
- export { useSetFeeCollector, type UseSetFeeCollectorArgs } from "./useSetFeeCollector.js";
54
- export { useSetDefaultGasFee, type UseSetDefaultGasFeeArgs } from "./useSetDefaultGasFee.js";
55
- export { useSetCustomFee, type UseSetCustomFeeArgs } from "./useSetCustomFee.js";
56
- export { useDisableCustomFee, type UseDisableCustomFeeArgs } from "./useDisableCustomFee.js";
57
- export { useAirdropToken } from "./useAirdropToken.js";
58
- export { useAirdropGasFee } from "./useAirdropGasFee.js";
59
- export { useAirdropStartTime } from "./useAirdropStartTime.js";
60
- export { useAirdropCanExtendClaimWindow } from "./useAirdropCanExtendClaimWindow.js";
61
- export { useAirdropEndTime } from "./useAirdropEndTime.js";
62
- export { useAirdropIsPaused } from "./useAirdropIsPaused.js";
63
- export { useAirdropDeploymentBlockNumber } from "./useAirdropDeploymentBlockNumber.js";
64
- export { useAirdropDomainSeparator } from "./useAirdropDomainSeparator.js";
65
- export { useAirdropClaimTypehash } from "./useAirdropClaimTypehash.js";
66
- export { useAirdropIsClaimWindowActive } from "./useAirdropIsClaimWindowActive.js";
67
- export { useAirdropHasClaimStarted } from "./useAirdropHasClaimStarted.js";
68
- export { useAirdropHasClaimEnded } from "./useAirdropHasClaimEnded.js";
69
- export { useAirdropClaimedSignatures, type UseAirdropClaimedSignaturesArgs, } from "./useAirdropClaimedSignatures.js";
70
- export { useAirdropIsSignatureClaimed, type UseAirdropIsSignatureClaimedArgs, } from "./useAirdropIsSignatureClaimed.js";
71
- export { useAirdropIsSignatureValid, type UseAirdropIsSignatureValidArgs, } from "./useAirdropIsSignatureValid.js";
36
+ export { useAirdropToken, type UseAirdropTokenArgs } from "./useAirdropToken.js";
37
+ export { useAirdropWindow, type AirdropWindow, type UseAirdropWindowArgs, } from "./useAirdropWindow.js";
38
+ export { useAirdropPaused, type UseAirdropPausedArgs } from "./useAirdropPaused.js";
39
+ export { useAirdropGasFee, type UseAirdropGasFeeArgs } from "./useAirdropGasFee.js";
72
40
  export { useAirdropHasRole, type UseAirdropHasRoleArgs } from "./useAirdropHasRole.js";
73
- export { useClaim } from "./useClaim.js";
74
- export { useAccessClaimAmount, useGetClaimAmount } from "./useAccessClaimAmount.js";
75
- export { useWithdraw, type UseWithdrawArgs } from "./useWithdraw.js";
76
- export { useSetPaused, type UseSetPausedArgs } from "./useSetPaused.js";
77
- export { useExtendClaimWindow, type UseExtendClaimWindowArgs } from "./useExtendClaimWindow.js";
78
- export { useWithdrawOtherToken, type UseWithdrawOtherTokenArgs } from "./useWithdrawOtherToken.js";
79
- export { useWithdrawOtherConfidentialToken, type UseWithdrawOtherConfidentialTokenArgs, } from "./useWithdrawOtherConfidentialToken.js";
80
- export { useAirdropWithdrawGasFee, type UseAirdropWithdrawGasFeeArgs, } from "./useAirdropWithdrawGasFee.js";
81
- export { useAirdropGrantRole, type UseAirdropGrantRoleArgs } from "./useAirdropGrantRole.js";
82
- export { useAirdropRevokeRole, type UseAirdropRevokeRoleArgs } from "./useAirdropRevokeRole.js";
83
- export { useSignClaimAuthorization, type UseSignClaimAuthorizationArgs, type UseSignClaimAuthorizationOptions, } from "./useSignClaimAuthorization.js";
84
- export type { BaseHookOptions, AirdropHookOptions, FactoryHookOptions } from "./_shared.js";
41
+ export { useMerkleRoot, type UseMerkleRootArgs } from "./useMerkleRoot.js";
42
+ export { useClaimedAmount, type UseClaimedAmountArgs } from "./useClaimedAmount.js";
43
+ export { useComplianceManager, type UseComplianceManagerArgs } from "./useComplianceManager.js";
44
+ export { useFactoryFees, type FactoryFees, type UseFactoryFeesArgs } from "./useFactoryFees.js";
45
+ export { useFactoryRegistry, type FactoryRegistryPage, type UseFactoryRegistryArgs, } from "./useFactoryRegistry.js";
46
+ export { useEffectiveUpgradeable, type UseEffectiveUpgradeableArgs, } from "./useEffectiveUpgradeable.js";
47
+ export { useCreateEcdsaAirdrop } from "./useCreateEcdsaAirdrop.js";
48
+ export { useCreateMerkleAirdrop } from "./useCreateMerkleAirdrop.js";
49
+ export { useFundAirdrop } from "./useFundAirdrop.js";
50
+ export { useEcdsaClaim } from "./useEcdsaClaim.js";
51
+ export { useMerkleClaim } from "./useMerkleClaim.js";
52
+ export { useSetMerkleRoot } from "./useSetMerkleRoot.js";
53
+ export { useGrantInstanceRoles, type GrantInstanceRolesArgs } from "./useGrantInstanceRoles.js";
54
+ export { useAirdropPause, type AirdropPauseArgs } from "./useAirdropPause.js";
55
+ export { useExtendClaimWindow } from "./useExtendClaimWindow.js";
56
+ export { useWithdrawConfidential } from "./useWithdrawConfidential.js";
57
+ export { airdropQueryKey, airdropQueryKeyPrefix, type AirdropClientOptions, type AirdropHookOptions, type AirdropInstanceClientOptions, type AirdropInstanceHookOptions, type EcdsaAirdropInstanceClientOptions, type EcdsaAirdropInstanceHookOptions, } from "./_shared.js";
85
58
  export { encryptUint64, encryptUint64Batch, resolveEncryptor, signClaimAuthorization, type Encryptor, type EncryptorSource, type EncryptUint64Args, type EncryptUint64BatchArgs, type FheValueInput, } from "../encryption.js";
86
- export { type AirdropParams, type CreateAirdropPreflightReport, type CustomFee, type EncryptedInput, type EncryptedInputs, } from "../types.js";
87
- export type { ClaimArgs, EncryptedViewResult, GetClaimAmountArgs, IsSignatureValidArgs, } from "../airdrop.js";
88
- export type { CreateAirdropResult, CreateAirdropArgs, CreateAndFundAirdropArgs, FundAirdropArgs, PredictAirdropArgs, PreflightCreateAirdropArgs, } from "../factory.js";
59
+ export type { EncryptedInput, EncryptedInputs, EncryptedViewResult } from "../../fhe/types.js";
60
+ export type { CreateAirdropArgs, CreateAirdropResult, EcdsaAirdropParams, MerkleAirdropParams, CommonAirdropParams, BuiltCampaign, CampaignEntry, CampaignRecipient, } from "../types.js";
61
+ export type { EcdsaClaimArgs, GetClaimAmountArgs as EcdsaGetClaimAmountArgs } from "../ecdsa.js";
62
+ export type { MerkleClaimArgs } from "../merkle.js";
63
+ export { buildMerkleTree, leafOf, type BuildMerkleTreeArgs, type BuiltMerkleTree, type LeafOfArgs, type MerkleLeafInput, } from "../merkle-tree.js";
64
+ export type { FundInput } from "../factory.js";
65
+ export type { WriteAccountOverride } from "../airdrop-base.js";
66
+ export { buildMerkleCampaign, encryptCampaignAmounts, planMerkleCampaign, rotateMerkleRoot, validateCampaignRecipients, type BuildMerkleCampaignArgs, type EncryptCampaignAmountsArgs, type EncryptedCampaignLeaf, type PlanMerkleCampaignArgs, type PlannedCampaign, type RotatedCampaign, type RotateMerkleRootArgs, } from "../campaign.js";
67
+ export { preflightClaim, preflightCreate, type ClaimPreflightTarget, type EcdsaClaimPreflightSignature, type PreflightClaimArgs, type PreflightCreateArgs, } from "../guards.js";
68
+ export type { PreflightResult } from "../../core/preflight.js";
69
+ export { grantInstanceRoles, planInstanceRoleSplit, type InstanceRoleAssignment, type RoleGrantOutcome, type RoleGrantStep, type RoleName, } from "../roles.js";
70
+ export { type DedupMode, type DeploymentMode } from "../constants.js";
89
71
  export { TokenOpsSdkError, isTokenOpsSdkError, DeploymentAddressUnavailableError, UnsupportedChainError, MissingAccountError, MissingClientError, MissingEncryptorError, MissingPublicClientError, MissingWalletClientError, InvalidArgumentError, ReceiptEventAmbiguousError, ReceiptEventNotFoundError, ContractRevertError, PausedError, AccessDeniedError, OperatorNotApprovedError, InsufficientFeeError, InsufficientBalanceError, BatchTooLargeError, FeatureDisabledError, TransferFailedError, FheHandleNotAllowedError, AlreadyInitializedError, ReentrancyError, InvalidSignatureError, WalletRejectedError, WalletChainMismatchError, NetworkError, InsufficientGasFundsError, UnknownWriteFailureError, UserRejectedSignatureError, SigningFailedError, RelayerUnreachableError, EncryptionFailedError, DecryptionFailedError, UserDecryptNotAllowedError, type DeploymentAddressUnavailableReason, type TokenOpsSdkErrorCode, } from "../../core/errors.js";
90
- export { type PreflightResult } from "../../core/preflight.js";
91
- export { AlreadyClaimedError, ClaimNotStartedError, ClaimWindowClosedError } from "../errors.js";
92
- export { useIsOperator, type UseIsOperatorOptions } from "../../fhe/react/useIsOperator.js";
93
- export { useEnsureOperator, type UseEnsureOperatorOptions, type EnsureOperatorVariables, } from "../../fhe/react/useEnsureOperator.js";
72
+ export { AlreadyClaimedError, ClaimNotStartedError, ClaimWindowClosedError, DedupIdConsumedError, FeeCollectorSelfAdministeredError, MerkleUupsUnsupportedError, NonStockWrapperError, PredictionDriftError, SaltCollisionError, SignatureExpiredError, UpgradeabilityNotAllowedError, type AirdropVariant, } from "../errors.js";