@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,713 @@
1
+ 'use strict';
2
+
3
+ var chunkMVDQMV25_cjs = require('./chunk-MVDQMV25.cjs');
4
+ var chunk67OV5CX2_cjs = require('./chunk-67OV5CX2.cjs');
5
+ var viem = require('viem');
6
+
7
+ // src/fhe-airdrop/constants.ts
8
+ var AIRDROP_CONTRACTS_COMMIT = "7175ac82f467f0f88c05aba1a4536892999b4251";
9
+ var DEPLOYMENT_MODE = { clone: 0, uups: 1 };
10
+ var DEDUP_MODE = { perAddress: 0, perDedupId: 1, both: 2, none: 3 };
11
+
12
+ // src/fhe-airdrop/errors.ts
13
+ var MerkleUupsUnsupportedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
14
+ name = "MerkleUupsUnsupportedError";
15
+ constructor(options) {
16
+ super(
17
+ 'Merkle campaigns cannot use `mode: "uups"`: the per-account `claimedAmount` mapping occupies an ERC-7201 namespaced slot that an earlier revision typed differently, so an in-place upgrade across that change reinterprets existing storage and can re-open claims that were already settled. Use `mode: "clone"`.',
18
+ {
19
+ code: "TOKENOPS_MERKLE_UUPS_UNSUPPORTED",
20
+ cause: options?.cause,
21
+ context: { constraint: "merkle-uups-storage-retype" }
22
+ }
23
+ );
24
+ }
25
+ };
26
+ var NonStockWrapperError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
27
+ name = "NonStockWrapperError";
28
+ constructor(args) {
29
+ const detail = args?.token ? ` (token: ${args.token})` : "";
30
+ super(
31
+ `\`claimAndUnwrap\` is only exact for a stock ERC7984ERC20Wrapper${detail}: it burns from the airdrop instance's pooled wrapper balance, not from a per-claimant sub-balance, so the delivered amount is bounded by the pool's balance rather than by the claimant's own outstanding amount. A hooked or fee-taking wrapper can throw that accounting off, so a claimant can be credited against tokens that are not theirs.`,
32
+ {
33
+ code: "TOKENOPS_NON_STOCK_WRAPPER",
34
+ cause: args?.cause,
35
+ context: { constraint: "wrapper-unwrap-pool-bound", token: args?.token }
36
+ }
37
+ );
38
+ }
39
+ };
40
+ var UnauthorizedRedirectError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
41
+ name = "UnauthorizedRedirectError";
42
+ constructor(args) {
43
+ const who = args?.submitter ? ` (submitter: ${args.submitter})` : "";
44
+ super(
45
+ `Only the claim identity may redirect its own payout${who}: \`to\` (${args?.to ?? "unknown"}) differs from \`account\` (${args?.account ?? "unknown"}) and the submitter is not that account. Leave \`to\` unset (or equal to \`account\`) when submitting on someone else's behalf.`,
46
+ {
47
+ code: "TOKENOPS_UNAUTHORIZED_REDIRECT",
48
+ cause: args?.cause,
49
+ context: {
50
+ constraint: "merkle-third-party-redirect",
51
+ account: args?.account,
52
+ to: args?.to,
53
+ submitter: args?.submitter
54
+ }
55
+ }
56
+ );
57
+ }
58
+ };
59
+ var SaltCollisionError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
60
+ name = "SaltCollisionError";
61
+ constructor(args) {
62
+ super(
63
+ `${args.method}: the predicted address ${args.predictedAddress} already holds code. A ${args.variant} instance address commits only to (implementation, mode, deployer, userSalt) - the params struct is ignored - so this (mode, deployer, userSalt) tuple has already been deployed. Pick a fresh \`userSalt\` for each campaign.`,
64
+ {
65
+ code: "TOKENOPS_SALT_COLLISION",
66
+ cause: args.cause,
67
+ context: {
68
+ method: args.method,
69
+ variant: args.variant,
70
+ mode: args.mode,
71
+ deployer: args.deployer,
72
+ userSalt: args.userSalt,
73
+ predictedAddress: args.predictedAddress
74
+ }
75
+ }
76
+ );
77
+ }
78
+ };
79
+ var PredictionDriftError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
80
+ name = "PredictionDriftError";
81
+ constructor(args) {
82
+ const where = args.predictedAddress ? ` ${args.predictedAddress}` : "";
83
+ super(
84
+ `${args.method}: the factory's ${args.variant} init-code hash changed from ${args.initCodeHashBefore} to ${args.initCodeHashAfter} mid-flight. An implementation rotation landed while the prediction was in use, so the predicted address${where} is stale and anything bound to it (a Merkle campaign's ciphertexts above all) will not match the instance the create produces. Re-predict and rebuild.`,
85
+ {
86
+ code: "TOKENOPS_PREDICTION_DRIFT",
87
+ cause: args.cause,
88
+ context: {
89
+ method: args.method,
90
+ variant: args.variant,
91
+ initCodeHashBefore: args.initCodeHashBefore,
92
+ initCodeHashAfter: args.initCodeHashAfter,
93
+ predictedAddress: args.predictedAddress
94
+ }
95
+ }
96
+ );
97
+ }
98
+ };
99
+ var UpgradeabilityNotAllowedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
100
+ name = "UpgradeabilityNotAllowedError";
101
+ constructor(args) {
102
+ const label = args.method ? `${args.method}: ` : "";
103
+ const who = args.creator ? ` for creator ${args.creator}` : "";
104
+ super(
105
+ `${label}\`mode: "uups"\` is not permitted${who} \u2014 call \`setDefaultUpgradeable(true)\` or \`setUpgradeabilityPolicy(creator, true)\` (UPGRADE_MANAGER_ROLE), or use \`mode: "clone"\`.`,
106
+ {
107
+ code: "TOKENOPS_UPGRADEABILITY_NOT_ALLOWED",
108
+ cause: args.cause,
109
+ context: {
110
+ method: args.method,
111
+ contractAddress: args.contractAddress,
112
+ creator: args.creator
113
+ }
114
+ }
115
+ );
116
+ }
117
+ };
118
+ var FeeCollectorSelfAdministeredError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
119
+ name = "FeeCollectorSelfAdministeredError";
120
+ constructor(args) {
121
+ super(
122
+ "FEE_COLLECTOR_ROLE is self-administered (its own role admin, not DEFAULT_ADMIN_ROLE) \u2014 grantInstanceRoles cannot grant it from the caller's admin role. Have an existing FEE_COLLECTOR_ROLE holder call `grantRole` directly.",
123
+ {
124
+ code: "TOKENOPS_FEE_COLLECTOR_SELF_ADMINISTERED",
125
+ cause: args?.cause,
126
+ context: { requestedGrantee: args?.requestedGrantee }
127
+ }
128
+ );
129
+ }
130
+ };
131
+ var DedupIdConsumedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
132
+ name = "DedupIdConsumedError";
133
+ constructor(args) {
134
+ const which = args.dedupId ? ` ${args.dedupId}` : "";
135
+ super(`${args.method}: dedupId${which} has already been claimed.`, {
136
+ code: "TOKENOPS_DEDUP_ID_CONSUMED",
137
+ cause: args.cause,
138
+ context: {
139
+ method: args.method,
140
+ contractAddress: args.contractAddress,
141
+ dedupId: args.dedupId
142
+ }
143
+ });
144
+ }
145
+ };
146
+ var AlreadyClaimedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
147
+ name = "AlreadyClaimedError";
148
+ constructor(args) {
149
+ super(`${args.method}: already claimed (${args.replayGuard} replay guard).`, {
150
+ code: "TOKENOPS_ALREADY_CLAIMED",
151
+ cause: args.cause,
152
+ context: {
153
+ method: args.method,
154
+ contractAddress: args.contractAddress,
155
+ replayGuard: args.replayGuard
156
+ }
157
+ });
158
+ }
159
+ };
160
+ var ClaimNotStartedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
161
+ name = "ClaimNotStartedError";
162
+ constructor(args) {
163
+ const detail = args.startTime !== void 0 ? ` Opens at unix timestamp ${args.startTime}.` : "";
164
+ super(`${args.method}: the claim window has not opened yet.${detail}`, {
165
+ code: "TOKENOPS_CLAIM_NOT_STARTED",
166
+ cause: args.cause,
167
+ context: {
168
+ method: args.method,
169
+ contractAddress: args.contractAddress,
170
+ startTime: args.startTime,
171
+ currentTime: args.currentTime
172
+ }
173
+ });
174
+ }
175
+ };
176
+ var SignatureExpiredError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
177
+ name = "SignatureExpiredError";
178
+ constructor(args) {
179
+ const detail = args.deadline !== void 0 && args.currentTime !== void 0 ? ` The signature's deadline (unix timestamp ${args.deadline}) has passed; current time is ${args.currentTime}.` : "";
180
+ super(`${args.method}: signature has expired.${detail} Re-sign with a later deadline.`, {
181
+ code: "TOKENOPS_SIGNATURE_EXPIRED",
182
+ cause: args.cause,
183
+ context: {
184
+ method: args.method,
185
+ contractAddress: args.contractAddress,
186
+ deadline: args.deadline,
187
+ currentTime: args.currentTime
188
+ }
189
+ });
190
+ }
191
+ };
192
+ var ClaimWindowClosedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
193
+ name = "ClaimWindowClosedError";
194
+ constructor(args) {
195
+ const detail = args.endTime !== void 0 ? ` Closed at unix timestamp ${args.endTime}.` : "";
196
+ super(`${args.method}: the claim window has closed.${detail}`, {
197
+ code: "TOKENOPS_CLAIM_WINDOW_CLOSED",
198
+ cause: args.cause,
199
+ context: {
200
+ method: args.method,
201
+ contractAddress: args.contractAddress,
202
+ endTime: args.endTime,
203
+ currentTime: args.currentTime
204
+ }
205
+ });
206
+ }
207
+ };
208
+ var airdropProductMapper = (name, errArgs, ctx) => {
209
+ switch (name) {
210
+ // ---- guarded conditions, caught on-chain instead of pre-flight -------
211
+ case "TokenNotAWrapper": {
212
+ const token = ctx.productContext?.["token"];
213
+ return new NonStockWrapperError({ token });
214
+ }
215
+ case "UpgradeabilityNotAllowed": {
216
+ const creator = ctx.productContext?.["creator"];
217
+ return new UpgradeabilityNotAllowedError({ ...ctx, creator });
218
+ }
219
+ // ---- claim lifecycle --------------------------------------------------
220
+ case "ClaimNotStarted": {
221
+ const startTime = numberArg(errArgs?.[0]);
222
+ const currentTime = numberArg(errArgs?.[1]);
223
+ return new ClaimNotStartedError({ ...ctx, startTime, currentTime });
224
+ }
225
+ case "ClaimWindowFinished": {
226
+ const endTime = numberArg(errArgs?.[0]);
227
+ const currentTime = numberArg(errArgs?.[1]);
228
+ return new ClaimWindowClosedError({ ...ctx, endTime, currentTime });
229
+ }
230
+ case "AddressAlreadyClaimed":
231
+ return new AlreadyClaimedError({ ...ctx, replayGuard: "address" });
232
+ case "SignatureAlreadyUsed":
233
+ return new AlreadyClaimedError({ ...ctx, replayGuard: "signature" });
234
+ case "DedupIdAlreadyClaimed": {
235
+ const dedupId = ctx.productContext?.["dedupId"];
236
+ return new DedupIdConsumedError({ ...ctx, dedupId });
237
+ }
238
+ case "InsufficientFee": {
239
+ const provided = errArgs?.[0];
240
+ const required = errArgs?.[1];
241
+ return new chunk67OV5CX2_cjs.InsufficientFeeError({ ...ctx, feeKind: "gas", provided, required });
242
+ }
243
+ case "InsufficientFeeBalance": {
244
+ const requested = errArgs?.[0];
245
+ const available = errArgs?.[1];
246
+ return new chunk67OV5CX2_cjs.InsufficientBalanceError({ ...ctx, balanceKind: "eth", requested, available });
247
+ }
248
+ case "EthTransferFailed":
249
+ return new chunk67OV5CX2_cjs.TransferFailedError({ ...ctx, asset: "eth" });
250
+ case "HandleNotAllowed": {
251
+ const handle = errArgs?.[0];
252
+ return new chunk67OV5CX2_cjs.FheHandleNotAllowedError({ ...ctx, handle });
253
+ }
254
+ // ---- Merkle-specific ----------------------------------------------
255
+ case "InvalidMerkleProof":
256
+ return new chunk67OV5CX2_cjs.InvalidArgumentError({
257
+ method: ctx.method,
258
+ argument: "merkleProof",
259
+ reason: "the contract reverted with `InvalidMerkleProof` \u2014 the proof does not verify against the current on-chain root. If the root was recently rotated, rebuild the proof against the new root."
260
+ });
261
+ case "RootImmutable":
262
+ return new chunk67OV5CX2_cjs.FeatureDisabledError({ ...ctx, feature: "merkleRootRotation" });
263
+ case "ZeroAccount":
264
+ return invalidArg(
265
+ ctx,
266
+ "account",
267
+ name,
268
+ "the claim identity is mandatory and is never defaulted from the caller"
269
+ );
270
+ case "UnauthorizedRedirect": {
271
+ const account = errArgs?.[0];
272
+ const to = errArgs?.[1];
273
+ return new UnauthorizedRedirectError({
274
+ account,
275
+ to,
276
+ submitter: ctx.productContext?.["creator"]
277
+ });
278
+ }
279
+ // ---- FHEVM chain config ---------------------------------------------
280
+ case "ZamaProtocolUnsupported": {
281
+ const chainId = ctx.productContext?.["chainId"] ?? 0;
282
+ return new chunk67OV5CX2_cjs.UnsupportedChainError(chainId);
283
+ }
284
+ // ---- ECDSA-specific signature reverts --------------------------------
285
+ case "SignatureExpired": {
286
+ const deadline = errArgs?.[0];
287
+ const currentTime = errArgs?.[1];
288
+ return new SignatureExpiredError({ ...ctx, deadline, currentTime });
289
+ }
290
+ // ---- argument-validation bucket: reverts not already covered by the
291
+ // cross-product default mapper's `Zero*`/`Invalid*` list ---------------
292
+ case "ZeroToken":
293
+ return invalidArg(ctx, "token", name);
294
+ case "ZeroFeeCollector":
295
+ return invalidArg(
296
+ ctx,
297
+ "feeCollector",
298
+ name,
299
+ "validates the factory-injected fee-collector init parameter"
300
+ );
301
+ case "ZeroComplianceManager":
302
+ return invalidArg(ctx, "complianceManager", name);
303
+ case "ZeroRecipient":
304
+ return invalidArg(ctx, "recipient", name);
305
+ case "ZeroAdminGrant":
306
+ return invalidArg(
307
+ ctx,
308
+ "admin",
309
+ name,
310
+ "granting DEFAULT_ADMIN_ROLE to the zero address is never valid"
311
+ );
312
+ case "ZeroFeeCollectorGrant":
313
+ return invalidArg(
314
+ ctx,
315
+ "feeCollector",
316
+ name,
317
+ "granting FEE_COLLECTOR_ROLE to the zero address is never valid on a fee-charging campaign"
318
+ );
319
+ case "LastAdmin":
320
+ return invalidArg(
321
+ ctx,
322
+ "admin",
323
+ name,
324
+ "revoking or renouncing the sole DEFAULT_ADMIN_ROLE member would leave the instance permanently ungovernable"
325
+ );
326
+ case "LastFeeCollector":
327
+ return invalidArg(
328
+ ctx,
329
+ "feeCollector",
330
+ name,
331
+ "revoking the sole FEE_COLLECTOR_ROLE member would strand accrued claim-fee ETH on a fee-charging campaign"
332
+ );
333
+ case "CannotRescueAirdropToken":
334
+ return invalidArg(ctx, "token", name, "the rescue target cannot be the airdrop's own token");
335
+ case "TokenNotUnwrappable":
336
+ return new chunk67OV5CX2_cjs.FeatureDisabledError({ ...ctx, feature: "claimAndUnwrap" });
337
+ case "ZeroAdmin":
338
+ return invalidArg(ctx, "admin", name);
339
+ case "ZeroImplementation":
340
+ return invalidArg(ctx, "implementation", name);
341
+ case "ZeroComplianceManagerImpl":
342
+ return invalidArg(ctx, "complianceManagerImpl", name);
343
+ case "ZeroComplianceDelegate":
344
+ return invalidArg(
345
+ ctx,
346
+ "complianceDelegate",
347
+ name,
348
+ "required while the default compliance-delegate policy is on"
349
+ );
350
+ case "IndexOutOfBounds": {
351
+ const index = errArgs?.[0];
352
+ const count = errArgs?.[1];
353
+ return invalidArg(
354
+ ctx,
355
+ "index",
356
+ name,
357
+ `requested index ${index?.toString() ?? "?"}, but only ${count?.toString() ?? "?"} airdrops exist`
358
+ );
359
+ }
360
+ case "UnknownAirdrop":
361
+ return invalidArg(ctx, "airdrop", name, "was not created by this factory");
362
+ case "SaltAlreadyUsed": {
363
+ const existingAirdrop = errArgs?.[0];
364
+ return new chunk67OV5CX2_cjs.InvalidArgumentError({
365
+ method: ctx.method,
366
+ argument: "userSalt",
367
+ reason: `this (creator, mode, userSalt) tuple already predicts an existing instance${existingAirdrop ? ` at ${existingAirdrop}` : ""}.`,
368
+ value: existingAirdrop
369
+ });
370
+ }
371
+ case "ZeroSigner":
372
+ return invalidArg(ctx, "signer", name);
373
+ case "ZeroMerkleRoot":
374
+ return invalidArg(
375
+ ctx,
376
+ "merkleRoot",
377
+ name,
378
+ "a zero root is only permitted when `isMerkleRootMutable` is true"
379
+ );
380
+ // ---- compliance manager clone (`ComplianceRoleManager`) --------------
381
+ case "ZeroAirdrop":
382
+ return invalidArg(ctx, "airdrop", name);
383
+ case "ZeroClientAdmin":
384
+ return invalidArg(ctx, "clientAdmin", name);
385
+ case "ZeroDelegate":
386
+ return invalidArg(ctx, "delegate", name);
387
+ case "AirdropAndManagerAreSameAddress":
388
+ return invalidArg(
389
+ ctx,
390
+ "airdrop",
391
+ name,
392
+ "cannot equal this compliance manager clone's own address"
393
+ );
394
+ case "DelegateAndManagerAreSameAddress":
395
+ return invalidArg(
396
+ ctx,
397
+ "delegate",
398
+ name,
399
+ "cannot equal this compliance manager clone's own address"
400
+ );
401
+ case "DelegateAndAirdropAreSameAddress":
402
+ return invalidArg(ctx, "delegate", name, "cannot equal the airdrop instance's address");
403
+ case "DelegateAlreadyAdded":
404
+ return invalidArg(ctx, "delegate", name, "already an active client delegate");
405
+ case "DelegateNotFound":
406
+ return invalidArg(ctx, "delegate", name, "not an active client delegate");
407
+ case "CannotManageComplianceDelegate":
408
+ return invalidArg(
409
+ ctx,
410
+ "delegate",
411
+ name,
412
+ "targets the factory-designated platform compliance delegate, which cannot be managed this way"
413
+ );
414
+ default:
415
+ return void 0;
416
+ }
417
+ };
418
+ function invalidArg(ctx, argument, revertName, detail) {
419
+ const suffix = detail ? ` ${detail}.` : "";
420
+ return new chunk67OV5CX2_cjs.InvalidArgumentError({
421
+ method: ctx.method,
422
+ argument,
423
+ reason: `the contract reverted with \`${revertName}\`.${suffix}`
424
+ });
425
+ }
426
+ function numberArg(value) {
427
+ return typeof value === "bigint" ? Number(value) : void 0;
428
+ }
429
+ var SUPPORTED_CHAIN_IDS = [1, 11155111, 31337];
430
+ function assertSupportedChain(chainId) {
431
+ if (!SUPPORTED_CHAIN_IDS.includes(chainId)) {
432
+ throw new chunk67OV5CX2_cjs.UnsupportedChainError(chainId);
433
+ }
434
+ }
435
+ function assertMerkleModeSupported(mode) {
436
+ if (mode === "uups") {
437
+ throw new MerkleUupsUnsupportedError();
438
+ }
439
+ }
440
+ var WRAPPER_PROBE_ABI = [
441
+ {
442
+ inputs: [],
443
+ name: "underlying",
444
+ outputs: [{ internalType: "address", name: "", type: "address" }],
445
+ stateMutability: "view",
446
+ type: "function"
447
+ }
448
+ ];
449
+ function isProbeAnswer(error) {
450
+ if (chunkMVDQMV25_cjs.isContractRevert(error)) return true;
451
+ if (!(error instanceof viem.BaseError)) return false;
452
+ return error.walk((e) => e instanceof viem.ContractFunctionZeroDataError) !== null;
453
+ }
454
+ async function assertStockWrapper(args) {
455
+ if (!args.unwrappable) return;
456
+ let underlying;
457
+ try {
458
+ underlying = await args.publicClient.readContract({
459
+ address: args.token,
460
+ abi: WRAPPER_PROBE_ABI,
461
+ functionName: "underlying"
462
+ });
463
+ } catch (cause) {
464
+ if (!isProbeAnswer(cause)) throw cause;
465
+ throw new NonStockWrapperError({ token: args.token, cause });
466
+ }
467
+ if (viem.isAddressEqual(underlying, viem.zeroAddress)) {
468
+ throw new NonStockWrapperError({ token: args.token });
469
+ }
470
+ }
471
+ async function assertSaltAvailable(args) {
472
+ const code = await args.publicClient.getCode({ address: args.predictedAddress });
473
+ if (code === void 0 || code === "0x") return;
474
+ throw new SaltCollisionError({
475
+ method: args.method,
476
+ variant: args.variant,
477
+ mode: args.mode,
478
+ deployer: args.deployer,
479
+ userSalt: args.userSalt,
480
+ predictedAddress: args.predictedAddress
481
+ });
482
+ }
483
+ function assertPredictionFresh(args) {
484
+ if (args.initCodeHashBefore.toLowerCase() === args.initCodeHashAfter.toLowerCase()) return;
485
+ throw new PredictionDriftError({
486
+ method: args.method,
487
+ variant: args.variant,
488
+ initCodeHashBefore: args.initCodeHashBefore,
489
+ initCodeHashAfter: args.initCodeHashAfter,
490
+ predictedAddress: args.predictedAddress
491
+ });
492
+ }
493
+ async function preflightCreate(args) {
494
+ const method = args.variant === "merkle" ? "createMerkleAirdrop" : "createEcdsaAirdrop";
495
+ const blockers = [];
496
+ collect(blockers, () => assertSupportedChain(args.factory.chainId));
497
+ if (args.variant === "merkle") {
498
+ collect(blockers, () => assertMerkleModeSupported(args.mode));
499
+ }
500
+ const predictArgs = {
501
+ mode: args.mode,
502
+ deployer: args.creator,
503
+ userSalt: args.userSalt
504
+ };
505
+ const predictedAddress = args.variant === "merkle" ? await args.factory.predictMerkleAirdropAddress({ params: args.params, ...predictArgs }) : await args.factory.predictEcdsaAirdropAddress({ params: args.params, ...predictArgs });
506
+ const liveInitCodeHash = args.variant === "merkle" ? await args.factory.getMerkleInitCodeHash({ params: args.params, mode: args.mode }) : await args.factory.getEcdsaInitCodeHash({ params: args.params, mode: args.mode });
507
+ if (args.mode === "uups") {
508
+ const allowed = await args.factory.effectiveUpgradeable(args.creator);
509
+ if (!allowed) {
510
+ blockers.push(
511
+ new UpgradeabilityNotAllowedError({
512
+ method,
513
+ contractAddress: args.factory.address,
514
+ creator: args.creator
515
+ })
516
+ );
517
+ }
518
+ }
519
+ await collectAsync(
520
+ blockers,
521
+ () => assertStockWrapper({
522
+ publicClient: args.factory.publicClient,
523
+ token: args.params.common.token,
524
+ unwrappable: args.params.common.unwrappable
525
+ })
526
+ );
527
+ await collectAsync(
528
+ blockers,
529
+ () => assertSaltAvailable({
530
+ publicClient: args.factory.publicClient,
531
+ predictedAddress,
532
+ variant: args.variant,
533
+ mode: args.mode,
534
+ deployer: args.creator,
535
+ userSalt: args.userSalt,
536
+ method
537
+ })
538
+ );
539
+ if (args.expectedInitCodeHash !== void 0) {
540
+ collect(
541
+ blockers,
542
+ () => assertPredictionFresh({
543
+ variant: args.variant,
544
+ initCodeHashBefore: args.expectedInitCodeHash,
545
+ initCodeHashAfter: liveInitCodeHash,
546
+ predictedAddress,
547
+ method
548
+ })
549
+ );
550
+ }
551
+ return { ready: blockers.length === 0, blockers };
552
+ }
553
+ function assertMerkleClaimIdentity(args) {
554
+ const { method, account, submitter, boundTo, to, entrypoint = "claim" } = args;
555
+ for (const [argument, value] of [
556
+ ["account", account],
557
+ ["entry.boundTo", boundTo],
558
+ ["to", to],
559
+ ["submitter", submitter]
560
+ ]) {
561
+ if (value !== void 0 && !viem.isAddress(value, { strict: false })) {
562
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
563
+ method,
564
+ argument,
565
+ reason: "is not a 20-byte hex address",
566
+ value
567
+ });
568
+ }
569
+ }
570
+ if (viem.isAddressEqual(account, viem.zeroAddress)) {
571
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
572
+ method,
573
+ argument: "account",
574
+ reason: "is the zero address; the claim identity is mandatory and is never defaulted from the caller"
575
+ });
576
+ }
577
+ if (boundTo !== void 0 && !viem.isAddressEqual(boundTo, submitter)) {
578
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
579
+ method,
580
+ argument: "entry.boundTo",
581
+ reason: `is ${boundTo}, but this transaction is sent from ${submitter}; the FHE input proof is bound to the sender, so only ${boundTo} can submit this entry`
582
+ });
583
+ }
584
+ if (entrypoint === "claimAndUnwrap") {
585
+ if (!viem.isAddressEqual(account, submitter)) {
586
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
587
+ method,
588
+ argument: "entry.account",
589
+ reason: `is ${account}, but \`claimAndUnwrap\` is always submitted for the caller (${submitter}); use \`claim\` to settle on someone else's behalf`
590
+ });
591
+ }
592
+ return;
593
+ }
594
+ const beneficiary = to === void 0 || viem.isAddressEqual(to, viem.zeroAddress) ? account : to;
595
+ if (!viem.isAddressEqual(beneficiary, account) && !viem.isAddressEqual(submitter, account)) {
596
+ throw new UnauthorizedRedirectError({ account, to: beneficiary, submitter });
597
+ }
598
+ }
599
+ async function preflightClaim(args) {
600
+ const { airdrop, claimant } = args;
601
+ const method = "preflightClaim";
602
+ const blockers = [];
603
+ collect(blockers, () => assertSupportedChain(airdrop.chainId));
604
+ if (args.account !== void 0 || args.entrypoint !== void 0) {
605
+ collect(
606
+ blockers,
607
+ () => assertMerkleClaimIdentity({
608
+ method,
609
+ account: args.account ?? claimant,
610
+ submitter: claimant,
611
+ to: args.to,
612
+ entrypoint: args.entrypoint
613
+ })
614
+ );
615
+ }
616
+ const [started, ended, paused, fee, balance, unwrappable] = await Promise.all([
617
+ airdrop.hasClaimStarted(),
618
+ airdrop.hasClaimEnded(),
619
+ airdrop.paused(),
620
+ airdrop.gasFee(),
621
+ airdrop.publicClient.getBalance({ address: claimant }),
622
+ args.entrypoint === "claimAndUnwrap" && airdrop.unwrappable ? airdrop.unwrappable() : Promise.resolve(true)
623
+ ]);
624
+ if (!unwrappable) {
625
+ blockers.push(
626
+ new chunk67OV5CX2_cjs.FeatureDisabledError({
627
+ method,
628
+ contractAddress: airdrop.address,
629
+ feature: "claimAndUnwrap"
630
+ })
631
+ );
632
+ }
633
+ if (paused) {
634
+ blockers.push(new chunk67OV5CX2_cjs.PausedError({ method, contractAddress: airdrop.address }));
635
+ }
636
+ if (!started) {
637
+ blockers.push(
638
+ new ClaimNotStartedError({
639
+ method,
640
+ contractAddress: airdrop.address,
641
+ startTime: await airdrop.startTime()
642
+ })
643
+ );
644
+ }
645
+ if (ended) {
646
+ blockers.push(
647
+ new ClaimWindowClosedError({
648
+ method,
649
+ contractAddress: airdrop.address,
650
+ endTime: await airdrop.endTime()
651
+ })
652
+ );
653
+ }
654
+ if (balance < fee) {
655
+ blockers.push(
656
+ new chunk67OV5CX2_cjs.InsufficientFeeError({
657
+ method,
658
+ contractAddress: airdrop.address,
659
+ feeKind: "gas",
660
+ provided: balance,
661
+ required: fee
662
+ })
663
+ );
664
+ }
665
+ if (args.signature && airdrop.isSignatureValid) {
666
+ const valid = await airdrop.isSignatureValid({ recipient: claimant, ...args.signature });
667
+ if (!valid) {
668
+ blockers.push(new chunk67OV5CX2_cjs.InvalidSignatureError({ method, contractAddress: airdrop.address }));
669
+ }
670
+ }
671
+ return { ready: blockers.length === 0, blockers };
672
+ }
673
+ function collect(blockers, run) {
674
+ try {
675
+ run();
676
+ } catch (err) {
677
+ if (!chunk67OV5CX2_cjs.isTokenOpsSdkError(err)) throw err;
678
+ blockers.push(err);
679
+ }
680
+ }
681
+ async function collectAsync(blockers, run) {
682
+ try {
683
+ await run();
684
+ } catch (err) {
685
+ if (!chunk67OV5CX2_cjs.isTokenOpsSdkError(err)) throw err;
686
+ blockers.push(err);
687
+ }
688
+ }
689
+
690
+ exports.AIRDROP_CONTRACTS_COMMIT = AIRDROP_CONTRACTS_COMMIT;
691
+ exports.AlreadyClaimedError = AlreadyClaimedError;
692
+ exports.ClaimNotStartedError = ClaimNotStartedError;
693
+ exports.ClaimWindowClosedError = ClaimWindowClosedError;
694
+ exports.DEDUP_MODE = DEDUP_MODE;
695
+ exports.DEPLOYMENT_MODE = DEPLOYMENT_MODE;
696
+ exports.DedupIdConsumedError = DedupIdConsumedError;
697
+ exports.FeeCollectorSelfAdministeredError = FeeCollectorSelfAdministeredError;
698
+ exports.MerkleUupsUnsupportedError = MerkleUupsUnsupportedError;
699
+ exports.NonStockWrapperError = NonStockWrapperError;
700
+ exports.PredictionDriftError = PredictionDriftError;
701
+ exports.SaltCollisionError = SaltCollisionError;
702
+ exports.SignatureExpiredError = SignatureExpiredError;
703
+ exports.UnauthorizedRedirectError = UnauthorizedRedirectError;
704
+ exports.UpgradeabilityNotAllowedError = UpgradeabilityNotAllowedError;
705
+ exports.airdropProductMapper = airdropProductMapper;
706
+ exports.assertMerkleClaimIdentity = assertMerkleClaimIdentity;
707
+ exports.assertMerkleModeSupported = assertMerkleModeSupported;
708
+ exports.assertPredictionFresh = assertPredictionFresh;
709
+ exports.assertSaltAvailable = assertSaltAvailable;
710
+ exports.assertStockWrapper = assertStockWrapper;
711
+ exports.assertSupportedChain = assertSupportedChain;
712
+ exports.preflightClaim = preflightClaim;
713
+ exports.preflightCreate = preflightCreate;