Skip to main content
Fetches a paginated list of withdrawal requests for a user from the backend API. Supports filtering by chain, vault, and status.

Import

import { getWithdrawalRequests } from "@paxoslabs/amplify-sdk";

Usage

const result = await getWithdrawalRequests({
  userAddress: "0x1234...5678",
  status: "PENDING",
  chainId: 1,
});

for (const request of result.withdrawalRequests) {
  console.log(request.id, request.status, request.orderAmount);
}

Parameters

ParameterTypeRequiredDescription
userAddressAddressYesUser’s wallet address
chainIdnumberNoFilter by blockchain network
vaultAddressAddressNoFilter by vault contract
statusWithdrawalRequestStatusNoFilter by status
pageSizenumberNoNumber of results per page
pageTokenstringNoPagination token for next page
interface GetWithdrawalRequestsParams {
  userAddress: Address;
  chainId?: number;
  vaultAddress?: Address;
  status?: WithdrawalRequestStatus;
  pageSize?: number;
  pageToken?: string;
}

Return Type

interface WithdrawalRequestsResult {
  withdrawalRequests: WithdrawalRequest[];
  nextPageToken: string | null;
}

interface WithdrawalRequest {
  id: string;
  vaultAddress: Address;
  chainId: number;
  wantAssetAddress: Address;
  status: WithdrawalRequestStatus;
  createdAt: string;
  userAddress: Address;
  receiverAddress: Address;
  refundReceiverAddress: Address;
  orderAmount: string;
  orderIndex: number;
  isSubmittedViaSignature: boolean;
  isForceProcessed: boolean;
  isMarkedForRefund: boolean;
  isMarkedForRefundByUser: boolean;
  didOrderFailTransfer: boolean;
}

type WithdrawalRequestStatus =
  | "PENDING"
  | "COMPLETE"
  | "PENDING_REFUND"
  | "REFUNDED";

Example: Withdrawal History Component

import { useQuery } from "@tanstack/react-query";
import { getWithdrawalRequests } from "@paxoslabs/amplify-sdk";

function WithdrawalHistory({ userAddress }: { userAddress: `0x${string}` }) {
  const { data, isLoading } = useQuery({
    queryKey: ["withdrawalRequests", userAddress],
    queryFn: () => getWithdrawalRequests({ userAddress }),
  });

  if (isLoading) return <p>Loading...</p>;

  return (
    <ul>
      {data?.withdrawalRequests.map((req) => (
        <li key={req.id}>
          {req.orderAmount} - {req.status}
        </li>
      ))}
    </ul>
  );
}

Error Handling

Error Message PatternDescriptionResolution
"SDK not initialized"SDK not initializedCall initAmplifySDK() first
"Failed to fetch withdrawal requests"Network or API errorCheck connection and retry