@b3dotfun/anyspend-sdk
Version:
React Hooks and UI Components for AnySpend by B3
65 lines (55 loc) • 2.12 kB
text/typescript
import { Order, OrderStatus, OrderType } from "@b3dotfun/anyspend-sdk/types";
export const getStatusDisplay = (order: Order): { text: string; status: "processing" | "success" | "failure" } => {
switch (order.status) {
case OrderStatus.ScanningDepositTransaction:
return {
text: order.onrampMetadata ? "Awaiting Payment" : "Awaiting Deposit",
status: "processing"
};
case OrderStatus.WaitingStripePayment:
return {
text: "Awaiting Payment",
status: "processing"
};
case OrderStatus.ObtainToken:
return { text: "Obtaining Token", status: "processing" };
case OrderStatus.ObtainFailed:
return { text: "Obtain Token Failed", status: "failure" };
case OrderStatus.Expired:
return { text: "Order Expired", status: "failure" };
case OrderStatus.SendingTokenFromVault:
return { text: "Sending Token", status: "processing" };
case OrderStatus.Relay:
return { text: "Executing Order", status: "processing" };
case OrderStatus.Executed: {
const text =
order.type === OrderType.Swap
? "Swap Complete"
: order.type === OrderType.MintNFT
? "NFT Minted"
: order.type === OrderType.JoinTournament
? "Tournament Joined"
: order.type === OrderType.FundTournament
? "Tournament Funded"
: "Order Complete";
return { text, status: "success" };
}
case OrderStatus.Refunding:
return { text: "Order Refunding", status: "processing" };
case OrderStatus.Refunded:
return { text: "Order Refunded", status: "failure" };
case OrderStatus.Failure:
return { text: "Order Failure", status: "failure" };
default:
throw new Error("Invalid order status");
}
};
export const getErrorDisplay = (errorDetails: string): string => {
switch (errorDetails) {
case "SLIPPAGE":
return "The order failed due to price movement exceeding slippage tolerance";
default: {
return "The order failed. Please try again or contact support";
}
}
};