Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ test-results
.github/test-data
junit.xml

# Leap extension local storage for e2e tests with playwright
apps/deploy-web/tests/ui/fixture/leapExtensionLocalStorage.*.json

# Clinic.js diagnostic artifacts
.clinic
Expand Down
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
@leapwallet:registry=https://registry.npmjs.org/
1 change: 0 additions & 1 deletion apps/deploy-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
"@cosmos-kit/cosmos-extension-metamask": "0.13.3",
"@cosmos-kit/cosmostation-extension": "~2.16.3",
"@cosmos-kit/keplr": "~2.15.3",
"@cosmos-kit/leap": "~2.15.3",
"@cosmos-kit/react": "^2.20.1",
"@emotion/cache": "^11.7.1",
"@emotion/css": "^11.7.1",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { describe, expect, it, vi } from "vitest";

import { DEPENDENCIES, GetStartedStepper } from "./GetStartedStepper";

import { render, screen } from "@testing-library/react";
import { MockComponents } from "@tests/unit/mocks";

describe(GetStartedStepper.name, () => {
it("displays AKT and USDC balance for custodial wallet", () => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

USDC?

setup({
isWalletConnected: true,
isManagedWallet: false,
balanceUAKT: 10_000_000,
balanceUUSDC: 5_000_000
});

expect(screen.queryByText("10")).toBeInTheDocument();
expect(screen.queryByText(/AKT and/)).toBeInTheDocument();
expect(screen.queryByText(/USDC/)).toBeInTheDocument();
});

it("displays USD balance for managed wallet", () => {
setup({
isWalletConnected: true,
isManagedWallet: true,
balanceUAKT: 10_000_000,
balanceUUSDC: 5_000_000
});

expect(screen.queryByText(/\$/)).toBeInTheDocument();
expect(screen.queryByText(/AKT and/)).not.toBeInTheDocument();
});

it("shows billing not set up when wallet is disconnected", () => {
setup({ isWalletConnected: false });

expect(screen.queryByText("Billing is not set up")).toBeInTheDocument();
});

function setup(input?: {
isWalletConnected?: boolean;
isManagedWallet?: boolean;
isTrialing?: boolean;
balanceUAKT?: number;
balanceUUSDC?: number;
balanceUACT?: number;
}) {
const deps = MockComponents(DEPENDENCIES, {
useWallet: vi.fn(() => ({
isWalletConnected: input?.isWalletConnected ?? false,
isManaged: input?.isManagedWallet ?? false,
isTrialing: input?.isTrialing ?? false,
address: "akash1test"
})) as unknown as (typeof DEPENDENCIES)["useWallet"],
useWalletBalance: vi.fn(() => ({
balance:
input?.balanceUAKT !== undefined || input?.balanceUUSDC !== undefined || input?.balanceUACT !== undefined
? {
balanceUAKT: input?.balanceUAKT ?? 0,
balanceUUSDC: input?.balanceUUSDC ?? 0,
balanceUACT: input?.balanceUACT ?? 0
}
: undefined,
refetch: vi.fn()
})) as unknown as (typeof DEPENDENCIES)["useWalletBalance"],
useChainParam: vi.fn(() => ({
minDeposit: { akt: 5, act: 5 }
})) as unknown as (typeof DEPENDENCIES)["useChainParam"]
});

return render(<GetStartedStepper dependencies={deps} />);
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,23 @@ import { RouteStep } from "@src/types/route-steps.type";
import { udenomToDenom } from "@src/utils/mathHelpers";
import { uaktToAKT } from "@src/utils/priceUtils";
import { UrlService } from "@src/utils/urlUtils";
import LiquidityModal from "../liquidity-modal";
import { ExternalLink } from "../shared/ExternalLink";
import { WalletConnectionButtons } from "../wallet/WalletConnectionButtons";
import { QontoConnector, QontoStepIcon } from "./Stepper";

export const GetStartedStepper: React.FunctionComponent = () => {
export const DEPENDENCIES = {
useWallet,
useWalletBalance,
useChainParam,
WalletConnectionButtons,
AddFundsLink
};

export const GetStartedStepper: React.FunctionComponent<{ dependencies?: typeof DEPENDENCIES }> = ({ dependencies: d = DEPENDENCIES }) => {
const [activeStep, setActiveStep] = useState(0);
const { isWalletConnected, address, isManaged: isManagedWallet, isTrialing } = useWallet();
const { refetch: refetchBalances, balance: walletBalance } = useWalletBalance();
const { minDeposit } = useChainParam();
const { isWalletConnected, isManaged: isManagedWallet, isTrialing } = d.useWallet();
const { balance: walletBalance } = d.useWalletBalance();
const { minDeposit } = d.useChainParam();
const aktBalance = walletBalance ? uaktToAKT(walletBalance.balanceUAKT) : 0;
const usdcBalance = walletBalance ? udenomToDenom(walletBalance.balanceUUSDC) : 0;
const actBalance = walletBalance ? udenomToDenom(walletBalance.balanceUACT) : 0;
Expand Down Expand Up @@ -98,10 +105,10 @@ export const GetStartedStepper: React.FunctionComponent = () => {
<div className="flex items-center space-x-4">
{isManagedWallet && (
<div className="flex items-start gap-2">
<AddFundsLink className={cn("hover:no-underline", buttonVariants({ variant: "default" }))} href={UrlService.billing({ openPayment: true })}>
<d.AddFundsLink className={cn("hover:no-underline", buttonVariants({ variant: "default" }))} href={UrlService.billing({ openPayment: true })}>
<HandCard className="text-xs" />
<span className="m-2 whitespace-nowrap">Add Funds</span>
</AddFundsLink>
</d.AddFundsLink>
</div>
)}
</div>
Expand Down Expand Up @@ -136,7 +143,7 @@ export const GetStartedStepper: React.FunctionComponent = () => {
<span>Billing is not set up</span>
</div>

<WalletConnectionButtons className="gap-2" connectManagedWalletButtonClassName="mr-2 w-full md:w-auto" />
<d.WalletConnectionButtons className="gap-2" connectManagedWalletButtonClassName="mr-2 w-full md:w-auto" />
</div>
)}

Expand Down Expand Up @@ -165,7 +172,6 @@ export const GetStartedStepper: React.FunctionComponent = () => {
You have <strong>{aktBalance}</strong> AKT and <strong>{usdcBalance}</strong> USDC
</span>
)}
{!isManagedWallet && isWalletConnected && <LiquidityModal address={address} aktBalance={aktBalance} refreshBalances={refetchBalances} />}
</div>
)}
</StepContent>
Expand Down
220 changes: 0 additions & 220 deletions apps/deploy-web/src/components/liquidity-modal/index.tsx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import type { ChainContext, WalletModalProps } from "@cosmos-kit/core";
import { wallets as metamask } from "@cosmos-kit/cosmos-extension-metamask";
import { wallets as cosmostation } from "@cosmos-kit/cosmostation-extension";
import { wallets as keplr } from "@cosmos-kit/keplr";
import { wallets as leap } from "@cosmos-kit/leap";
import { ChainProvider, DefaultModal, useChain } from "@cosmos-kit/react";
import { useAtom } from "jotai";
import { useSnackbar } from "notistack";
Expand All @@ -28,7 +27,7 @@ export function CustomChainProvider({ children }: Props) {
<ChainProvider
chains={chains}
assetLists={assetLists}
wallets={[...keplr, ...leap, ...cosmostation, ...metamask]}
wallets={[...keplr, ...cosmostation, ...metamask]}
walletModal={ModalWrapper}
sessionOptions={{
duration: 31_556_926_000, // 1 year
Expand Down
Loading
Loading