diff --git a/apps/marginfi-v2-ui/package.json b/apps/marginfi-v2-ui/package.json
index 168fcac80..d5d20bc7a 100644
--- a/apps/marginfi-v2-ui/package.json
+++ b/apps/marginfi-v2-ui/package.json
@@ -94,9 +94,7 @@
"tweetnacl": "^1.0.3",
"uuid": "^9.0.0",
"vaul": "^0.9.0",
- "zustand": "^4.4.1",
- "sonner": "1.7.4",
- "next-themes": "0.4.4"
+ "zustand": "^4.4.1"
},
"devDependencies": {
"@mrgnlabs/eslint-config-custom": "workspace:*",
diff --git a/apps/marginfi-v2-ui/src/pages/_app.tsx b/apps/marginfi-v2-ui/src/pages/_app.tsx
index 0608834d0..0781512f4 100644
--- a/apps/marginfi-v2-ui/src/pages/_app.tsx
+++ b/apps/marginfi-v2-ui/src/pages/_app.tsx
@@ -159,6 +159,7 @@ export default function MrgnApp({ Component, pageProps, path }: AppProps & MrgnA
mrgnState={{ marginfiClient, selectedAccount, extendedBankInfos, nativeSolBalance }}
/>
+ {/* TODO: remove above toast container */}
{globalActionBoxProps.isOpen && }
diff --git a/packages/mrgn-toasts/README.md b/packages/mrgn-toasts/README.md
index d9c9b01ea..4be5e6fa4 100644
--- a/packages/mrgn-toasts/README.md
+++ b/packages/mrgn-toasts/README.md
@@ -1,4 +1,4 @@
# mrgn-toasts
-- Install: `yarn`
-- Run: `yarn dev`
+- Install: `pnpm install`
+- Run: `pnpm run dev`
diff --git a/packages/mrgn-toasts/package.json b/packages/mrgn-toasts/package.json
index d126250bd..2b7c5fa97 100644
--- a/packages/mrgn-toasts/package.json
+++ b/packages/mrgn-toasts/package.json
@@ -14,7 +14,6 @@
},
"dependencies": {
"sonner": "1.7.4",
- "next-themes": "0.4.4",
"@tabler/icons-react": "^3.3.0",
"react": "18.2.0",
"@mrgnlabs/mrgn-common": "workspace:*"
diff --git a/packages/mrgn-toasts/src/utils/toast-manager.tsx b/packages/mrgn-toasts/src/utils/toast-manager.tsx
index f62736ffe..76fda3a99 100644
--- a/packages/mrgn-toasts/src/utils/toast-manager.tsx
+++ b/packages/mrgn-toasts/src/utils/toast-manager.tsx
@@ -12,7 +12,6 @@ export interface MultiStepToastStep {
retry?: () => void;
}
-/** 🔹 Type for MultiStepToastController */
export interface MultiStepToastController {
start: () => void;
successAndNext: (explorerUrl?: string, signature?: string) => void;
@@ -139,5 +138,5 @@ class ToastManager {
}
}
-// ✅ Exporting singleton instance
+// Exporting singleton instance
export const toastManager = new ToastManager();
diff --git a/packages/mrgn-utils/src/actions/actions-v2.ts b/packages/mrgn-utils/src/actions/actions-v2.ts
index e4b2703a5..6e7681782 100644
--- a/packages/mrgn-utils/src/actions/actions-v2.ts
+++ b/packages/mrgn-utils/src/actions/actions-v2.ts
@@ -28,7 +28,7 @@ async function executeActionWrapper(
const txnSig = await action(failedTxns, (explorerUrl, signature) => {
toast.successAndNext(explorerUrl, signature);
});
- toast.success("", typeof txnSig === "string" ? txnSig : txnSig[txnSig.length - 1]); // TODO: clean this up
+ toast.success("", typeof txnSig === "string" ? txnSig : txnSig[txnSig.length - 1]); // TODO: clean this up, always return one signature
return txnSig;
} catch (error) {
if (!(error instanceof ProcessTransactionError || error instanceof SolanaJSONRPCError)) {
@@ -67,7 +67,8 @@ interface ExecuteActionProps {
callbacks: {
captureEvent: (event: string, properties?: Record) => void;
};
-}
+} // TODO: move to types file
+
export interface ExecuteDepositSwapActionPropsV2 extends ExecuteActionProps {
infoProps: {
@@ -75,12 +76,12 @@ export interface ExecuteDepositSwapActionPropsV2 extends ExecuteActionProps {
swapToken: string;
amount: number;
};
-}
+} // TODO: move to types file
export async function ExecuteDepositSwapActionV2(props: ExecuteDepositSwapActionPropsV2) {
const steps = getDepositSwapSteps(props.actionTxns);
- props.callbacks.captureEvent("user_deposit_swap_initiate", { uuid: props.attemptUuid, ...props.infoProps });
+ props.callbacks.captureEvent("user_deposit_swap_initiate", { uuid: props.attemptUuid, ...props.infoProps });
const action = async (txns: ActionTxns, onSuccessAndNext: (explorerUrl?: string, signature?: string) => void) => {
return await props.marginfiClient.processTransactions(
@@ -88,7 +89,7 @@ export async function ExecuteDepositSwapActionV2(props: ExecuteDepositSwapAction
{
...props.processOpts,
callback: (index, success, sig, stepsToAdvance) => {
- success && onSuccessAndNext(undefined, sig); // TODO: add stepsToAdvance & explorerUrl to toast handler
+ success && onSuccessAndNext(undefined, sig); // TODO: add stepsToAdvance & explorerUrl to toast handler. !! DOES NOT WORK with bundles, need to implement stepsToAdvance
},
},
props.txOpts
@@ -97,7 +98,7 @@ export async function ExecuteDepositSwapActionV2(props: ExecuteDepositSwapAction
await executeActionWrapper(action, steps, "Deposit", props.actionTxns);
- props.callbacks.captureEvent("user_deposit_swap", { uuid: props.attemptUuid, ...props.infoProps }); // TODO: Does this get executed if an error is thrown? Check
+ props.callbacks.captureEvent("user_deposit_swap", { uuid: props.attemptUuid, ...props.infoProps }); // TODO: Does this get executed if an error is thrown?
}
function getDepositSwapSteps(actionTxns: ActionTxns) {
@@ -106,4 +107,4 @@ function getDepositSwapSteps(actionTxns: ActionTxns) {
...actionTxns.transactions.map((tx) => ({ label: TransactionConfigMap[tx.type].label })),
];
return steps;
-}
+} // TODO: update this and move to utils file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9d9505632..86ee548e1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1397,9 +1397,6 @@ importers:
'@tabler/icons-react':
specifier: ^3.3.0
version: 3.30.0(react@18.2.0)
- next-themes:
- specifier: 0.4.4
- version: 0.4.4(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -34608,16 +34605,6 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- /next-themes@0.4.4(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==}
- peerDependencies:
- react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- dependencies:
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
-
/next-transpile-modules@10.0.1:
resolution: {integrity: sha512-4VX/LCMofxIYAVV58UmD+kr8jQflpLWvas/BQ4Co0qWLWzVh06FoZkECkrX5eEZT6oJFqie6+kfbTA3EZCVtdQ==}
dependencies: