starkfi 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MCP.md +70 -0
- package/README.md +120 -58
- package/dist/commands/auth/login.js +2 -2
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/verify.d.ts.map +1 -1
- package/dist/commands/auth/verify.js +2 -2
- package/dist/commands/auth/verify.js.map +1 -1
- package/dist/commands/batch/batch.d.ts +3 -0
- package/dist/commands/batch/batch.d.ts.map +1 -0
- package/dist/commands/batch/batch.js +143 -0
- package/dist/commands/batch/batch.js.map +1 -0
- package/dist/commands/chain/tx-status.js +2 -2
- package/dist/commands/chain/tx-status.js.map +1 -1
- package/dist/commands/config/config.d.ts.map +1 -1
- package/dist/commands/config/config.js +14 -31
- package/dist/commands/config/config.js.map +1 -1
- package/dist/commands/lending/lending.d.ts +1 -0
- package/dist/commands/lending/lending.d.ts.map +1 -1
- package/dist/commands/lending/lending.js +187 -48
- package/dist/commands/lending/lending.js.map +1 -1
- package/dist/commands/portfolio/portfolio.d.ts +3 -0
- package/dist/commands/portfolio/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio/portfolio.js +76 -0
- package/dist/commands/portfolio/portfolio.js.map +1 -0
- package/dist/commands/staking/staking.d.ts +1 -1
- package/dist/commands/staking/staking.d.ts.map +1 -1
- package/dist/commands/staking/staking.js +142 -61
- package/dist/commands/staking/staking.js.map +1 -1
- package/dist/commands/trade/multi-swap.d.ts +3 -0
- package/dist/commands/trade/multi-swap.d.ts.map +1 -0
- package/dist/commands/trade/multi-swap.js +140 -0
- package/dist/commands/trade/multi-swap.js.map +1 -0
- package/dist/commands/trade/status.js +2 -2
- package/dist/commands/trade/status.js.map +1 -1
- package/dist/commands/trade/swap.d.ts.map +1 -1
- package/dist/commands/trade/swap.js +45 -10
- package/dist/commands/trade/swap.js.map +1 -1
- package/dist/commands/wallet/balance.d.ts.map +1 -1
- package/dist/commands/wallet/balance.js +19 -2
- package/dist/commands/wallet/balance.js.map +1 -1
- package/dist/commands/wallet/deploy.d.ts.map +1 -1
- package/dist/commands/wallet/deploy.js +2 -1
- package/dist/commands/wallet/deploy.js.map +1 -1
- package/dist/commands/wallet/send.d.ts.map +1 -1
- package/dist/commands/wallet/send.js +45 -8
- package/dist/commands/wallet/send.js.map +1 -1
- package/dist/index.js +22 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/banner.d.ts +6 -0
- package/dist/lib/banner.d.ts.map +1 -0
- package/dist/lib/banner.js +78 -0
- package/dist/lib/banner.js.map +1 -0
- package/dist/lib/config.d.ts +0 -11
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +0 -20
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +2 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +2 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/format.d.ts +43 -2
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +51 -5
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/retry.d.ts +15 -0
- package/dist/lib/retry.d.ts.map +1 -0
- package/dist/lib/retry.js +29 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/validation.d.ts +0 -12
- package/dist/lib/validation.d.ts.map +1 -1
- package/dist/lib/validation.js +1 -23
- package/dist/lib/validation.js.map +1 -1
- package/dist/mcp/handlers/batch.d.ts +13 -0
- package/dist/mcp/handlers/batch.d.ts.map +1 -0
- package/dist/mcp/handlers/batch.js +33 -0
- package/dist/mcp/handlers/batch.js.map +1 -0
- package/dist/mcp/handlers/config.d.ts +1 -1
- package/dist/mcp/handlers/config.d.ts.map +1 -1
- package/dist/mcp/handlers/config.js +11 -12
- package/dist/mcp/handlers/config.js.map +1 -1
- package/dist/mcp/handlers/index.d.ts +3 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -1
- package/dist/mcp/handlers/index.js +3 -0
- package/dist/mcp/handlers/index.js.map +1 -1
- package/dist/mcp/handlers/lending.d.ts +12 -1
- package/dist/mcp/handlers/lending.d.ts.map +1 -1
- package/dist/mcp/handlers/lending.js +67 -23
- package/dist/mcp/handlers/lending.js.map +1 -1
- package/dist/mcp/handlers/multi-swap.d.ts +27 -0
- package/dist/mcp/handlers/multi-swap.d.ts.map +1 -0
- package/dist/mcp/handlers/multi-swap.js +73 -0
- package/dist/mcp/handlers/multi-swap.js.map +1 -0
- package/dist/mcp/handlers/portfolio.d.ts +7 -0
- package/dist/mcp/handlers/portfolio.d.ts.map +1 -0
- package/dist/mcp/handlers/portfolio.js +11 -0
- package/dist/mcp/handlers/portfolio.js.map +1 -0
- package/dist/mcp/handlers/staking.d.ts +13 -1
- package/dist/mcp/handlers/staking.d.ts.map +1 -1
- package/dist/mcp/handlers/staking.js +18 -5
- package/dist/mcp/handlers/staking.js.map +1 -1
- package/dist/mcp/handlers/trade.d.ts +1 -0
- package/dist/mcp/handlers/trade.d.ts.map +1 -1
- package/dist/mcp/handlers/trade.js +23 -9
- package/dist/mcp/handlers/trade.js.map +1 -1
- package/dist/mcp/handlers/wallet.d.ts +1 -0
- package/dist/mcp/handlers/wallet.d.ts.map +1 -1
- package/dist/mcp/handlers/wallet.js +16 -1
- package/dist/mcp/handlers/wallet.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +102 -33
- package/dist/mcp/tools.js.map +1 -1
- package/dist/services/api/client.d.ts +0 -12
- package/dist/services/api/client.d.ts.map +1 -1
- package/dist/services/api/client.js +3 -8
- package/dist/services/api/client.js.map +1 -1
- package/dist/services/auth/session.d.ts +1 -7
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +20 -0
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/batch/batch.d.ts +36 -0
- package/dist/services/batch/batch.d.ts.map +1 -0
- package/dist/services/batch/batch.js +111 -0
- package/dist/services/batch/batch.js.map +1 -0
- package/dist/services/config/config.d.ts +4 -0
- package/dist/services/config/config.d.ts.map +1 -1
- package/dist/services/config/config.js +31 -1
- package/dist/services/config/config.js.map +1 -1
- package/dist/services/fibrous/config.d.ts +4 -0
- package/dist/services/fibrous/config.d.ts.map +1 -0
- package/dist/services/fibrous/config.js +4 -0
- package/dist/services/fibrous/config.js.map +1 -0
- package/dist/services/fibrous/health.js +1 -1
- package/dist/services/fibrous/health.js.map +1 -1
- package/dist/services/fibrous/route.d.ts +19 -6
- package/dist/services/fibrous/route.d.ts.map +1 -1
- package/dist/services/fibrous/route.js +64 -3
- package/dist/services/fibrous/route.js.map +1 -1
- package/dist/services/portfolio/portfolio.d.ts +35 -0
- package/dist/services/portfolio/portfolio.d.ts.map +1 -0
- package/dist/services/portfolio/portfolio.js +106 -0
- package/dist/services/portfolio/portfolio.js.map +1 -0
- package/dist/services/simulate/simulate.d.ts +18 -0
- package/dist/services/simulate/simulate.d.ts.map +1 -0
- package/dist/services/simulate/simulate.js +61 -0
- package/dist/services/simulate/simulate.js.map +1 -0
- package/dist/services/staking/staking.d.ts +5 -13
- package/dist/services/staking/staking.d.ts.map +1 -1
- package/dist/services/staking/staking.js +44 -52
- package/dist/services/staking/staking.js.map +1 -1
- package/dist/services/starkzap/client.d.ts.map +1 -1
- package/dist/services/starkzap/client.js +38 -18
- package/dist/services/starkzap/client.js.map +1 -1
- package/dist/services/starkzap/config.d.ts +6 -0
- package/dist/services/starkzap/config.d.ts.map +1 -0
- package/dist/services/starkzap/config.js +13 -0
- package/dist/services/starkzap/config.js.map +1 -0
- package/dist/services/tokens/balances.d.ts.map +1 -1
- package/dist/services/tokens/balances.js +26 -14
- package/dist/services/tokens/balances.js.map +1 -1
- package/dist/services/tokens/tokens.d.ts +2 -3
- package/dist/services/tokens/tokens.d.ts.map +1 -1
- package/dist/services/tokens/tokens.js +3 -8
- package/dist/services/tokens/tokens.js.map +1 -1
- package/dist/services/vesu/api.d.ts +28 -0
- package/dist/services/vesu/api.d.ts.map +1 -0
- package/dist/services/vesu/api.js +97 -0
- package/dist/services/vesu/api.js.map +1 -0
- package/dist/services/vesu/config.d.ts +9 -0
- package/dist/services/vesu/config.d.ts.map +1 -0
- package/dist/services/vesu/config.js +32 -0
- package/dist/services/vesu/config.js.map +1 -0
- package/dist/services/vesu/index.d.ts +2 -0
- package/dist/services/vesu/index.d.ts.map +1 -1
- package/dist/services/vesu/index.js +2 -0
- package/dist/services/vesu/index.js.map +1 -1
- package/dist/services/vesu/lending.d.ts +8 -1
- package/dist/services/vesu/lending.d.ts.map +1 -1
- package/dist/services/vesu/lending.js +171 -52
- package/dist/services/vesu/lending.js.map +1 -1
- package/dist/services/vesu/pools.d.ts +5 -11
- package/dist/services/vesu/pools.d.ts.map +1 -1
- package/dist/services/vesu/pools.js +11 -31
- package/dist/services/vesu/pools.js.map +1 -1
- package/package.json +88 -82
- package/skills/README.md +63 -0
- package/skills/authenticate-wallet/SKILL.md +119 -0
- package/skills/balance/SKILL.md +80 -0
- package/skills/batch/SKILL.md +118 -0
- package/skills/config/SKILL.md +144 -0
- package/skills/lending/SKILL.md +209 -0
- package/skills/multi-swap/SKILL.md +95 -0
- package/skills/portfolio/SKILL.md +82 -0
- package/skills/send/SKILL.md +82 -0
- package/skills/staking/SKILL.md +188 -0
- package/skills/trade/SKILL.md +92 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const VESU_API_BASE = "https://api.vesu.xyz";
|
|
2
|
+
export const POOL_FACTORY_ADDRESS = "0x03760f903a37948f97302736f89ce30290e45f441559325026842b7a6fb388c0";
|
|
3
|
+
// Pool addresses: https://docs.vesu.xyz/developers/contract-addresses
|
|
4
|
+
export const V2_POOLS = [
|
|
5
|
+
{
|
|
6
|
+
name: "Prime",
|
|
7
|
+
address: "0x0451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5",
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
name: "Re7 USDC Core",
|
|
11
|
+
address: "0x03976cac265a12609934089004df458ea29c776d77da423c96dc761d09d24124",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: "Re7 USDC Prime",
|
|
15
|
+
address: "0x02eef0c13b10b487ea5916b54c0a7f98ec43fb3048f60fdeedaf5b08f6f88aaf",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "Re7 USDC Frontier",
|
|
19
|
+
address: "0x05c03e7e0ccfe79c634782388eb1e6ed4e8e2a013ab0fcc055140805e46261bd",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "Re7 xBTC",
|
|
23
|
+
address: "0x03a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "Re7 USDC Stable Core",
|
|
27
|
+
address: "0x073702fce24aba36da1eac539bd4bae62d4d6a76747b7cdd3e016da754d7a135",
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
// AmountDenomination enum values for calldata encoding.
|
|
31
|
+
export const DENOMINATION_ASSETS = 1;
|
|
32
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/services/vesu/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAChC,oEAAoE,CAAC;AAOtE,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAyB;IAC7C;QACC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,oEAAoE;KAC7E;IACD;QACC,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,oEAAoE;KAC7E;CACQ,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/vesu/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
+
import { type Token } from "starkzap";
|
|
1
2
|
import type { StarkZapWallet } from "../starkzap/client.js";
|
|
2
3
|
export interface LendingPosition {
|
|
3
4
|
collateralAsset: string;
|
|
4
5
|
debtAsset: string;
|
|
5
6
|
collateralAmount: string;
|
|
6
7
|
debtAmount: string;
|
|
8
|
+
healthFactor?: number;
|
|
9
|
+
riskLevel?: "SAFE" | "WARNING" | "DANGER" | "UNKNOWN";
|
|
7
10
|
}
|
|
8
11
|
export interface TxResult {
|
|
9
12
|
hash: string;
|
|
10
13
|
explorerUrl: string;
|
|
11
14
|
}
|
|
15
|
+
export declare function splitU256(value: bigint): [string, string];
|
|
12
16
|
export declare function supply(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string, amount: string): Promise<TxResult>;
|
|
13
17
|
export declare function withdraw(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string, amount: string): Promise<TxResult>;
|
|
14
|
-
export declare function borrow(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, collateralAmount: string, debtTokenSymbol: string, debtAmount: string): Promise<TxResult>;
|
|
18
|
+
export declare function borrow(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, collateralAmount: string, debtTokenSymbol: string, debtAmount: string, useSupplied?: boolean): Promise<TxResult>;
|
|
15
19
|
export declare function repay(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string, repayAmount: string): Promise<TxResult>;
|
|
20
|
+
export declare function closePosition(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string): Promise<TxResult>;
|
|
16
21
|
export declare function getPosition(wallet: StarkZapWallet, poolAddress: string, collateralTokenSymbol: string, debtTokenSymbol: string): Promise<LendingPosition | null>;
|
|
22
|
+
export declare function getVTokenAddress(wallet: StarkZapWallet, poolAddress: string, token: Token): Promise<string>;
|
|
23
|
+
export declare function getSuppliedBalance(wallet: StarkZapWallet, poolAddress: string, tokenSymbol: string): Promise<string | null>;
|
|
17
24
|
//# sourceMappingURL=lending.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzD;AAYD,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAkBnB;AAED,wBAAsB,MAAM,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,WAAW,UAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CA6DnB;AAED,wBAAsB,KAAK,CAC1B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CA2BnB;AAED,wBAAsB,aAAa,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,QAAQ,CAAC,CAoCnB;AAED,wBAAsB,WAAW,CAChC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyEjC;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACV,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BxB"}
|
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
import { Amount, fromAddress } from "starkzap";
|
|
2
2
|
import { resolveToken } from "../tokens/tokens.js";
|
|
3
3
|
import { ErrorCode, StarkfiError } from "../../lib/errors.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { POOL_FACTORY_ADDRESS, DENOMINATION_ASSETS } from "./config.js";
|
|
5
|
+
import { getTokenUsdPrice } from "../fibrous/route.js";
|
|
6
|
+
import { fetchPool } from "./api.js";
|
|
7
|
+
export function splitU256(value) {
|
|
8
|
+
const low = value & ((1n << 128n) - 1n);
|
|
9
|
+
const high = value >> 128n;
|
|
10
|
+
return [`0x${low.toString(16)}`, `0x${high.toString(16)}`];
|
|
11
|
+
}
|
|
9
12
|
function encodeVesuAmount(denomination, value) {
|
|
10
13
|
const isNegative = value < 0n;
|
|
11
14
|
const mag = isNegative ? -value : value;
|
|
12
|
-
|
|
13
|
-
const high = mag >> 128n;
|
|
14
|
-
return [
|
|
15
|
-
`0x${denomination.toString(16)}`,
|
|
16
|
-
`0x${low.toString(16)}`,
|
|
17
|
-
`0x${high.toString(16)}`,
|
|
18
|
-
isNegative ? "0x1" : "0x0",
|
|
19
|
-
];
|
|
15
|
+
return [`0x${denomination.toString(16)}`, ...splitU256(mag), isNegative ? "0x1" : "0x0"];
|
|
20
16
|
}
|
|
21
17
|
function encodeZeroAmount() {
|
|
22
18
|
return encodeVesuAmount(DENOMINATION_ASSETS, 0n);
|
|
23
19
|
}
|
|
24
|
-
// Supply via vToken ERC-4626: approve + vToken.deposit(assets, receiver)
|
|
25
20
|
export async function supply(wallet, poolAddress, tokenSymbol, amount) {
|
|
26
21
|
const token = await resolveToken(tokenSymbol);
|
|
27
22
|
const parsedAmount = Amount.parse(amount, token);
|
|
28
|
-
const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
|
|
29
23
|
const userAddress = wallet.address.toString();
|
|
24
|
+
// Proactive Dust Limit Check
|
|
25
|
+
const usdPrice = await getTokenUsdPrice(token);
|
|
26
|
+
if (usdPrice > 0) {
|
|
27
|
+
const usdValue = parseFloat(amount) * usdPrice;
|
|
28
|
+
if (usdValue < 10.0) {
|
|
29
|
+
throw new StarkfiError(ErrorCode.LENDING_FAILED, `Amount is too small (dust limit). Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${usdValue.toFixed(2)}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
|
|
30
33
|
const tx = await wallet
|
|
31
34
|
.tx()
|
|
32
35
|
.approve(token, fromAddress(vTokenAddress), parsedAmount)
|
|
33
36
|
.add({
|
|
34
37
|
contractAddress: fromAddress(vTokenAddress),
|
|
35
38
|
entrypoint: "deposit",
|
|
36
|
-
calldata: [parsedAmount.toBase()
|
|
39
|
+
calldata: [...splitU256(parsedAmount.toBase()), userAddress],
|
|
37
40
|
})
|
|
38
41
|
.send();
|
|
39
42
|
await tx.wait();
|
|
40
43
|
return { hash: tx.hash, explorerUrl: tx.explorerUrl };
|
|
41
44
|
}
|
|
42
|
-
// Withdraw via vToken ERC-4626: vToken.withdraw(assets, receiver, owner)
|
|
43
45
|
export async function withdraw(wallet, poolAddress, tokenSymbol, amount) {
|
|
44
46
|
const token = await resolveToken(tokenSymbol);
|
|
45
47
|
const parsedAmount = Amount.parse(amount, token);
|
|
@@ -50,19 +52,33 @@ export async function withdraw(wallet, poolAddress, tokenSymbol, amount) {
|
|
|
50
52
|
.add({
|
|
51
53
|
contractAddress: fromAddress(vTokenAddress),
|
|
52
54
|
entrypoint: "withdraw",
|
|
53
|
-
calldata: [parsedAmount.toBase()
|
|
55
|
+
calldata: [...splitU256(parsedAmount.toBase()), userAddress, userAddress],
|
|
54
56
|
})
|
|
55
57
|
.send();
|
|
56
58
|
await tx.wait();
|
|
57
59
|
return { hash: tx.hash, explorerUrl: tx.explorerUrl };
|
|
58
60
|
}
|
|
59
|
-
|
|
60
|
-
export async function borrow(wallet, poolAddress, collateralTokenSymbol, collateralAmount, debtTokenSymbol, debtAmount) {
|
|
61
|
+
export async function borrow(wallet, poolAddress, collateralTokenSymbol, collateralAmount, debtTokenSymbol, debtAmount, useSupplied = false) {
|
|
61
62
|
const collateralToken = await resolveToken(collateralTokenSymbol);
|
|
62
63
|
const debtToken = await resolveToken(debtTokenSymbol);
|
|
63
64
|
const parsedCollateral = Amount.parse(collateralAmount, collateralToken);
|
|
64
65
|
const parsedDebt = Amount.parse(debtAmount, debtToken);
|
|
65
66
|
const userAddress = wallet.address.toString();
|
|
67
|
+
// Proactive Dust Limit Check
|
|
68
|
+
const collateralUsdPrice = await getTokenUsdPrice(collateralToken);
|
|
69
|
+
if (collateralUsdPrice > 0) {
|
|
70
|
+
const collateralUsdValue = parseFloat(collateralAmount) * collateralUsdPrice;
|
|
71
|
+
if (collateralUsdValue < 10.0) {
|
|
72
|
+
throw new StarkfiError(ErrorCode.LENDING_FAILED, `dusty-collateral-balance: Collateral amount is too small. Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${collateralUsdValue.toFixed(2)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const debtUsdPrice = await getTokenUsdPrice(debtToken);
|
|
76
|
+
if (debtUsdPrice > 0) {
|
|
77
|
+
const debtUsdValue = parseFloat(debtAmount) * debtUsdPrice;
|
|
78
|
+
if (debtUsdValue < 10.0) {
|
|
79
|
+
throw new StarkfiError(ErrorCode.LENDING_FAILED, `dusty-debt-balance: Borrow amount is too small. Minimum equivalent of ~$10 is required by Vesu. Current value: ~$${debtUsdValue.toFixed(2)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
66
82
|
const calldata = [
|
|
67
83
|
collateralToken.address.toString(),
|
|
68
84
|
debtToken.address.toString(),
|
|
@@ -70,19 +86,26 @@ export async function borrow(wallet, poolAddress, collateralTokenSymbol, collate
|
|
|
70
86
|
...encodeVesuAmount(DENOMINATION_ASSETS, parsedCollateral.toBase()),
|
|
71
87
|
...encodeVesuAmount(DENOMINATION_ASSETS, parsedDebt.toBase()),
|
|
72
88
|
];
|
|
73
|
-
|
|
74
|
-
|
|
89
|
+
let txBuilder = wallet.tx();
|
|
90
|
+
if (useSupplied) {
|
|
91
|
+
const vTokenAddress = await getVTokenAddress(wallet, poolAddress, collateralToken);
|
|
92
|
+
txBuilder = txBuilder.add({
|
|
93
|
+
contractAddress: fromAddress(vTokenAddress),
|
|
94
|
+
entrypoint: "withdraw",
|
|
95
|
+
calldata: [parsedCollateral.toBase().toString(), userAddress, userAddress],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
const tx = await txBuilder
|
|
75
99
|
.approve(collateralToken, fromAddress(poolAddress), parsedCollateral)
|
|
76
100
|
.add({
|
|
77
101
|
contractAddress: fromAddress(poolAddress),
|
|
78
|
-
entrypoint: "
|
|
102
|
+
entrypoint: "modify_position",
|
|
79
103
|
calldata,
|
|
80
104
|
})
|
|
81
105
|
.send();
|
|
82
106
|
await tx.wait();
|
|
83
107
|
return { hash: tx.hash, explorerUrl: tx.explorerUrl };
|
|
84
108
|
}
|
|
85
|
-
// Repay via pool.manage_position: approve debt token + zero collateral & negative debt.
|
|
86
109
|
export async function repay(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol, repayAmount) {
|
|
87
110
|
const collateralToken = await resolveToken(collateralTokenSymbol);
|
|
88
111
|
const debtToken = await resolveToken(debtTokenSymbol);
|
|
@@ -100,48 +123,115 @@ export async function repay(wallet, poolAddress, collateralTokenSymbol, debtToke
|
|
|
100
123
|
.approve(debtToken, fromAddress(poolAddress), parsedRepay)
|
|
101
124
|
.add({
|
|
102
125
|
contractAddress: fromAddress(poolAddress),
|
|
103
|
-
entrypoint: "
|
|
126
|
+
entrypoint: "modify_position",
|
|
127
|
+
calldata,
|
|
128
|
+
})
|
|
129
|
+
.send();
|
|
130
|
+
await tx.wait();
|
|
131
|
+
return { hash: tx.hash, explorerUrl: tx.explorerUrl };
|
|
132
|
+
}
|
|
133
|
+
export async function closePosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol) {
|
|
134
|
+
const position = await getPosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol);
|
|
135
|
+
if (!position) {
|
|
136
|
+
throw new StarkfiError(ErrorCode.LENDING_FAILED, "No active position found to close.");
|
|
137
|
+
}
|
|
138
|
+
const collateralToken = await resolveToken(collateralTokenSymbol);
|
|
139
|
+
const debtToken = await resolveToken(debtTokenSymbol);
|
|
140
|
+
const parsedCollateral = Amount.parse(position.collateralAmount, collateralToken);
|
|
141
|
+
const parsedDebt = Amount.parse(position.debtAmount, debtToken);
|
|
142
|
+
const userAddress = wallet.address.toString();
|
|
143
|
+
const calldata = [
|
|
144
|
+
collateralToken.address.toString(),
|
|
145
|
+
debtToken.address.toString(),
|
|
146
|
+
userAddress,
|
|
147
|
+
...encodeVesuAmount(DENOMINATION_ASSETS, -parsedCollateral.toBase()),
|
|
148
|
+
...encodeVesuAmount(DENOMINATION_ASSETS, -parsedDebt.toBase()),
|
|
149
|
+
];
|
|
150
|
+
const tx = await wallet
|
|
151
|
+
.tx()
|
|
152
|
+
// We only need to approve the debt token for repayment, withdrawing collateral doesn't need allowance
|
|
153
|
+
.approve(debtToken, fromAddress(poolAddress), parsedDebt)
|
|
154
|
+
.add({
|
|
155
|
+
contractAddress: fromAddress(poolAddress),
|
|
156
|
+
entrypoint: "modify_position",
|
|
104
157
|
calldata,
|
|
105
158
|
})
|
|
106
159
|
.send();
|
|
107
160
|
await tx.wait();
|
|
108
161
|
return { hash: tx.hash, explorerUrl: tx.explorerUrl };
|
|
109
162
|
}
|
|
110
|
-
// Query pool.position(collateral, debt, user) → extract last 4 felts as u256 pair.
|
|
111
163
|
export async function getPosition(wallet, poolAddress, collateralTokenSymbol, debtTokenSymbol) {
|
|
112
164
|
const collateralToken = await resolveToken(collateralTokenSymbol);
|
|
113
165
|
const debtToken = await resolveToken(debtTokenSymbol);
|
|
114
166
|
const userAddress = wallet.address.toString();
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
167
|
+
try {
|
|
168
|
+
const result = await wallet.callContract({
|
|
169
|
+
contractAddress: poolAddress,
|
|
170
|
+
entrypoint: "position",
|
|
171
|
+
calldata: [
|
|
172
|
+
collateralToken.address.toString(),
|
|
173
|
+
debtToken.address.toString(),
|
|
174
|
+
userAddress,
|
|
175
|
+
],
|
|
176
|
+
});
|
|
177
|
+
if (result.length < 8)
|
|
178
|
+
return null;
|
|
179
|
+
const collateralRaw = BigInt(result[4]) + (BigInt(result[5]) << 128n);
|
|
180
|
+
const debtRaw = BigInt(result[6]) + (BigInt(result[7]) << 128n);
|
|
181
|
+
if (collateralRaw === 0n && debtRaw === 0n)
|
|
182
|
+
return null;
|
|
183
|
+
const collFormatted = Amount.fromRaw(collateralRaw, collateralToken).toFormatted(true);
|
|
184
|
+
const debtFormatted = Amount.fromRaw(debtRaw, debtToken).toFormatted(true);
|
|
185
|
+
// Calculate Health Factor
|
|
186
|
+
let healthFactor;
|
|
187
|
+
let riskLevel = "UNKNOWN";
|
|
188
|
+
try {
|
|
189
|
+
const poolData = await fetchPool(poolAddress);
|
|
190
|
+
const pair = poolData.pairs.find((p) => p.collateralAddress === collateralToken.address.toString() &&
|
|
191
|
+
p.debtAddress === debtToken.address.toString());
|
|
192
|
+
if (pair) {
|
|
193
|
+
const collUsdPrice = await getTokenUsdPrice(collateralToken);
|
|
194
|
+
const debtUsdPrice = await getTokenUsdPrice(debtToken);
|
|
195
|
+
if (collUsdPrice > 0 && debtUsdPrice > 0) {
|
|
196
|
+
const collUsdValue = parseFloat(collFormatted) * collUsdPrice;
|
|
197
|
+
const debtUsdValue = parseFloat(debtFormatted) * debtUsdPrice;
|
|
198
|
+
const maxBorrowUsd = collUsdValue * pair.maxLTV;
|
|
199
|
+
if (debtUsdValue > 0) {
|
|
200
|
+
healthFactor = maxBorrowUsd / debtUsdValue;
|
|
201
|
+
if (healthFactor > 1.5)
|
|
202
|
+
riskLevel = "SAFE";
|
|
203
|
+
else if (healthFactor > 1.1)
|
|
204
|
+
riskLevel = "WARNING";
|
|
205
|
+
else
|
|
206
|
+
riskLevel = "DANGER";
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
healthFactor = Infinity; // No debt = infinitely safe
|
|
210
|
+
riskLevel = "SAFE";
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Ignore if API or pricing fails, return basic position
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
collateralAsset: collateralTokenSymbol.toUpperCase(),
|
|
220
|
+
debtAsset: debtTokenSymbol.toUpperCase(),
|
|
221
|
+
collateralAmount: collFormatted,
|
|
222
|
+
debtAmount: debtFormatted,
|
|
223
|
+
healthFactor,
|
|
224
|
+
riskLevel,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
130
228
|
return null;
|
|
131
|
-
|
|
132
|
-
const debtFormatted = Amount.fromRaw(debtRaw, debtToken).toFormatted(true);
|
|
133
|
-
return {
|
|
134
|
-
collateralAsset: collateralTokenSymbol.toUpperCase(),
|
|
135
|
-
debtAsset: debtTokenSymbol.toUpperCase(),
|
|
136
|
-
collateralAmount: collFormatted,
|
|
137
|
-
debtAmount: debtFormatted,
|
|
138
|
-
};
|
|
229
|
+
}
|
|
139
230
|
}
|
|
140
|
-
|
|
141
|
-
async function getVTokenAddress(wallet, poolAddress, token) {
|
|
231
|
+
export async function getVTokenAddress(wallet, poolAddress, token) {
|
|
142
232
|
const result = await wallet.callContract({
|
|
143
233
|
contractAddress: POOL_FACTORY_ADDRESS,
|
|
144
|
-
entrypoint: "
|
|
234
|
+
entrypoint: "v_token_for_asset",
|
|
145
235
|
calldata: [poolAddress, token.address.toString()],
|
|
146
236
|
});
|
|
147
237
|
if (!result || result.length === 0 || result[0] === "0x0") {
|
|
@@ -150,4 +240,33 @@ async function getVTokenAddress(wallet, poolAddress, token) {
|
|
|
150
240
|
}
|
|
151
241
|
return result[0];
|
|
152
242
|
}
|
|
243
|
+
export async function getSuppliedBalance(wallet, poolAddress, tokenSymbol) {
|
|
244
|
+
const token = await resolveToken(tokenSymbol);
|
|
245
|
+
const userAddress = wallet.address.toString();
|
|
246
|
+
try {
|
|
247
|
+
const vTokenAddress = await getVTokenAddress(wallet, poolAddress, token);
|
|
248
|
+
const balResult = await wallet.callContract({
|
|
249
|
+
contractAddress: vTokenAddress,
|
|
250
|
+
entrypoint: "balance_of",
|
|
251
|
+
calldata: [userAddress],
|
|
252
|
+
});
|
|
253
|
+
if (!balResult || balResult.length === 0)
|
|
254
|
+
return null;
|
|
255
|
+
const sharesRaw = BigInt(balResult[0]) + (BigInt(balResult[1] || "0x0") << 128n);
|
|
256
|
+
if (sharesRaw === 0n)
|
|
257
|
+
return "0";
|
|
258
|
+
const convertResult = await wallet.callContract({
|
|
259
|
+
contractAddress: vTokenAddress,
|
|
260
|
+
entrypoint: "convert_to_assets",
|
|
261
|
+
calldata: [...splitU256(sharesRaw)],
|
|
262
|
+
});
|
|
263
|
+
if (!convertResult || convertResult.length === 0)
|
|
264
|
+
return null;
|
|
265
|
+
const assetsRaw = BigInt(convertResult[0]) + (BigInt(convertResult[1] || "0x0") << 128n);
|
|
266
|
+
return Amount.fromRaw(assetsRaw, token).toFormatted(true);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
153
272
|
//# sourceMappingURL=lending.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/services/vesu/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgBrC,MAAM,UAAU,SAAS,CAAC,KAAa;IACtC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAC3B,OAAO,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB,EAAE,KAAa;IAC5D,MAAM,UAAU,GAAG,KAAK,GAAG,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACxC,OAAO,CAAC,KAAK,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,gBAAgB;IACxB,OAAO,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,MAAsB,EACtB,WAAmB,EACnB,WAAmB,EACnB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;QAC/C,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,sGAAsG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC3H,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAEzE,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;SACxD,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC;QAC3C,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC;KAC5D,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,MAAsB,EACtB,WAAmB,EACnB,WAAmB,EACnB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC;QAC3C,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC;KACzE,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,gBAAwB,EACxB,eAAuB,EACvB,UAAkB,EAClB,WAAW,GAAG,KAAK;IAEnB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACnE,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,kBAAkB,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;QAC7E,IAAI,kBAAkB,GAAG,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,8HAA8H,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC7J,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;QAC3D,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,oHAAoH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC7I,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG;QAChB,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,WAAW;QACX,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;KAC7D,CAAC;IAEF,IAAI,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;IAE5B,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACnF,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;YACzB,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC;YAC3C,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC;SAC1E,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,SAAS;SACxB,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;SACpE,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ;KACR,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAC1B,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,eAAuB,EACvB,WAAmB;IAEnB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG;QAChB,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,WAAW;QACX,GAAG,gBAAgB,EAAE;QACrB,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;KAC/D,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;SACJ,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;SACzD,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ;KACR,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,eAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAEhG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG;QAChB,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC5B,WAAW;QACX,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACpE,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC9D,CAAC;IAEF,MAAM,EAAE,GAAG,MAAM,MAAM;SACrB,EAAE,EAAE;QACL,sGAAsG;SACrG,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;SACxD,GAAG,CAAC;QACJ,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ;KACR,CAAC;SACD,IAAI,EAAE,CAAC;IAET,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,MAAsB,EACtB,WAAmB,EACnB,qBAA6B,EAC7B,eAAuB;IAEvB,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACxC,eAAe,EAAE,WAAW;YAC5B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE;gBACT,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC5B,WAAW;aACX;SACD,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC;QAElE,IAAI,aAAa,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAExD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3E,0BAA0B;QAC1B,IAAI,YAAgC,CAAC;QACrC,IAAI,SAAS,GAAiC,SAAS,CAAC;QAExD,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,iBAAiB,KAAK,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC1D,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC/C,CAAC;YAEF,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,CAAC;gBAC7D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAEvD,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;oBAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;oBAC9D,MAAM,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;oBAEhD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wBACtB,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;wBAC3C,IAAI,YAAY,GAAG,GAAG;4BAAE,SAAS,GAAG,MAAM,CAAC;6BACtC,IAAI,YAAY,GAAG,GAAG;4BAAE,SAAS,GAAG,SAAS,CAAC;;4BAC9C,SAAS,GAAG,QAAQ,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACP,YAAY,GAAG,QAAQ,CAAC,CAAC,4BAA4B;wBACrD,SAAS,GAAG,MAAM,CAAC;oBACpB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,wDAAwD;QACzD,CAAC;QAED,OAAO;YACN,eAAe,EAAE,qBAAqB,CAAC,WAAW,EAAE;YACpD,SAAS,EAAE,eAAe,CAAC,WAAW,EAAE;YACxC,gBAAgB,EAAE,aAAa;YAC/B,UAAU,EAAE,aAAa;YACzB,YAAY;YACZ,SAAS;SACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,MAAsB,EACtB,WAAmB,EACnB,KAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACxC,eAAe,EAAE,oBAAoB;QACrC,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KACjD,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,YAAY,CACrB,SAAS,CAAC,cAAc,EACxB,uBAAuB,KAAK,CAAC,MAAM,YAAY,WAAW,IAAI;YAC7D,+CAA+C,CAChD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAAsB,EACtB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,IAAI,CAAC;QACJ,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC3C,eAAe,EAAE,aAAa;YAC9B,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,CAAC,WAAW,CAAC;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAElF,IAAI,SAAS,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC;QAEjC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC/C,eAAe,EAAE,aAAa;YAC9B,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAE1F,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
pairs: {
|
|
5
|
-
collateral: string;
|
|
6
|
-
debt: string;
|
|
7
|
-
}[];
|
|
8
|
-
}
|
|
1
|
+
import { type PoolEntry } from "./config.js";
|
|
2
|
+
import { type VesuPoolData } from "./api.js";
|
|
3
|
+
export type { VesuPoolData } from "./api.js";
|
|
9
4
|
type Network = "mainnet" | "sepolia";
|
|
10
|
-
export declare function getVesuPools(network: Network):
|
|
11
|
-
export declare function
|
|
12
|
-
export {};
|
|
5
|
+
export declare function getVesuPools(network: Network): Promise<VesuPoolData[]>;
|
|
6
|
+
export declare function findPoolEntry(query: string, network: Network): PoolEntry | null;
|
|
13
7
|
//# sourceMappingURL=pools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pools.d.ts","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAErC,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAG5E;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAS/E"}
|
|
@@ -1,35 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
pairs: [
|
|
8
|
-
{ collateral: "ETH", debt: "USDC" },
|
|
9
|
-
{ collateral: "ETH", debt: "USDT" },
|
|
10
|
-
{ collateral: "STRK", debt: "USDC" },
|
|
11
|
-
{ collateral: "STRK", debt: "USDT" },
|
|
12
|
-
{ collateral: "STRK", debt: "ETH" },
|
|
13
|
-
],
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: "Re7 Labs",
|
|
17
|
-
poolContract: "0x05e74e13095c20746947990ab359bd3e2a3a9e19e44e5e247dc58e57e0480a66",
|
|
18
|
-
pairs: [
|
|
19
|
-
{ collateral: "ETH", debt: "USDC" },
|
|
20
|
-
{ collateral: "STRK", debt: "USDC" },
|
|
21
|
-
{ collateral: "STRK", debt: "ETH" },
|
|
22
|
-
],
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
const sepoliaPools = [];
|
|
26
|
-
export function getVesuPools(network) {
|
|
27
|
-
return network === "mainnet" ? mainnetPools : sepoliaPools;
|
|
1
|
+
import { V2_POOLS } from "./config.js";
|
|
2
|
+
import { fetchAllPools } from "./api.js";
|
|
3
|
+
export async function getVesuPools(network) {
|
|
4
|
+
if (network !== "mainnet")
|
|
5
|
+
return [];
|
|
6
|
+
return fetchAllPools();
|
|
28
7
|
}
|
|
29
|
-
// Resolve
|
|
30
|
-
export function
|
|
31
|
-
|
|
8
|
+
// Resolve by display name (case-insensitive prefix) or contract address.
|
|
9
|
+
export function findPoolEntry(query, network) {
|
|
10
|
+
if (network !== "mainnet")
|
|
11
|
+
return null;
|
|
32
12
|
const lower = query.toLowerCase();
|
|
33
|
-
return (
|
|
13
|
+
return (V2_POOLS.find((p) => p.address.toLowerCase() === lower || p.name.toLowerCase().startsWith(lower)) ?? null);
|
|
34
14
|
}
|
|
35
15
|
//# sourceMappingURL=pools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../src/services/vesu/pools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAM5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB;IAClD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,aAAa,EAAE,CAAC;AACxB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,OAAgB;IAC5D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,CACN,QAAQ,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAClF,IAAI,IAAI,CACT,CAAC;AACH,CAAC"}
|