Skip to content

Commit

Permalink
Publish Stage (#3792)
Browse files Browse the repository at this point in the history
* In Given Out (#3773)

* feat: initial in given out implementation

* feat: inputs and relative buttons wired in to correct quotes

* fix: route display

* feat: functioning swaps for in given out

* feat: working in given out

* fix: improved swap denoms button

* chore: remove logs

* fix: missing dependencies for hook

* fix: readded localstorage for swapped pairs, fixed asset page denoms for limit orders

* fix: adjusted gas estimate loading state

* fix: asset price chart advance view bg

* fix: readded feature flag for limit orders

* fix: flipped trade details ratio ordering

* fix: limit order ratio shows current market

* refactor: replicated disabled/loading state for old swap tool

* feat: added out given in to buy/sell

* fix: limit input with decimal start

* fix: reset now resets output

* feat: [WIP] swap exact amount out

* fix: price formatting for buy/sell fiat inputs

* feat: implemented default slippage for in-given-out

* chore: removed log

* feat: added new slippage defaults to swap tab

* build: fix errors

* fix: use swap hook infinite load

* feat: added more amplitude events

* fix: input starting with . for swap tab

* feat: hide percent change when below 1%

* feat: market price now shows 0%

* chore: updated tooltips

* chore: localizations

* fix: spacing

* fix: removed unused localization

* fix: display values for new quote type

* chore: localizations

* fix: in given out refetch dropped to 10 seconds

* fix: sell tab non focused display

* feat: dynamic slippage for in-given-out

* feat: added inGivenOut feature flag

* fix: adjusted slippage resetting

* fix: removed unused file

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: renamed slippage variable and fixed comments

* fix: added handler for alternate slippage error

* feat: added handlers for slippage over balance

* fix: loading state for buy/sell tab

* refactor: moved amount with slippage calculation to a hook

* refactor: cleaned up nonFocusedDisplayAmount

* fix: reinstated balance query for exact amount out

* fix: added number formatting for swap tab inputs

* feat: added OCT to in given out

* chore: localizations

* refactor: useQueryRouterBestQuote changes

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [In Given Out]: Feature Flag (#3781)

* fix: improved inGivenOut FF disabled behavior

* fix: clear inputs on swap

* fix: added cases for if user has input and in given out ff is disabled

* fix: swap inputs on empty value

* Swap more OSMO to ATOM (#3782)

* (Deposit/Withdraw) Display Keplr EVM correctly (#3771)

* [In Given Out]: Default input adjustments (#3784)

* fix: button disabled for limit

* feat: default display for buy/sell tab

* refactor: wrapped updating code in useEffect

* fix: loading state for button

* feat: added slippage warning for default too high (#3787)

* Mattupham/fe 784 portfolio v2 open orders / limit orders (#3786)

* open orders

* Add base values for limit orders

* Add open orders

* Clean up styles

* Clean up styles

* Base i18n

* i18n

* Update quote asset

* fix: remove logs and correct limit input amount (#3788)

* feat: add account address to txn scan endpoint (#3783)

* Restrict Orderbook Amount  (#3791)

* fix: limited orderbook pools for orders query

* fix: restrict pools from SQS rather than in orderbook router

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: yakuramori <[email protected]>
Co-authored-by: Jose Felix <[email protected]>
Co-authored-by: Matt Upham <[email protected]>
Co-authored-by: PaddyMc <[email protected]>
  • Loading branch information
6 people committed Aug 23, 2024
1 parent 88f5c2d commit 2754386
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 33 deletions.
1 change: 1 addition & 0 deletions packages/server/src/queries/blockaid/transaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export interface TransactionScanRequest {
* Tx hex bytes
*/
transaction: string;
account_address: string;
metadata: { [key: string]: string };
}

Expand Down
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,
};
};
1 change: 1 addition & 0 deletions packages/web/pages/api/transaction-scan.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export default async function transactionScanHandler(
chain: "osmosis",
transaction: unsignedTx,
options: ["validation", "simulation"],
account_address: bech32Address,
metadata: {
type: "in_app",
},
Expand Down

0 comments on commit 2754386

Please sign in to comment.