@tokenops/sdk 1.6.0 → 2.0.0-alpha.2

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 (263) hide show
  1. package/CHANGELOG.md +77 -8
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +146 -90
  4. package/SUPPORT.md +47 -0
  5. package/dist/{chunk-BD4LZBVF.cjs → chunk-3QHNYEQD.cjs} +18 -17
  6. package/dist/{chunk-YFIWCYHC.cjs → chunk-3YHBO2DL.cjs} +56 -54
  7. package/dist/{chunk-QET3Q4JP.js → chunk-44YJPMQC.js} +8 -6
  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-66IHPTOK.cjs +20 -0
  11. package/dist/{chunk-2RNW4MIJ.cjs → chunk-67OV5CX2.cjs} +0 -18
  12. package/dist/{chunk-PD7ME2BT.js → chunk-6GNR22OV.js} +2 -1
  13. package/dist/{chunk-WOEETTH7.cjs → chunk-7AFPOE7N.cjs} +6 -6
  14. package/dist/{chunk-QKKBBH7I.js → chunk-A4DCEE33.js} +34 -7
  15. package/dist/chunk-AREQJHKA.cjs +713 -0
  16. package/dist/{chunk-U57COLUE.js → chunk-AXIPOR3C.js} +2 -2
  17. package/dist/chunk-EBLBPUPI.cjs +255 -0
  18. package/dist/chunk-EYDA6Q6C.js +245 -0
  19. package/dist/{chunk-SYHNZSZZ.cjs → chunk-FAXIIH5R.cjs} +3 -3
  20. package/dist/{chunk-AYGRYDBX.cjs → chunk-FEDX7B6T.cjs} +37 -35
  21. package/dist/{chunk-CBRL2PJA.cjs → chunk-FHWSBGWE.cjs} +12 -12
  22. package/dist/{chunk-WUXUWTFW.cjs → chunk-FT5H2Q7Y.cjs} +37 -7
  23. package/dist/chunk-GADGBQJO.js +423 -0
  24. package/dist/{chunk-VHSNYUYV.js → chunk-IGO5XSPS.js} +5 -5
  25. package/dist/chunk-IUKKNJ2R.cjs +433 -0
  26. package/dist/{chunk-VR3FREBX.cjs → chunk-JK4XMMKM.cjs} +3 -3
  27. package/dist/{chunk-4ZCXK4VI.cjs → chunk-KFRDLKMA.cjs} +14 -14
  28. package/dist/chunk-KWFFIJYX.js +11 -0
  29. package/dist/{chunk-7G7UOQV4.cjs → chunk-MM5BV5CS.cjs} +4 -4
  30. package/dist/{chunk-43RFBQ73.cjs → chunk-MVDQMV25.cjs} +29 -32
  31. package/dist/chunk-NWFMBLSQ.js +4 -0
  32. package/dist/{chunk-HETNKZEE.js → chunk-PYYSB5ZN.js} +1 -1
  33. package/dist/chunk-PZZK3O3S.cjs +9843 -0
  34. package/dist/{chunk-DRSPMIZ7.js → chunk-QBJ7O2B4.js} +1 -11
  35. package/dist/{chunk-WTK6JDSI.js → chunk-SPLNGUFF.js} +6 -4
  36. package/dist/{chunk-UJS4N2XM.cjs → chunk-TEBM66WA.cjs} +12 -12
  37. package/dist/{chunk-TN65XNTI.js → chunk-TWT3STIX.js} +8 -6
  38. package/dist/chunk-UG5RKLU2.cjs +6 -0
  39. package/dist/{chunk-EUKPOXWR.cjs → chunk-UHHMVBLU.cjs} +17 -15
  40. package/dist/chunk-VW356KR3.js +688 -0
  41. package/dist/{chunk-BK7YIVLK.cjs → chunk-WJLECC22.cjs} +75 -73
  42. package/dist/{chunk-V5D7BHW3.js → chunk-WJMEBBU7.js} +6 -4
  43. package/dist/{chunk-NFW7AUEX.js → chunk-WMACINXO.js} +1 -1
  44. package/dist/chunk-X7WBPCEU.js +9817 -0
  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 +8 -2
  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 +1250 -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 +619 -51
  69. package/dist/fhe-airdrop/advanced/react/index.d.cts +43 -3
  70. package/dist/fhe-airdrop/advanced/react/index.d.ts +43 -3
  71. package/dist/fhe-airdrop/advanced/react/index.js +592 -52
  72. package/dist/fhe-airdrop/advanced/react/useClearCompliancePolicy.d.ts +28 -0
  73. package/dist/fhe-airdrop/advanced/react/useClearUpgradeabilityPolicy.d.ts +26 -0
  74. package/dist/fhe-airdrop/advanced/react/useDisableCustomFee.d.ts +25 -0
  75. package/dist/fhe-airdrop/advanced/react/useEcdsaInitCodeHash.d.ts +30 -0
  76. package/dist/fhe-airdrop/advanced/react/useFactoryComplianceDelegate.d.ts +25 -0
  77. package/dist/fhe-airdrop/advanced/react/useFactoryCompliancePolicy.d.ts +38 -0
  78. package/dist/fhe-airdrop/advanced/react/useFactoryCustomFee.d.ts +24 -0
  79. package/dist/fhe-airdrop/advanced/react/useFactoryGrantRole.d.ts +32 -0
  80. package/dist/fhe-airdrop/advanced/react/useFactoryHasRole.d.ts +27 -0
  81. package/dist/fhe-airdrop/advanced/react/useFactoryImplementations.d.ts +33 -0
  82. package/dist/fhe-airdrop/advanced/react/useFactoryRenounceRole.d.ts +36 -0
  83. package/dist/fhe-airdrop/advanced/react/useFactoryRevokeRole.d.ts +35 -0
  84. package/dist/fhe-airdrop/advanced/react/useFactoryRoleConstants.d.ts +46 -0
  85. package/dist/fhe-airdrop/advanced/react/useFactoryRoleMembers.d.ts +47 -0
  86. package/dist/fhe-airdrop/advanced/react/useFactoryUpgradeabilityPolicy.d.ts +39 -0
  87. package/dist/fhe-airdrop/advanced/react/useMerkleInitCodeHash.d.ts +24 -0
  88. package/dist/fhe-airdrop/advanced/react/usePredictEcdsaAirdropAddress.d.ts +33 -0
  89. package/dist/fhe-airdrop/advanced/react/usePredictMerkleAirdropAddress.d.ts +27 -0
  90. package/dist/fhe-airdrop/advanced/react/useSetComplianceDelegate.d.ts +33 -0
  91. package/dist/fhe-airdrop/advanced/react/useSetComplianceManagerImpl.d.ts +27 -0
  92. package/dist/fhe-airdrop/advanced/react/useSetCompliancePolicy.d.ts +28 -0
  93. package/dist/fhe-airdrop/advanced/react/useSetCustomFee.d.ts +28 -0
  94. package/dist/fhe-airdrop/advanced/react/useSetDefaultDelegateToCompliance.d.ts +31 -0
  95. package/dist/fhe-airdrop/advanced/react/useSetDefaultGasFee.d.ts +28 -0
  96. package/dist/fhe-airdrop/advanced/react/useSetDefaultUpgradeable.d.ts +27 -0
  97. package/dist/fhe-airdrop/advanced/react/useSetEcdsaImplementation.d.ts +34 -0
  98. package/dist/fhe-airdrop/advanced/react/useSetFeeCollector.d.ts +27 -0
  99. package/dist/fhe-airdrop/advanced/react/useSetMerkleImplementation.d.ts +30 -0
  100. package/dist/fhe-airdrop/advanced/react/useSetUpgradeabilityPolicy.d.ts +31 -0
  101. package/dist/fhe-airdrop/airdrop-base.d.ts +608 -0
  102. package/dist/fhe-airdrop/campaign.d.ts +338 -0
  103. package/dist/fhe-airdrop/compliance.d.ts +302 -0
  104. package/dist/fhe-airdrop/constants.d.ts +33 -0
  105. package/dist/fhe-airdrop/ecdsa.d.ts +263 -0
  106. package/dist/fhe-airdrop/encryption.d.ts +92 -14
  107. package/dist/fhe-airdrop/errors.d.ts +273 -15
  108. package/dist/fhe-airdrop/factory.d.ts +533 -274
  109. package/dist/fhe-airdrop/guards.d.ts +317 -0
  110. package/dist/fhe-airdrop/index.cjs +233 -73
  111. package/dist/fhe-airdrop/index.d.cts +46 -8
  112. package/dist/fhe-airdrop/index.d.ts +46 -8
  113. package/dist/fhe-airdrop/index.js +11 -7
  114. package/dist/fhe-airdrop/merkle-tree.d.ts +97 -0
  115. package/dist/fhe-airdrop/merkle.d.ts +201 -0
  116. package/dist/fhe-airdrop/react/_shared.d.ts +156 -70
  117. package/dist/fhe-airdrop/react/index.cjs +1174 -384
  118. package/dist/fhe-airdrop/react/index.d.cts +99 -74
  119. package/dist/fhe-airdrop/react/index.d.ts +99 -74
  120. package/dist/fhe-airdrop/react/index.js +993 -303
  121. package/dist/fhe-airdrop/react/keys.d.ts +90 -0
  122. package/dist/fhe-airdrop/react/useAccessEcdsaClaimAmount.d.ts +26 -0
  123. package/dist/fhe-airdrop/react/useAccessMerkleClaimAmount.d.ts +27 -0
  124. package/dist/fhe-airdrop/react/useAddComplianceDelegate.d.ts +37 -0
  125. package/dist/fhe-airdrop/react/useAdminBatchDiscloseBalanceToParties.d.ts +36 -0
  126. package/dist/fhe-airdrop/react/useAdminDiscloseBalanceToParty.d.ts +31 -0
  127. package/dist/fhe-airdrop/react/useAdminGetCurrentBalance.d.ts +27 -0
  128. package/dist/fhe-airdrop/react/useAirdropConfig.d.ts +49 -0
  129. package/dist/fhe-airdrop/react/useAirdropDeploymentMode.d.ts +28 -0
  130. package/dist/fhe-airdrop/react/useAirdropGasFee.d.ts +10 -5
  131. package/dist/fhe-airdrop/react/useAirdropGrantRole.d.ts +29 -10
  132. package/dist/fhe-airdrop/react/useAirdropHasRole.d.ts +15 -6
  133. package/dist/fhe-airdrop/react/useAirdropPause.d.ts +30 -0
  134. package/dist/fhe-airdrop/react/useAirdropPaused.d.ts +17 -0
  135. package/dist/fhe-airdrop/react/useAirdropRenounceRole.d.ts +36 -0
  136. package/dist/fhe-airdrop/react/useAirdropRevokeRole.d.ts +27 -9
  137. package/dist/fhe-airdrop/react/useAirdropRoleAdmin.d.ts +28 -0
  138. package/dist/fhe-airdrop/react/useAirdropRoleConstants.d.ts +67 -0
  139. package/dist/fhe-airdrop/react/useAirdropRoleMembers.d.ts +49 -0
  140. package/dist/fhe-airdrop/react/useAirdropToken.d.ts +11 -4
  141. package/dist/fhe-airdrop/react/useAirdropUpgradeToAndCall.d.ts +45 -0
  142. package/dist/fhe-airdrop/react/useAirdropWindow.d.ts +37 -0
  143. package/dist/fhe-airdrop/react/useBatchDiscloseHandlesToParty.d.ts +32 -0
  144. package/dist/fhe-airdrop/react/useBuildMerkleCampaign.d.ts +68 -0
  145. package/dist/fhe-airdrop/react/useClaimedAmount.d.ts +29 -0
  146. package/dist/fhe-airdrop/react/useComplianceGrantRole.d.ts +32 -0
  147. package/dist/fhe-airdrop/react/useComplianceHasRole.d.ts +37 -0
  148. package/dist/fhe-airdrop/react/useComplianceInfo.d.ts +50 -0
  149. package/dist/fhe-airdrop/react/useComplianceManager.d.ts +16 -0
  150. package/dist/fhe-airdrop/react/useComplianceManagerOf.d.ts +32 -0
  151. package/dist/fhe-airdrop/react/useComplianceRenounceRole.d.ts +38 -0
  152. package/dist/fhe-airdrop/react/useComplianceRevokeRole.d.ts +36 -0
  153. package/dist/fhe-airdrop/react/useComplianceRoleConstants.d.ts +41 -0
  154. package/dist/fhe-airdrop/react/useComplianceRoleMembers.d.ts +45 -0
  155. package/dist/fhe-airdrop/react/useCreateAndFundEcdsaAirdrop.d.ts +55 -0
  156. package/dist/fhe-airdrop/react/useCreateAndFundMerkleAirdrop.d.ts +52 -0
  157. package/dist/fhe-airdrop/react/useCreateEcdsaAirdrop.d.ts +28 -0
  158. package/dist/fhe-airdrop/react/useCreateMerkleAirdrop.d.ts +25 -0
  159. package/dist/fhe-airdrop/react/useDiscloseHandleToParty.d.ts +35 -0
  160. package/dist/fhe-airdrop/react/useEcdsaClaim.d.ts +24 -0
  161. package/dist/fhe-airdrop/react/useEcdsaClaimAndUnwrap.d.ts +27 -0
  162. package/dist/fhe-airdrop/react/useEcdsaDomain.d.ts +41 -0
  163. package/dist/fhe-airdrop/react/useEffectiveDelegateToCompliance.d.ts +26 -0
  164. package/dist/fhe-airdrop/react/useEffectiveUpgradeable.d.ts +20 -0
  165. package/dist/fhe-airdrop/react/useEncryptCampaignAmounts.d.ts +59 -0
  166. package/dist/fhe-airdrop/react/useExtendClaimWindow.d.ts +17 -12
  167. package/dist/fhe-airdrop/react/useFactoryFees.d.ts +28 -0
  168. package/dist/fhe-airdrop/react/useFactoryRegistry.d.ts +35 -0
  169. package/dist/fhe-airdrop/react/useFundAirdrop.d.ts +35 -0
  170. package/dist/fhe-airdrop/react/useGrantInstanceRoles.d.ts +35 -0
  171. package/dist/fhe-airdrop/react/useIsActiveDelegate.d.ts +29 -0
  172. package/dist/fhe-airdrop/react/useIsMerkleRootMutable.d.ts +21 -0
  173. package/dist/fhe-airdrop/react/useIsSignatureValid.d.ts +46 -0
  174. package/dist/fhe-airdrop/react/useMerkleClaim.d.ts +22 -0
  175. package/dist/fhe-airdrop/react/useMerkleClaimAndUnwrap.d.ts +29 -0
  176. package/dist/fhe-airdrop/react/useMerkleRoot.d.ts +15 -0
  177. package/dist/fhe-airdrop/react/usePlanMerkleCampaign.d.ts +53 -0
  178. package/dist/fhe-airdrop/react/usePreflightClaim.d.ts +46 -0
  179. package/dist/fhe-airdrop/react/usePreflightCreateAirdrop.d.ts +51 -35
  180. package/dist/fhe-airdrop/react/useRescueERC20.d.ts +30 -0
  181. package/dist/fhe-airdrop/react/useRescueOtherConfidentialToken.d.ts +34 -0
  182. package/dist/fhe-airdrop/react/useRevokeComplianceDelegate.d.ts +37 -0
  183. package/dist/fhe-airdrop/react/useRotateMerkleRoot.d.ts +52 -0
  184. package/dist/fhe-airdrop/react/useSetMerkleRoot.d.ts +22 -0
  185. package/dist/fhe-airdrop/react/useSignClaimAuthorization.d.ts +32 -21
  186. package/dist/fhe-airdrop/react/useWithdrawConfidential.d.ts +23 -0
  187. package/dist/fhe-airdrop/react/useWithdrawGasFee.d.ts +37 -0
  188. package/dist/fhe-airdrop/roles.d.ts +147 -0
  189. package/dist/fhe-airdrop/types.d.ts +78 -63
  190. package/dist/fhe-disperse/index.cjs +70 -68
  191. package/dist/fhe-disperse/index.js +10 -8
  192. package/dist/fhe-disperse/react/index.cjs +94 -92
  193. package/dist/fhe-disperse/react/index.js +13 -11
  194. package/dist/fhe-vesting/advanced/index.cjs +10 -8
  195. package/dist/fhe-vesting/advanced/index.js +8 -6
  196. package/dist/fhe-vesting/advanced/react/index.cjs +16 -14
  197. package/dist/fhe-vesting/advanced/react/index.js +13 -11
  198. package/dist/fhe-vesting/index.cjs +74 -72
  199. package/dist/fhe-vesting/index.js +11 -9
  200. package/dist/fhe-vesting/react/index.cjs +228 -226
  201. package/dist/fhe-vesting/react/index.js +15 -13
  202. package/dist/index.cjs +100 -87
  203. package/dist/index.js +3 -2
  204. package/dist/testnet-faucet/index.cjs +57 -55
  205. package/dist/testnet-faucet/index.js +7 -5
  206. package/dist/testnet-faucet/react/index.cjs +55 -53
  207. package/dist/testnet-faucet/react/index.js +9 -7
  208. package/package.json +6 -2
  209. package/dist/chunk-CNP4L3GF.js +0 -105
  210. package/dist/chunk-KSDSXJ34.js +0 -41
  211. package/dist/chunk-LBWRFZR3.cjs +0 -1681
  212. package/dist/chunk-OL6SHN3D.cjs +0 -44
  213. package/dist/chunk-S2XD75JM.js +0 -1637
  214. package/dist/chunk-SPGSO5SO.cjs +0 -1644
  215. package/dist/chunk-UE5XK2SY.js +0 -1673
  216. package/dist/chunk-WO72UBQD.cjs +0 -109
  217. package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +0 -53
  218. package/dist/fhe-airdrop/advanced/react/usePredictAirdropAddress.d.ts +0 -49
  219. package/dist/fhe-airdrop/airdrop.d.ts +0 -317
  220. package/dist/fhe-airdrop/react/useAccessClaimAmount.d.ts +0 -37
  221. package/dist/fhe-airdrop/react/useAirdropCanExtendClaimWindow.d.ts +0 -7
  222. package/dist/fhe-airdrop/react/useAirdropClaimTypehash.d.ts +0 -10
  223. package/dist/fhe-airdrop/react/useAirdropClaimedSignatures.d.ts +0 -16
  224. package/dist/fhe-airdrop/react/useAirdropDeploymentBlockNumber.d.ts +0 -6
  225. package/dist/fhe-airdrop/react/useAirdropDomainSeparator.d.ts +0 -8
  226. package/dist/fhe-airdrop/react/useAirdropEndTime.d.ts +0 -10
  227. package/dist/fhe-airdrop/react/useAirdropFactoryCustomFee.d.ts +0 -17
  228. package/dist/fhe-airdrop/react/useAirdropFactoryDefaultGasFee.d.ts +0 -10
  229. package/dist/fhe-airdrop/react/useAirdropFactoryDisableCustomFee.d.ts +0 -15
  230. package/dist/fhe-airdrop/react/useAirdropFactoryFeeCollector.d.ts +0 -11
  231. package/dist/fhe-airdrop/react/useAirdropFactoryInitCodeHash.d.ts +0 -17
  232. package/dist/fhe-airdrop/react/useAirdropFactorySetCustomFee.d.ts +0 -17
  233. package/dist/fhe-airdrop/react/useAirdropFactorySetDefaultGasFee.d.ts +0 -16
  234. package/dist/fhe-airdrop/react/useAirdropFactorySetFeeCollector.d.ts +0 -15
  235. package/dist/fhe-airdrop/react/useAirdropHasClaimEnded.d.ts +0 -7
  236. package/dist/fhe-airdrop/react/useAirdropHasClaimStarted.d.ts +0 -7
  237. package/dist/fhe-airdrop/react/useAirdropIsClaimWindowActive.d.ts +0 -9
  238. package/dist/fhe-airdrop/react/useAirdropIsPaused.d.ts +0 -8
  239. package/dist/fhe-airdrop/react/useAirdropIsSignatureClaimed.d.ts +0 -22
  240. package/dist/fhe-airdrop/react/useAirdropIsSignatureValid.d.ts +0 -51
  241. package/dist/fhe-airdrop/react/useAirdropStartTime.d.ts +0 -10
  242. package/dist/fhe-airdrop/react/useAirdropWithdrawGasFee.d.ts +0 -15
  243. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherConfidentialToken.d.ts +0 -14
  244. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherToken.d.ts +0 -14
  245. package/dist/fhe-airdrop/react/useClaim.d.ts +0 -39
  246. package/dist/fhe-airdrop/react/useConfidentialAirdropFactoryImplementation.d.ts +0 -11
  247. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdrop.d.ts +0 -41
  248. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdropAndGetAddress.d.ts +0 -48
  249. package/dist/fhe-airdrop/react/useCreateConfidentialAirdrop.d.ts +0 -29
  250. package/dist/fhe-airdrop/react/useCreateConfidentialAirdropAndGetAddress.d.ts +0 -31
  251. package/dist/fhe-airdrop/react/useDisableCustomFee.d.ts +0 -14
  252. package/dist/fhe-airdrop/react/useFactoryCustomFee.d.ts +0 -17
  253. package/dist/fhe-airdrop/react/useFactoryDefaultGasFee.d.ts +0 -10
  254. package/dist/fhe-airdrop/react/useFactoryFeeCollector.d.ts +0 -11
  255. package/dist/fhe-airdrop/react/useFactoryInitCodeHash.d.ts +0 -17
  256. package/dist/fhe-airdrop/react/useFundConfidentialAirdrop.d.ts +0 -33
  257. package/dist/fhe-airdrop/react/useSetCustomFee.d.ts +0 -16
  258. package/dist/fhe-airdrop/react/useSetDefaultGasFee.d.ts +0 -15
  259. package/dist/fhe-airdrop/react/useSetFeeCollector.d.ts +0 -14
  260. package/dist/fhe-airdrop/react/useSetPaused.d.ts +0 -14
  261. package/dist/fhe-airdrop/react/useWithdraw.d.ts +0 -12
  262. package/dist/fhe-airdrop/react/useWithdrawOtherConfidentialToken.d.ts +0 -13
  263. package/dist/fhe-airdrop/react/useWithdrawOtherToken.d.ts +0 -13
@@ -0,0 +1,317 @@
1
+ import type { Address, Hex, PublicClient } from "viem";
2
+ import type { PreflightResult } from "../core/preflight.js";
3
+ import type { DeploymentMode } from "./constants.js";
4
+ import { type AirdropVariant } from "./errors.js";
5
+ import type { ConfidentialAirdropFactoryClient } from "./factory.js";
6
+ import type { EcdsaAirdropParams, MerkleAirdropParams } from "./types.js";
7
+ /**
8
+ * Chains the airdrop v2 contracts are reachable on.
9
+ *
10
+ * Beyond the address registry this encodes an FHEVM constraint: every instance
11
+ * reads `ZamaConfig` at initialize time and reverts with
12
+ * `ZamaProtocolUnsupported` (declared by `@fhevm/solidity`, reached through
13
+ * `FHE.setCoprocessor`) anywhere the protocol is absent. An out-of-list chain
14
+ * can therefore only ever produce a wasted transaction.
15
+ */
16
+ export declare const SUPPORTED_CHAIN_IDS: readonly number[];
17
+ /**
18
+ * Refuse a chain the airdrop v2 contracts are not reachable on.
19
+ *
20
+ * Every client in this module calls it from its constructor, before resolving
21
+ * an address: an unsupported chain is a hard "no", whereas a missing registry
22
+ * entry is a "not deployed there yet", and the two deserve different errors.
23
+ *
24
+ * @throws {@link UnsupportedChainError} for anything outside {@link SUPPORTED_CHAIN_IDS}.
25
+ */
26
+ export declare function assertSupportedChain(chainId: number): void;
27
+ /**
28
+ * Refuse `mode: "uups"` for a Merkle campaign.
29
+ *
30
+ * The Merkle implementation's per-account `claimedAmount` mapping occupies an
31
+ * ERC-7201 namespaced slot that an earlier revision typed differently, so an
32
+ * in-place upgrade across that change reinterprets live storage - see
33
+ * {@link MerkleUupsUnsupportedError} for the full mechanism. Refusing at
34
+ * create time is what guarantees no SDK-created Merkle instance can ever be
35
+ * upgraded across it.
36
+ *
37
+ * Static: no RPC, so it runs before anything else on the Merkle create paths.
38
+ * The factory's `defaultUpgradeable == false` currently makes a UUPS create
39
+ * revert on-chain anyway, but that is a mutable policy owned by an admin key -
40
+ * this guard does not depend on it.
41
+ *
42
+ * @throws {@link MerkleUupsUnsupportedError} when `mode` is `"uups"`.
43
+ */
44
+ export declare function assertMerkleModeSupported(mode: DeploymentMode): void;
45
+ /** Inputs for {@link assertStockWrapper}. */
46
+ export interface AssertStockWrapperArgs {
47
+ publicClient: PublicClient;
48
+ /** The campaign's ERC-7984 token. */
49
+ token: Address;
50
+ /** The create-time flag. A `false` here makes this guard a no-op, by design. */
51
+ unwrappable: boolean;
52
+ }
53
+ /**
54
+ * Refuse `unwrappable: true` on a token that does not probe as a stock
55
+ * `ERC7984ERC20Wrapper` — see {@link NonStockWrapperError} for why a
56
+ * non-stock wrapper breaks `claimAndUnwrap`'s accounting.
57
+ *
58
+ * Needs one read, so it runs before the send rather than before the RPC. A
59
+ * CONTRACT REVERT, a zero-data return, or a zero-address answer from
60
+ * `underlying()` is taken as "not a stock wrapper": the probe cannot prove a
61
+ * wrapper is unhooked, only that it presents the stock interface, which is the
62
+ * strongest statement available off-chain and strictly better than discovering
63
+ * it at claim time.
64
+ *
65
+ * Anything that is not one of those — an RPC timeout, a rate limit, a client
66
+ * pointed at the wrong chain — is rethrown as itself. Reporting a transport
67
+ * failure as `NonStockWrapperError` would block a legitimate
68
+ * `unwrappable: true` create with a diagnosis the caller cannot act on;
69
+ * `isContractRevert` is the same discriminator the module's `#preflightWrite`
70
+ * implementations use for exactly this distinction.
71
+ *
72
+ * @throws {@link NonStockWrapperError} when `unwrappable` is set and the probe reverts, returns no data, or answers zero.
73
+ * @throws The underlying transport error, unchanged, when the probe fails for any other reason.
74
+ */
75
+ export declare function assertStockWrapper(args: AssertStockWrapperArgs): Promise<void>;
76
+ /**
77
+ * Inputs for {@link assertSaltAvailable}.
78
+ *
79
+ * @alpha
80
+ */
81
+ export interface AssertSaltAvailableArgs {
82
+ publicClient: PublicClient;
83
+ /** The address the factory's prediction oracle returned for this tuple. */
84
+ predictedAddress: Address;
85
+ variant: AirdropVariant;
86
+ mode: DeploymentMode;
87
+ deployer: Address;
88
+ userSalt: Hex;
89
+ /** Label for the thrown error. */
90
+ method: string;
91
+ }
92
+ /**
93
+ * Refuse a create whose predicted address is already occupied.
94
+ *
95
+ * A predicted address commits to `(implementation, mode, deployer, userSalt)`
96
+ * and nothing else, so reusing a salt collides regardless of how different the
97
+ * two campaigns' params are - and the contracts' own default salt label
98
+ * (`airdrop.<type>.<token>.<caller>`) collides on the second campaign a caller
99
+ * runs against one token. One `eth_getCode` turns that into a named error
100
+ * instead of a revert the caller has to decode.
101
+ *
102
+ * @throws {@link SaltCollisionError} when the predicted address holds code.
103
+ *
104
+ * @alpha
105
+ */
106
+ export declare function assertSaltAvailable(args: AssertSaltAvailableArgs): Promise<void>;
107
+ /**
108
+ * Inputs for {@link assertPredictionFresh}.
109
+ *
110
+ * @alpha
111
+ */
112
+ export interface AssertPredictionFreshArgs {
113
+ variant: AirdropVariant;
114
+ /** Init-code hash read before the prediction was put to use. */
115
+ initCodeHashBefore: Hex;
116
+ /** The same hash read after. */
117
+ initCodeHashAfter: Hex;
118
+ predictedAddress?: Address | undefined;
119
+ /** Label for the thrown error. */
120
+ method: string;
121
+ }
122
+ /**
123
+ * Judge the two init-code-hash observations a prediction-consuming flow takes
124
+ * on either side of its work.
125
+ *
126
+ * Equal hashes mean the factory's implementation pointer for the variant did
127
+ * not move, so the predicted address still stands. Different hashes mean it
128
+ * did, and everything derived from the prediction is stale.
129
+ *
130
+ * @throws {@link PredictionDriftError} when the two hashes differ.
131
+ *
132
+ * @alpha
133
+ */
134
+ export declare function assertPredictionFresh(args: AssertPredictionFreshArgs): void;
135
+ /** Fields shared by both variants of {@link PreflightCreateArgs}. */
136
+ interface PreflightCreateCommon {
137
+ factory: ConfidentialAirdropFactoryClient;
138
+ mode: DeploymentMode;
139
+ /** The account that will send `create*`. CREATE2 salts are per-deployer. */
140
+ creator: Address;
141
+ userSalt: Hex;
142
+ /**
143
+ * The variant's init-code hash observed when the address was predicted -
144
+ * e.g. `PlannedCampaign.initCodeHashAfter`. Supplying it turns on the
145
+ * drift check; omitting it skips that one check only.
146
+ */
147
+ expectedInitCodeHash?: Hex | undefined;
148
+ }
149
+ /**
150
+ * Inputs for {@link preflightCreate}.
151
+ *
152
+ * @alpha
153
+ */
154
+ export type PreflightCreateArgs = PreflightCreateCommon & ({
155
+ variant: "ecdsa";
156
+ params: EcdsaAirdropParams;
157
+ } | {
158
+ variant: "merkle";
159
+ params: MerkleAirdropParams;
160
+ });
161
+ /**
162
+ * Run every create-time guardrail read-only and report what would block the
163
+ * transaction, instead of throwing on the first problem.
164
+ *
165
+ * Same checks and the same typed errors the write path enforces: chain
166
+ * support, the Merkle/UUPS refusal, the creator's effective
167
+ * upgradeability policy when `mode: "uups"` is requested, the stock-wrapper
168
+ * probe when `unwrappable` is set, a salt collision on the predicted
169
+ * address, and - when `expectedInitCodeHash` is supplied - implementation
170
+ * drift since the prediction was taken.
171
+ *
172
+ * @returns `{ ready, blockers }`. `blockers` carries the errors `create*`
173
+ * would have thrown, so a UI can branch on `error.code` exactly as it does
174
+ * in `onError`.
175
+ *
176
+ * @example
177
+ * const { ready, blockers } = await preflightCreate({
178
+ * factory, variant: "merkle", params, mode: "clone", creator, userSalt,
179
+ * expectedInitCodeHash: plan.initCodeHashAfter,
180
+ * });
181
+ * if (!ready) return blockers.map((b) => b.code);
182
+ *
183
+ * @alpha
184
+ */
185
+ export declare function preflightCreate(args: PreflightCreateArgs): Promise<PreflightResult>;
186
+ /**
187
+ * The subset of an instance client {@link preflightClaim} reads.
188
+ *
189
+ * Declared structurally rather than as `AirdropBaseClient` so this module
190
+ * stays free of a runtime import of the client it guards; `AirdropBaseClient`
191
+ * and both variant subclasses satisfy it as-is.
192
+ *
193
+ * @alpha
194
+ */
195
+ export interface ClaimPreflightTarget {
196
+ readonly address: Address;
197
+ readonly chainId: number;
198
+ readonly publicClient: PublicClient;
199
+ hasClaimStarted(): Promise<boolean>;
200
+ hasClaimEnded(): Promise<boolean>;
201
+ startTime(): Promise<number>;
202
+ endTime(): Promise<number>;
203
+ gasFee(): Promise<bigint>;
204
+ /**
205
+ * The raw `PausableUpgradeable` flag, NOT `isClaimWindowActive()` — the
206
+ * latter ANDs the pause and the window together, which cannot say which of
207
+ * the two blocked the claim.
208
+ */
209
+ paused(): Promise<boolean>;
210
+ /**
211
+ * Create-time flag; `claimAndUnwrap` reverts `TokenNotUnwrappable` when false. Optional
212
+ * so a hand-rolled target stays valid — the unwrap blocker is simply not reported then.
213
+ */
214
+ unwrappable?: () => Promise<boolean>;
215
+ /** Present on `EcdsaAirdropClient` only. */
216
+ isSignatureValid?: (args: {
217
+ recipient: Address;
218
+ encryptedAmountHandle: Hex;
219
+ dedupId: Hex;
220
+ deadline: bigint;
221
+ signer: Address;
222
+ signature: Hex;
223
+ }) => Promise<boolean>;
224
+ }
225
+ /**
226
+ * The signature material {@link preflightClaim} needs to check an ECDSA claim.
227
+ *
228
+ * @alpha
229
+ */
230
+ export interface EcdsaClaimPreflightSignature {
231
+ /** The external handle only - a view never calls `FHE.fromExternal`, so no input proof. */
232
+ encryptedAmountHandle: Hex;
233
+ dedupId: Hex;
234
+ deadline: bigint;
235
+ signer: Address;
236
+ signature: Hex;
237
+ }
238
+ /**
239
+ * Inputs for {@link preflightClaim}.
240
+ *
241
+ * @alpha
242
+ */
243
+ export interface PreflightClaimArgs {
244
+ airdrop: ClaimPreflightTarget;
245
+ /**
246
+ * The account that will SEND the claim, and therefore pays the exact-equality gas fee.
247
+ * On a relayed Merkle claim this is the relayer, not the entitled account.
248
+ */
249
+ claimant: Address;
250
+ /**
251
+ * Merkle campaigns only: the claim identity, when it is not the submitter. Defaults to
252
+ * `claimant`. Supplying it enables the two argument-relation checks the contract makes
253
+ * before any FHE work — the zero identity and the third-party redirect rule.
254
+ */
255
+ account?: Address | undefined;
256
+ /** The payout destination, if one will be passed. Omitted means "defaults to `account`". */
257
+ to?: Address | undefined;
258
+ /**
259
+ * Set for `claimAndUnwrap`, which has no `account` parameter and is always submitted for
260
+ * the caller — so a claim identity that is not the submitter can never settle through it.
261
+ */
262
+ entrypoint?: "claim" | "claimAndUnwrap" | undefined;
263
+ /**
264
+ * ECDSA campaigns only. Supplied together with a client that exposes
265
+ * `isSignatureValid`, it adds the authorisation check to the report.
266
+ */
267
+ signature?: EcdsaClaimPreflightSignature | undefined;
268
+ }
269
+ /**
270
+ * The three argument-relation rules the Merkle claim path enforces before it touches the
271
+ * coprocessor. All are decidable from the arguments alone, so both `preflightClaim` and
272
+ * the client's own write path run them — no RPC, no chance of a wasted fee.
273
+ *
274
+ * @param account The claim identity (`claim`'s leading argument).
275
+ * @param submitter The address that will send the transaction.
276
+ * @param boundTo The address the entry's input proof is bound to, when known.
277
+ * @param to The payout destination, if one will be passed.
278
+ * @param entrypoint `claimAndUnwrap` is self-only; `claim` accepts a third-party submitter.
279
+ * @throws {@link InvalidArgumentError} on a zero `account`, a proof bound to another address, or a relayed `claimAndUnwrap`.
280
+ * @throws {@link UnauthorizedRedirectError} when a third party tries to redirect payout.
281
+ */
282
+ export declare function assertMerkleClaimIdentity(args: {
283
+ method: string;
284
+ account: Address;
285
+ submitter: Address;
286
+ boundTo?: Address | undefined;
287
+ to?: Address | undefined;
288
+ entrypoint?: "claim" | "claimAndUnwrap" | undefined;
289
+ }): void;
290
+ /**
291
+ * Report what would stop `claim` / `claimAndUnwrap` right now, without sending
292
+ * anything.
293
+ *
294
+ * Checks the chain, the pause flag, the claim window on both ends, whether the
295
+ * claimant can cover the instance's exact-equality gas fee, and - for an ECDSA
296
+ * campaign given `signature` - whether the authorisation is currently valid and
297
+ * unconsumed. Given `account` or `entrypoint`, it also checks the Merkle claim path's
298
+ * three argument relations: the zero identity, the third-party redirect rule, and
299
+ * `claimAndUnwrap`'s self-only constraint.
300
+ *
301
+ * The pause is read on its own rather than through `isClaimWindowActive()`:
302
+ * that read ANDs the pause and the window together, so a `false` from it
303
+ * cannot say which of the two blocked the claim, whereas the window is already
304
+ * reported here as two distinct blockers. A paused campaign therefore appears
305
+ * as its own `PausedError` — the likeliest reason a claim reverts while the
306
+ * window is open.
307
+ *
308
+ * It deliberately does NOT check the claimant's allocation:
309
+ * that value is encrypted, and an SDK-side "you have nothing to claim" would
310
+ * require decrypting it.
311
+ *
312
+ * @returns `{ ready, blockers }` with the same typed errors the claim would throw.
313
+ *
314
+ * @alpha
315
+ */
316
+ export declare function preflightClaim(args: PreflightClaimArgs): Promise<PreflightResult>;
317
+ export {};