diff --git a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx
similarity index 70%
rename from apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx
rename to apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx
index 46a68b66f..d9b21b6c1 100644
--- a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable.tsx
+++ b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx
@@ -2,32 +2,28 @@
import { ReactElement } from "react";
import { Hyperdrive } from "src/appconfig/types";
import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable";
-import { useClosedLongRows } from "src/ui/portfolio/ClosedOrdersTable/useClosedLongRows";
+import { useClosedLongRows } from "src/ui/portfolio/ClosedLongsTable/useClosedLongRows";
import { useAccount } from "wagmi";
-interface ClosedOrdersTableProps {
+interface ClosedLongsTableProps {
hyperdrive: Hyperdrive;
}
-export function ClosedOrdersTable({
+export function ClosedLongsTable({
hyperdrive,
-}: ClosedOrdersTableProps): ReactElement {
+}: ClosedLongsTableProps): ReactElement {
const { address: account } = useAccount();
const { closedLongRows = [] } = useClosedLongRows({
account,
hyperdrive: hyperdrive,
});
- // TODO: Add useOpenShortRows hook
-
- const allRows = [...closedLongRows];
-
return (
);
}
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/useClosedLongRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/useClosedLongRows.tsx
similarity index 100%
rename from apps/hyperdrive-trading/src/ui/portfolio/ClosedOrdersTable/useClosedLongRows.tsx
rename to apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/useClosedLongRows.tsx
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx
new file mode 100644
index 000000000..c750d7530
--- /dev/null
+++ b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/OpenLongsTable.tsx
@@ -0,0 +1,31 @@
+/* eslint-disable react/jsx-key */
+import { ReactElement } from "react";
+import { Hyperdrive } from "src/appconfig/types";
+import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable";
+import { useOpenLongRows } from "src/ui/portfolio/OpenLongsTable/useOpenLongRows";
+import { useAccount } from "wagmi";
+
+interface OpenOrdersTableProps {
+ hyperdrive: Hyperdrive;
+}
+
+export function OpenLongsTable({
+ hyperdrive,
+}: OpenOrdersTableProps): ReactElement {
+ const { address: account } = useAccount();
+
+ const { openLongRows = [] } = useOpenLongRows({
+ account,
+ hyperdrive,
+ });
+
+ return (
+
+ );
+}
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenLongRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/useOpenLongRows.tsx
similarity index 100%
rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenLongRows.tsx
rename to apps/hyperdrive-trading/src/ui/portfolio/OpenLongsTable/useOpenLongRows.tsx
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx
similarity index 65%
rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx
rename to apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx
index a407deea9..3e3d8aeed 100644
--- a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/OpenOrdersTable.tsx
+++ b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/OpenShortsTable.tsx
@@ -2,29 +2,22 @@
import { ReactElement } from "react";
import { Hyperdrive } from "src/appconfig/types";
import { SortableGridTable } from "src/ui/base/components/tables/SortableGridTable";
-import { useOpenLongRows } from "src/ui/portfolio/OpenOrdersTable/useOpenLongRows";
-import { useOpenShortRows } from "src/ui/portfolio/OpenOrdersTable/useOpenShortRows";
+import { useOpenShortRows } from "src/ui/portfolio/OpenShortsTable/useOpenShortRows";
import { useAccount } from "wagmi";
interface OpenOrdersTableProps {
hyperdrive: Hyperdrive;
}
-export function OpenOrdersTable({
+export function OpenShortsTable({
hyperdrive,
}: OpenOrdersTableProps): ReactElement {
const { address: account } = useAccount();
- const { openLongRows: longRows = [] } = useOpenLongRows({
+ const { openShortRows = [] } = useOpenShortRows({
account,
hyperdrive,
});
- const { openShortRows: shortRows = [] } = useOpenShortRows({
- account,
- hyperdrive,
- });
-
- const allRows = [...longRows, ...shortRows];
return (
);
}
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenShortRows.tsx b/apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/useOpenShortRows.tsx
similarity index 100%
rename from apps/hyperdrive-trading/src/ui/portfolio/OpenOrdersTable/useOpenShortRows.tsx
rename to apps/hyperdrive-trading/src/ui/portfolio/OpenShortsTable/useOpenShortRows.tsx
diff --git a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx
index 399119e78..e3be9452f 100644
--- a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx
+++ b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx
@@ -3,12 +3,13 @@ import classNames from "classnames";
import { ReactElement, useState } from "react";
import { Hyperdrive } from "src/appconfig/types";
import { Well } from "src/ui/base/components/Well/Well";
-import { ClosedOrdersTable } from "src/ui/portfolio/ClosedOrdersTable/ClosedOrdersTable";
+import { ClosedLongsTable } from "src/ui/portfolio/ClosedLongsTable/ClosedLongsTable";
+import { OpenLongsTable } from "src/ui/portfolio/OpenLongsTable/OpenLongsTable";
import {
OpenOrClosedTab,
OpenOrClosedTabs,
} from "src/ui/portfolio/OpenOrClosedTabs/OpenOrClosedTabs";
-import { OpenOrdersTable } from "src/ui/portfolio/OpenOrdersTable/OpenOrdersTable";
+import { OpenShortsTable } from "src/ui/portfolio/OpenShortsTable/OpenShortsTable";
type PositionTab = "Longs" | "Shorts" | "LP";
@@ -69,14 +70,21 @@ export function PositionsSection({
{(() => {
switch (activePositionTab) {
- case "Longs":
- return ;
- case "Shorts":
- return ;
- case "LP":
- {
- /* TODO: Wire this up */
+ case "Longs": {
+ if (activeOpenOrClosedTab === "Open") {
+ return ;
+ }
+ return ;
+ }
+ case "Shorts": {
+ if (activeOpenOrClosedTab === "Open") {
+ return ;
}
+ // TODO: Wire this up
+ return ;
+ }
+ case "LP":
+ /* TODO: Wire this up */
return Under construction;
default:
assertNever(activePositionTab);
diff --git a/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts b/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts
index b3d85efd6..c5f20bd67 100644
--- a/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts
+++ b/packages/hyperdrive/src/amm/events/decodeAssetFromTransferSingleEventData.ts
@@ -10,8 +10,8 @@ import { Hash } from "viem";
export type AssetType = "LP" | "LONG" | "SHORT" | "WITHDRAWAL_SHARE";
/**
- * Decodes an encoded asset ID into it's constituent parts: an assetType and
- * timestamp.
+ * Decodes a TransferSingle event.data into it's constituent parts: an assetType
+ * and timestamp (if it exists).
*/
export function decodeAssetFromTransferSingleEventData(eventData: Hash): {
assetType: AssetType;