Skip to content
Merged
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
5 changes: 5 additions & 0 deletions .changeset/eleven-mangos-travel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@thirdweb-dev/vault-sdk": patch
---

Fixed bug with listing solana accounts response type
83 changes: 83 additions & 0 deletions apps/dashboard/src/@/components/blocks/solana-address.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
"use client";
import { CheckIcon, CopyIcon } from "lucide-react";
import { useMemo } from "react";
import { Button } from "@/components/ui/button";
import {
HoverCard,
HoverCardContent,
HoverCardTrigger,
} from "@/components/ui/hover-card";
import { useClipboard } from "@/hooks/useClipboard";
import { cn } from "@/lib/utils";

export function SolanaAddress(props: {
address: string;
shortenAddress?: boolean;
className?: string;
}) {
const shortenedAddress = useMemo(() => {
return props.shortenAddress !== false
? `${props.address.slice(0, 4)}...${props.address.slice(-4)}`
: props.address;
}, [props.address, props.shortenAddress]);

const lessShortenedAddress = useMemo(() => {
return `${props.address.slice(0, 8)}...${props.address.slice(-8)}`;
}, [props.address]);

const { onCopy, hasCopied } = useClipboard(props.address, 2000);

return (
<HoverCard>
<HoverCardTrigger asChild tabIndex={-1}>
<Button
className={cn(
"flex flex-row items-center gap-2 px-0",
props.className,
)}
onClick={(e) => e.stopPropagation()}
variant="link"
>
<div className="flex size-5 items-center justify-center rounded-full bg-gradient-to-br from-purple-500 to-blue-500" />
<span className="cursor-pointer font-mono text-sm">
{shortenedAddress}
</span>
</Button>
</HoverCardTrigger>
<HoverCardContent
className="w-80 border-border"
onClick={(e) => {
// do not close the hover card when clicking anywhere in the content
e.stopPropagation();
}}
>
<div className="space-y-4">
<div className="flex items-center justify-between">
<h3 className="font-semibold text-lg">Solana Public Key</h3>
<Button
className="flex items-center gap-2"
onClick={onCopy}
size="sm"
variant="outline"
>
{hasCopied ? (
<CheckIcon className="h-4 w-4" />
) : (
<CopyIcon className="h-4 w-4" />
)}
{hasCopied ? "Copied!" : "Copy"}
</Button>
</div>
<p className="break-all rounded bg-muted p-3 text-center font-mono text-xs leading-relaxed">
{lessShortenedAddress}
</p>
<div className="rounded-lg bg-muted/50 p-3">
<p className="text-muted-foreground text-xs leading-relaxed">
Solana public key for blockchain transactions.
</p>
</div>
</div>
</HoverCardContent>
</HoverCard>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@ export function ProjectSidebarLayout(props: {
{
href: `${props.layoutPath}/transactions`,
icon: ArrowLeftRightIcon,
label: "Transactions",
label: (
<span className="flex items-center gap-2">
Transactions <Badge>New</Badge>
</span>
),
},
{
href: `${props.layoutPath}/contracts`,
Expand Down Expand Up @@ -81,11 +85,7 @@ export function ProjectSidebarLayout(props: {
{
href: `${props.layoutPath}/tokens`,
icon: TokenIcon,
label: (
<span className="flex items-center gap-2">
Tokens <Badge>New</Badge>
</span>
),
label: "Tokens",
},
],
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { ResponsiveSearchParamsProvider } from "responsive-rsc";
import type { ThirdwebClient } from "thirdweb";
import type { Project } from "@/api/project/projects";
import { UnifiedTransactionsTable } from "../components/transactions-table.client";
import type { Wallet } from "../server-wallets/wallet-table/types";
import { TransactionAnalyticsFilter } from "./filter";
import { TransactionsChartCard } from "./tx-chart/tx-chart";
import { TransactionsTable } from "./tx-table/tx-table";

export function TransactionsAnalyticsPageContent(props: {
searchParams: {
Expand Down Expand Up @@ -34,11 +34,10 @@ export function TransactionsAnalyticsPageContent(props: {
/>
</>
)}
<TransactionsTable
<UnifiedTransactionsTable
client={props.client}
project={props.project}
teamSlug={props.teamSlug}
wallets={props.wallets}
/>
</div>
</ResponsiveSearchParamsProvider>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@ import type { Project } from "@/api/project/projects";
import { type Step, StepsCard } from "@/components/blocks/StepsCard";
import CreateServerWallet from "../server-wallets/components/create-server-wallet.client";
import type { Wallet } from "../server-wallets/wallet-table/types";
import type { SolanaWallet } from "../solana-wallets/wallet-table/types";
import { SendTestSolanaTransaction } from "./send-test-solana-tx.client";
import { SendTestTransaction } from "./send-test-tx.client";

interface Props {
managementAccessToken: string | undefined;
project: Project;
wallets: Wallet[];
solanaWallets: SolanaWallet[];
hasTransactions: boolean;
teamSlug: string;
testTxWithWallet?: string | undefined;
testSolanaTxWithWallet?: string | undefined;
client: ThirdwebClient;
isManagedVault: boolean;
}
Expand Down Expand Up @@ -85,6 +89,19 @@ export const EngineChecklist: React.FC<Props> = (props) => {
);
}

if (props.testSolanaTxWithWallet) {
return (
<SendTestSolanaTransaction
isManagedVault={props.isManagedVault}
client={props.client}
project={props.project}
teamSlug={props.teamSlug}
walletId={props.testSolanaTxWithWallet}
wallets={props.solanaWallets}
/>
);
}

if (finalSteps.length === 0 || isComplete) {
return null;
}
Expand Down
Loading
Loading