useClearUpgradeabilityPolicy
Drop a creator's useSetUpgradeabilityPolicy override, reverting them to the factory default.
@tokenops/sdk/fhe-airdrop/advanced/react{ mutate, mutateAsync, isPending, error, data }Description
Drop a creator's useSetUpgradeabilityPolicy override, reverting
them to the factory default. Requires UPGRADE_MANAGER_ROLE.
Invalidates: fn "effectiveUpgradeable" and fn "upgradeabilityPolicy", both
keyed on args.creator, plus the fn "preflightCreate" PREFIX. Reverting to the
default flips effectiveUpgradeable exactly as setting an override does, and
preflightCreate reads it to decide whether a mode: "uups" create is refused - so
omitting the prefix here would leave a create form showing a stale allow/deny.
Signature
function useClearUpgradeabilityPolicy(options?: AirdropClientOptions): UseMutationResult<Hex, Error, ClearUpgradeabilityPolicyArgs>;Parameters
Shape of the object you pass to .mutate(args) is the SDK type ClearUpgradeabilityPolicyArgs. Inspect the type for the full shape (discriminated unions collapse to a tagged variant at call time).
Example
const clearPolicy = useClearUpgradeabilityPolicy();
await clearPolicy.mutateAsync({ creator });Pulled directly from the hook's TSDoc block — the same snippet your IDE shows on hover.
Errors
This mutation can reject with SDK-level, product-level, or generic-fallback errors. Product classes carry the offending value as fields — render them inline instead of a generic "transaction failed." See Airdrop v2 › Errors for the per-class recovery table.
Invalidation recipe
After this mutation succeeds, invalidate the queries it affects so consumer UI re-fetches fresh state. The SDK never auto-invalidates — that's a consumer decision (different apps cache different shapes).
import { useQueryClient } from "@tanstack/react-query";
const queryClient = useQueryClient();
const clearUpgradeabilityPolicy = useClearUpgradeabilityPolicy(/* options */);
clearUpgradeabilityPolicy.mutate(args, {
onSuccess() {
// Coarse invalidation: refresh every cached read on this product surface.
queryClient.invalidateQueries({
queryKey: ["tokenops-sdk", "fhe-airdrop"],
});
},
});See also
Other Write hooks in airdrop v2: