Skip to content

Commit

Permalink
Restrict Orderbook Amount (#3791)
Browse files Browse the repository at this point in the history
* fix: limited orderbook pools for orders query

* fix: restrict pools from SQS rather than in orderbook router
  • Loading branch information
crnbarr93 committed Aug 23, 2024
1 parent 9692dac commit 7ec75c0
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 33 deletions.
18 changes: 10 additions & 8 deletions packages/server/src/queries/complex/orderbooks/pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@ export function getOrderbookPools() {
ttl: 1000 * 60 * 60, // 1 hour
getFreshValue: () =>
queryCanonicalOrderbooks().then(async (data) => {
return data.map((orderbook) => {
return {
baseDenom: orderbook.base,
quoteDenom: orderbook.quote,
contractAddress: orderbook.contract_address,
poolId: orderbook.pool_id.toString(),
};
}) as Orderbook[];
return data
.filter((o) => o.pool_id < 2065)
.map((orderbook) => {
return {
baseDenom: orderbook.base,
quoteDenom: orderbook.quote,
contractAddress: orderbook.contract_address,
poolId: orderbook.pool_id.toString(),
};
}) as Orderbook[];
}),
});
}
4 changes: 3 additions & 1 deletion packages/trpc/src/orderbook-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ export const orderbookRouter = createTRPCRouter({
getFreshItems: async () => {
const { userOsmoAddress } = input;
const pools = await getOrderbookPools();
const contractAddresses = pools.map((p) => p.contractAddress);
const activePools = pools.filter((p) => parseInt(p.poolId) < 2065);
const contractAddresses = activePools.map((p) => p.contractAddress);

if (contractAddresses.length === 0 || userOsmoAddress.length === 0)
return [];
const promises = contractAddresses.map(
Expand Down
14 changes: 9 additions & 5 deletions packages/web/components/complex/orders-history/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ export const OrderHistory = observer(() => {
} = useOrderbookAllActiveOrders({
userAddress: wallet?.address ?? "",
pageSize: 20,
refetchInterval: 15000,
});

const groupedOrders = useMemo(() => groupOrdersByStatus(orders), [orders]);
Expand Down Expand Up @@ -116,11 +117,14 @@ export const OrderHistory = observer(() => {
paddingStart: 45,
});

const { claimAllOrders, count: filledOrdersCount } =
useOrderbookClaimableOrders({
userAddress: wallet?.address ?? "",
disabled: isLoading || orders.length === 0 || isRefetching,
});
const filledOrders = orders.filter((o) => o.status === "filled");
const filledOrdersCount = filledOrders.length;

const { claimAllOrders } = useOrderbookClaimableOrders({
userAddress: wallet?.address ?? "",
disabled: isLoading || orders.length === 0 || isRefetching,
orders: filledOrders,
});

const claimOrders = useCallback(async () => {
try {
Expand Down
42 changes: 23 additions & 19 deletions packages/web/hooks/limit-orders/use-orderbook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,8 @@ export const useOrderbookAllActiveOrders = ({
getNextPageParam: (lastPage) => lastPage.nextCursor,
initialCursor: 0,
refetchInterval,
cacheTime: refetchInterval,
staleTime: refetchInterval,
enabled: !!userAddress && addresses.length > 0,
refetchOnMount: true,
keepPreviousData: false,
Expand Down Expand Up @@ -326,30 +328,32 @@ export const useOrderbookAllActiveOrders = ({
};

export const useOrderbookClaimableOrders = ({
userAddress,
disabled = false,
userAddress: _,
disabled: __,
orders = [],
}: {
userAddress: string;
disabled?: boolean;
orders: MappedLimitOrder[];
}) => {
const { orderbooks } = useOrderbooks();
const { accountStore } = useStore();
const account = accountStore.getWallet(accountStore.osmosisChainId);
const addresses = orderbooks.map(({ contractAddress }) => contractAddress);
const {
data: orders,
isLoading,
isFetching,
refetch,
} = api.edge.orderbooks.getClaimableOrders.useQuery(
{
userOsmoAddress: userAddress,
},
{
enabled: !!userAddress && addresses.length > 0 && !disabled,
refetchOnMount: true,
}
);
// const {
// data: orders,
// isLoading,
// isFetching,
// refetch,
// } = api.edge.orderbooks.getClaimableOrders.useQuery(
// {
// userOsmoAddress: userAddress,
// },
// {
// enabled: !!userAddress && addresses.length > 0 && !disabled,
// refetchOnMount: true,
// }
// );

const claimAllOrders = useCallback(async () => {
if (!account || !orders) return;
Expand Down Expand Up @@ -379,14 +383,14 @@ export const useOrderbookClaimableOrders = ({

if (msgs.length > 0) {
await account?.cosmwasm.sendMultiExecuteContractMsg("executeWasm", msgs);
await refetch();
// await refetch();
}
}, [orders, account, addresses, refetch]);
}, [orders, account, addresses]);

return {
orders: orders ?? [],
count: orders?.length ?? 0,
isLoading: isLoading || isFetching,
isLoading: false,
claimAllOrders,
};
};

0 comments on commit 7ec75c0

Please sign in to comment.