useAccessEcdsaClaimAmount
Submits a transaction. Previews a signed encrypted allocation as an encrypted handle.
@tokenops/sdk/fhe-airdrop/react{ mutate, mutateAsync, isPending, error, data }Description
Submits a transaction. Previews a signed encrypted allocation as an encrypted
handle. Pass data.handle to the Zama relayer's userDecrypt.
The submitter can decrypt what it previews here. The contract grants the amount
with FHE.allow(amount, msg.sender), unlike useAccessMerkleClaimAmount, whose
grantee is the entry's claim identity rather than the caller.
An empty inputProof is accepted only for a zero handle or one the sender and the
instance already hold ACL on; see EcdsaClaimArgs.encryptedInput.
Invalidates: nothing. The preview consumes neither replay guard nor the EIP-712 digest, so the same input is still claimable for real afterwards and no cached read changes value.
Signature
function useAccessEcdsaClaimAmount(options: EcdsaAirdropInstanceClientOptions): UseMutationResult<EncryptedViewResult, Error, EcdsaGetClaimAmountArgs>;Parameters
Shape of the object you pass to .mutate(args) is the SDK type EcdsaGetClaimAmountArgs. Inspect the type for the full shape (discriminated unions collapse to a tagged variant at call time).
Example
const preview = useAccessEcdsaClaimAmount({ address: airdropAddress });
const { handle } = await preview.mutateAsync({ encryptedInput, dedupId, deadline, signer, signature });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 accessEcdsaClaimAmount = useAccessEcdsaClaimAmount(/* options */);
accessEcdsaClaimAmount.mutate(args, {
onSuccess() {
// Coarse invalidation: refresh every cached read on this product surface.
queryClient.invalidateQueries({
queryKey: ["tokenops-sdk", "fhe-airdrop"],
});
},
});See also
Other Encrypted read hooks in airdrop v2:
useDiscloseHandleToPartyGrant ACL on a single ciphertext handle to a third party (e.g. an auditor).useAdminBatchDiscloseBalanceToPartiesSubmits a transaction. Discloses the instance's confidential pool balance to several parties at once.useAdminDiscloseBalanceToPartySubmits a transaction. Discloses the instance's confidential pool balance to party.useAdminGetCurrentBalanceSubmits a transaction. Reads the instance's remaining confidential pool balance as an euint64 handle the caller may decrypt - pass data.handle to the Zama relayer's userDecrypt.