Skip to content

Commit

Permalink
Publish Stage (#3854)
Browse files Browse the repository at this point in the history
* Amplitude: prevent outlier value usd logs (#3825)

* prevent outlier value usd logs

* usd const

* forgot one

* format

* Mattupham/fe 726 porfolio v3 alloyed convert button deposit withdraw dropdown (#3841)

* Add convert button

* Add convert button

* Clean up

* Handle feature via flag

* Update icons

* Clean up

* Clean up

* i18n

* Extract functionality

* Extract type

* Clean up comments

* Refactor icon

* Clean up styles

* Update types

* fix: amino signing for withdraw position message (#3852)

* add favorites to portfolio (#3853)

* Update sprite

* Clean up

* Update to useUserWatchlist

---------

Co-authored-by: Jon Ator <[email protected]>
Co-authored-by: Matt Upham <[email protected]>
Co-authored-by: PaddyMc <[email protected]>
  • Loading branch information
4 people authored Sep 25, 2024
1 parent 4764163 commit 2c99375
Show file tree
Hide file tree
Showing 29 changed files with 402 additions and 96 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1025,10 +1025,11 @@ export const MsgWithdrawPosition = {
if (message.sender !== "") {
writer.uint32(18).string(message.sender);
}
// NOTE: Withdraw postion will break if we regenerate protos
// if you see this line being removed in a PR, flag it!
// TODO: Abstract to an override function.
if (message.liquidityAmount !== "") {
writer
.uint32(26)
.string(Decimal.fromUserInput(message.liquidityAmount, 18).atomics);
writer.uint32(26).string(message.liquidityAmount.replace(".", ""));
}
return writer;
},
Expand Down
43 changes: 43 additions & 0 deletions packages/stores/src/account/amino-converters.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import type { AminoMsgTransfer } from "@cosmjs/stargate";
import type {
MsgWithdrawPosition,
MsgWithdrawPositionAmino,
} from "@osmosis-labs/proto-codecs/build/codegen/osmosis/concentratedliquidity/v1beta1/tx";
import type { MsgTransfer } from "cosmjs-types/ibc/applications/transfer/v1/tx";
import Long from "long";

Expand Down Expand Up @@ -46,6 +50,45 @@ export async function getAminoConverters() {
: undefined,
}),
},
"/osmosis.concentratedliquidity.v1beta1.MsgWithdrawPosition": {
...originalOsmosisAminoConverters[
"/osmosis.concentratedliquidity.v1beta1.MsgWithdrawPosition"
],
aminoType: "osmosis/cl-withdraw-position",
fromAmino(object: MsgWithdrawPositionAmino): MsgWithdrawPosition {
const message = {
positionId: BigInt(0),
sender: "",
liquidityAmount: "",
};
if (object.position_id !== undefined && object.position_id !== null) {
message.positionId = BigInt(object.position_id);
}
if (object.sender !== undefined && object.sender !== null) {
message.sender = object.sender;
}
if (
object.liquidity_amount !== undefined &&
object.liquidity_amount !== null
) {
message.liquidityAmount = object.liquidity_amount.replace(".", "");
}
return message;
},
toAmino(message: MsgWithdrawPosition): MsgWithdrawPositionAmino {
const obj: any = {};
obj.position_id =
message.positionId !== BigInt(0)
? message.positionId.toString()
: undefined;
obj.sender = message.sender === "" ? undefined : message.sender;
obj.liquidity_amount =
message.liquidityAmount === ""
? undefined
: message.liquidityAmount.replace(".", "");
return obj;
},
},
};

const ibcAminoConverters: Record<
Expand Down
9 changes: 3 additions & 6 deletions packages/stores/src/account/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -832,15 +832,12 @@ export class AccountStore<Injects extends Record<string, any>[] = []> {
return typeUrl;
};

// TODO - update proto codec
// @osmosis-labs/proto-codec has been updated for "/osmosis.concentratedliquidity.v1beta1.MsgWithdrawPosition"
// TODO: Copy what's been done there for this message below
const doesTxNeedDirectSigning = messages.some(
(message) =>
message.typeUrl ===
getTypeUrl(
"/osmosis.concentratedliquidity.v1beta1.MsgWithdrawPosition"
) ||
message.typeUrl ===
getTypeUrl("/osmosis.valsetpref.v1beta1.MsgSetValidatorSetPreference")
getTypeUrl("/osmosis.valsetpref.v1beta1.MsgSetValidatorSetPreference")
);

const forceSignDirect = doesTxNeedDirectSigning;
Expand Down
18 changes: 14 additions & 4 deletions packages/web/components/bridge/amount-and-review-screen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useMemo, useState } from "react";
import { getAddress } from "viem";

import { Screen, useScreenManager } from "~/components/screen-manager";
import { EventName } from "~/config";
import { EventName, OUTLIER_USD_VALUE_THRESHOLD } from "~/config";
import { useAmplitudeAnalytics } from "~/hooks";
import { BridgeScreen } from "~/hooks/bridge";
import { useEvmWalletAccount } from "~/hooks/evm-wallet";
Expand Down Expand Up @@ -342,6 +342,18 @@ export const AmountAndReviewScreen = observer(
? fromChain.chainName
: toChain.chainName;

let valueUsd = Number(
q.input.fiatValue.toDec().toString()
);
// Protect our data from outliers
// Perhaps from upstream issues with price data providers
if (
isNaN(valueUsd) ||
valueUsd > OUTLIER_USD_VALUE_THRESHOLD
) {
valueUsd = 0;
}

logEvent([
EventName.DepositWithdraw.started,
{
Expand All @@ -352,9 +364,7 @@ export const AmountAndReviewScreen = observer(
isRecommendedVariant,
network: networkName,
transferDirection: direction,
valueUsd: Number(
q.input.fiatValue.toDec().toString()
),
valueUsd,
walletName,
},
]);
Expand Down
16 changes: 12 additions & 4 deletions packages/web/components/swap-tool/alt.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import { tError } from "~/components/localization";
import { TradeDetails } from "~/components/swap-tool/trade-details";
import { GenericDisclaimer } from "~/components/tooltip/generic-disclaimer";
import { Button } from "~/components/ui/button";
import { EventName, EventPage } from "~/config";
import { EventName, EventPage, OUTLIER_USD_VALUE_THRESHOLD } from "~/config";
import {
useAmplitudeAnalytics,
useDisclosure,
Expand Down Expand Up @@ -214,6 +214,16 @@ export const AltSwapTool: FunctionComponent<SwapToolProps> = observer(
const sendSwapTx = () => {
if (!swapState.inAmountInput.amount) return;

let valueUsd = Number(
swapState.inAmountInput.fiatValue?.toDec().toString() ?? "0"
);

// Protect our data from outliers
// Perhaps from upstream issues with price data providers
if (isNaN(valueUsd) || valueUsd > OUTLIER_USD_VALUE_THRESHOLD) {
valueUsd = 0;
}

const baseEvent = {
fromToken: swapState.fromAsset?.coinDenom,
tokenAmount: Number(swapState.inAmountInput.amount.toDec().toString()),
Expand All @@ -223,9 +233,7 @@ export const AltSwapTool: FunctionComponent<SwapToolProps> = observer(
({ pools }) => pools.length !== 1
),
isMultiRoute: (swapState.quote?.split.length ?? 0) > 1,
valueUsd: Number(
swapState.inAmountInput.fiatValue?.toDec().toString() ?? "0"
),
valueUsd,
feeValueUsd: Number(swapState.totalFee?.toString() ?? "0"),
page,
quoteTimeMilliseconds: swapState.quote?.timeMs,
Expand Down
16 changes: 12 additions & 4 deletions packages/web/components/swap-tool/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import { Popover } from "~/components/popover";
import { SplitRoute } from "~/components/swap-tool/split-route";
import { InfoTooltip, Tooltip } from "~/components/tooltip";
import { Button } from "~/components/ui/button";
import { EventName, EventPage } from "~/config";
import { EventName, EventPage, OUTLIER_USD_VALUE_THRESHOLD } from "~/config";
import {
useAmplitudeAnalytics,
useDisclosure,
Expand Down Expand Up @@ -186,6 +186,16 @@ export const SwapTool: FunctionComponent<SwapToolProps> = observer(

if (!swapState.inAmountInput.amount) return;

let valueUsd = Number(
swapState.inAmountInput.fiatValue?.toDec().toString() ?? "0"
);

// Protect our data from outliers
// Perhaps from upstream issues with price data providers
if (isNaN(valueUsd) || valueUsd > OUTLIER_USD_VALUE_THRESHOLD) {
valueUsd = 0;
}

const baseEvent = {
fromToken: swapState.fromAsset?.coinDenom,
tokenAmount: Number(swapState.inAmountInput.amount.toDec().toString()),
Expand All @@ -195,9 +205,7 @@ export const SwapTool: FunctionComponent<SwapToolProps> = observer(
({ pools }) => pools.length !== 1
),
isMultiRoute: (swapState.quote?.split.length ?? 0) > 1,
valueUsd: Number(
swapState.inAmountInput.fiatValue?.toDec().toString() ?? "0"
),
valueUsd,
feeValueUsd: Number(swapState.totalFee?.toString() ?? "0"),
page,
quoteTimeMilliseconds: swapState.quote?.timeMs,
Expand Down
Loading

0 comments on commit 2c99375

Please sign in to comment.