Skip to Content
Symmio Frontier — the SDK surface for builders on HyperEVM
ReactWithdraw hooks

Withdraw hooks

Withdraw request lifecycle — initiate, cancel, finalize, plus reads for the pending queue.

Import

import { // Reads useLastWithdrawRequestId, usePendingWithdrawRequests, useWithdrawRequest, useWithdrawableTime, // Writes useInitiateWithdraw, useSimulateInitiateWithdraw, useRequestCancelWithdraw, useSimulateRequestCancelWithdraw, useFinalizeWithdrawRequest, useSimulateFinalizeWithdrawRequest, } from "@symmio/trading-react";

Lifecycle overview

  1. InitiateuseInitiateWithdraw submits a withdraw request. Enters the delayed queue.
  2. WaituseWithdrawableTime tells the UI when the request becomes claimable.
  3. FinalizeuseFinalizeWithdrawRequest claims the funds after the delay.
  4. Cancel (optional) — useRequestCancelWithdraw cancels a pending request.

Each write has a paired useSimulate* — see Simulate then write.

Reads

useLastWithdrawRequestId

Id of the most recent request for an account.

const lastId = useLastWithdrawRequestId({ account });

usePendingWithdrawRequests

Every queued (not yet claimable) request for an account.

const pending = usePendingWithdrawRequests({ account });

useWithdrawRequest

Details for one specific request.

const request = useWithdrawRequest({ account, requestId });

useWithdrawableTime

Timestamp when a queued request becomes claimable. Bind to a countdown / claim button.

const { withdrawableAt, isReady } = useWithdrawableTime({ requestId });

Writes

useInitiateWithdraw / useSimulateInitiateWithdraw

Submit a withdraw request.

const simulation = useSimulateInitiateWithdraw({ account, amount }); const mutation = useInitiateWithdraw();

useRequestCancelWithdraw / useSimulateRequestCancelWithdraw

Cancel a pending request.

const mutation = useRequestCancelWithdraw(); mutation.mutate({ account, requestId });

useFinalizeWithdrawRequest / useSimulateFinalizeWithdrawRequest

Claim funds after the delay expires.

const mutation = useFinalizeWithdrawRequest(); mutation.mutate({ account, requestId });
  • SYMMIO Contract — the underlying createClassicWithdrawPart primitive.
  • InstantLayer — the delegated instant-withdraw variant.
  • Errors — reverts surface as SymmioRequestError kind: "revert".
Last updated on