Skip to content

Commit

Permalink
feat: add StackingDAO protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
pradel committed Mar 24, 2024
1 parent 0c4718f commit 21c27a2
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 4 deletions.
Binary file added public/protocols/stackingdao.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 18 additions & 1 deletion src/db/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import type {
ActionData,
ActionDataAddLiquidity,
ActionDataRemoveLiquidity,
ActionDataStackingDAODeposit,
ActionDataStackingDAOWithdraw,
ActionDataSwap,
} from "@/lib/actions";
import type { Protocol } from "@/lib/protocols";
Expand Down Expand Up @@ -55,10 +57,25 @@ export type SelectTransactionActionRemoveLiquidityTyped = SelectTransaction & {
action: "remove-liquidity";
data: ActionDataRemoveLiquidity;
};

/**
* StackingDAO
*/
export type SelectTransactionActionStackingDAODeposit = SelectTransaction & {
action: "stackingdao-deposit";
data: ActionDataStackingDAODeposit;
};
export type SelectTransactionActionStackingDAOWithdraw = SelectTransaction & {
action: "stackingdao-withdraw";
data: ActionDataStackingDAOWithdraw;
};

export type SelectTransactionTyped =
| SelectTransactionActionSwapTyped
| SelectTransactionActionAddLiquidityTyped
| SelectTransactionActionRemoveLiquidityTyped;
| SelectTransactionActionRemoveLiquidityTyped
| SelectTransactionActionStackingDAODeposit
| SelectTransactionActionStackingDAOWithdraw;

export const tokenTable = sqliteTable("token", {
/**
Expand Down
14 changes: 13 additions & 1 deletion src/db/transactions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import {
type SelectToken,
type SelectTransactionActionAddLiquidityTyped,
type SelectTransactionActionRemoveLiquidityTyped,
type SelectTransactionActionStackingDAODeposit,
type SelectTransactionActionStackingDAOWithdraw,
type SelectTransactionActionSwapTyped,
type SelectTransactionTyped,
tokenTable,
Expand All @@ -41,7 +43,9 @@ export type SelectTransactionActionRemoveLiquidity =
export type SelectTransactionAction =
| SelectTransactionActionSwap
| SelectTransactionActionAddLiquidity
| SelectTransactionActionRemoveLiquidity;
| SelectTransactionActionRemoveLiquidity
| SelectTransactionActionStackingDAODeposit
| SelectTransactionActionStackingDAOWithdraw;

export const getTransactions = async ({
protocol,
Expand Down Expand Up @@ -113,6 +117,14 @@ export const getTransactions = async ({
tokenX: tokenMap[transaction.data.tokenX],
tokenY: tokenMap[transaction.data.tokenY],
};
} else if (transaction.action === "stackingdao-deposit") {
return {
...transaction,
};
} else if (transaction.action === "stackingdao-withdraw") {
return {
...transaction,
};
}
return transaction;
});
Expand Down
38 changes: 36 additions & 2 deletions src/lib/actions.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
import { IconMinus, IconPlus } from "@tabler/icons-react";
import type { Protocol } from "./protocols";

export const actions = ["swap", "add-liquidity", "remove-liquidity"] as const;
export const actions = [
// common
"swap",
"add-liquidity",
"remove-liquidity",
// StackingDAO
"stackingdao-deposit",
"stackingdao-withdraw",
] as const;

export type Action = (typeof actions)[number];

Expand All @@ -25,10 +33,26 @@ export interface ActionDataRemoveLiquidity {
tokenY: string;
}

/**
* StackingDAO
*/

export interface ActionDataStackingDAODeposit {
amountSTX: string;
amountStSTX: string;
}

export interface ActionDataStackingDAOWithdraw {
amountSTX: string;
amountStSTX: string;
}

export type ActionData =
| ActionDataSwap
| ActionDataAddLiquidity
| ActionDataRemoveLiquidity;
| ActionDataRemoveLiquidity
| ActionDataStackingDAODeposit
| ActionDataStackingDAOWithdraw;

export const actionInfo: {
[key in Action]: { label: string; icon?: any };
Expand All @@ -44,6 +68,15 @@ export const actionInfo: {
label: "Liquidity",
icon: IconMinus,
},
/**
* StackingDAO
*/
"stackingdao-deposit": {
label: "Deposit",
},
"stackingdao-withdraw": {
label: "Withdraw",
},
} as const;

export const protocolsActions: {
Expand All @@ -52,6 +85,7 @@ export const protocolsActions: {
alex: ["swap"],
arkadiko: ["swap", "add-liquidity", "remove-liquidity"],
bitflow: ["swap"],
stackingdao: ["stackingdao-deposit", "stackingdao-withdraw"],
stackswap: ["swap"],
velar: ["swap"],
} as const;
7 changes: 7 additions & 0 deletions src/lib/protocols.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export const protocols = [
"stackswap",
"velar",
"bitflow",
"stackingdao",
] as const;

export type Protocol = (typeof protocols)[number];
Expand Down Expand Up @@ -32,6 +33,12 @@ export const protocolsInfo = {
website: "https://www.bitflow.finance/",
x: "https://twitter.com/Bitflow_Finance",
},
stackingdao: {
name: "StackingDAO",
description: "Liquid stacking on Stacks.",
website: "https://www.stackingdao.com/",
x: "https://twitter.com/StackingDao",
},
stackswap: {
name: "StackSwap",
description:
Expand Down

0 comments on commit 21c27a2

Please sign in to comment.