fibx 0.5.1 → 0.7.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.
Files changed (206) hide show
  1. package/README.md +73 -2
  2. package/dist/index.js +277 -292
  3. package/dist/index.js.map +1 -1
  4. package/package.json +13 -14
  5. package/dist/commands/auth/import.d.ts +0 -3
  6. package/dist/commands/auth/import.d.ts.map +0 -1
  7. package/dist/commands/auth/import.js +0 -44
  8. package/dist/commands/auth/import.js.map +0 -1
  9. package/dist/commands/auth/login.d.ts +0 -3
  10. package/dist/commands/auth/login.d.ts.map +0 -1
  11. package/dist/commands/auth/login.js +0 -13
  12. package/dist/commands/auth/login.js.map +0 -1
  13. package/dist/commands/auth/logout.d.ts +0 -3
  14. package/dist/commands/auth/logout.d.ts.map +0 -1
  15. package/dist/commands/auth/logout.js +0 -11
  16. package/dist/commands/auth/logout.js.map +0 -1
  17. package/dist/commands/auth/verify.d.ts +0 -3
  18. package/dist/commands/auth/verify.d.ts.map +0 -1
  19. package/dist/commands/auth/verify.js +0 -30
  20. package/dist/commands/auth/verify.js.map +0 -1
  21. package/dist/commands/chain/transaction.d.ts +0 -3
  22. package/dist/commands/chain/transaction.d.ts.map +0 -1
  23. package/dist/commands/chain/transaction.js +0 -31
  24. package/dist/commands/chain/transaction.js.map +0 -1
  25. package/dist/commands/config/index.d.ts +0 -3
  26. package/dist/commands/config/index.d.ts.map +0 -1
  27. package/dist/commands/config/index.js +0 -97
  28. package/dist/commands/config/index.js.map +0 -1
  29. package/dist/commands/defi/aave.d.ts +0 -8
  30. package/dist/commands/defi/aave.d.ts.map +0 -1
  31. package/dist/commands/defi/aave.js +0 -238
  32. package/dist/commands/defi/aave.js.map +0 -1
  33. package/dist/commands/portfolio/index.d.ts +0 -3
  34. package/dist/commands/portfolio/index.d.ts.map +0 -1
  35. package/dist/commands/portfolio/index.js +0 -64
  36. package/dist/commands/portfolio/index.js.map +0 -1
  37. package/dist/commands/trade/status.d.ts +0 -3
  38. package/dist/commands/trade/status.d.ts.map +0 -1
  39. package/dist/commands/trade/status.js +0 -30
  40. package/dist/commands/trade/status.js.map +0 -1
  41. package/dist/commands/trade/swap.d.ts +0 -9
  42. package/dist/commands/trade/swap.d.ts.map +0 -1
  43. package/dist/commands/trade/swap.js +0 -205
  44. package/dist/commands/trade/swap.js.map +0 -1
  45. package/dist/commands/wallet/address.d.ts +0 -3
  46. package/dist/commands/wallet/address.d.ts.map +0 -1
  47. package/dist/commands/wallet/address.js +0 -13
  48. package/dist/commands/wallet/address.js.map +0 -1
  49. package/dist/commands/wallet/balance.d.ts +0 -3
  50. package/dist/commands/wallet/balance.d.ts.map +0 -1
  51. package/dist/commands/wallet/balance.js +0 -73
  52. package/dist/commands/wallet/balance.js.map +0 -1
  53. package/dist/commands/wallet/list.d.ts +0 -3
  54. package/dist/commands/wallet/list.d.ts.map +0 -1
  55. package/dist/commands/wallet/list.js +0 -22
  56. package/dist/commands/wallet/list.js.map +0 -1
  57. package/dist/commands/wallet/send.d.ts +0 -7
  58. package/dist/commands/wallet/send.d.ts.map +0 -1
  59. package/dist/commands/wallet/send.js +0 -115
  60. package/dist/commands/wallet/send.js.map +0 -1
  61. package/dist/index.d.ts +0 -3
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/lib/brand.d.ts +0 -5
  64. package/dist/lib/brand.d.ts.map +0 -1
  65. package/dist/lib/brand.js +0 -15
  66. package/dist/lib/brand.js.map +0 -1
  67. package/dist/lib/cache.d.ts +0 -3
  68. package/dist/lib/cache.d.ts.map +0 -1
  69. package/dist/lib/cache.js +0 -23
  70. package/dist/lib/cache.js.map +0 -1
  71. package/dist/lib/cli-helpers.d.ts +0 -10
  72. package/dist/lib/cli-helpers.d.ts.map +0 -1
  73. package/dist/lib/cli-helpers.js +0 -20
  74. package/dist/lib/cli-helpers.js.map +0 -1
  75. package/dist/lib/concurrency.d.ts +0 -8
  76. package/dist/lib/concurrency.d.ts.map +0 -1
  77. package/dist/lib/concurrency.js +0 -26
  78. package/dist/lib/concurrency.js.map +0 -1
  79. package/dist/lib/config.d.ts +0 -7
  80. package/dist/lib/config.d.ts.map +0 -1
  81. package/dist/lib/config.js +0 -9
  82. package/dist/lib/config.js.map +0 -1
  83. package/dist/lib/errors.d.ts +0 -28
  84. package/dist/lib/errors.d.ts.map +0 -1
  85. package/dist/lib/errors.js +0 -33
  86. package/dist/lib/errors.js.map +0 -1
  87. package/dist/lib/format.d.ts +0 -31
  88. package/dist/lib/format.d.ts.map +0 -1
  89. package/dist/lib/format.js +0 -169
  90. package/dist/lib/format.js.map +0 -1
  91. package/dist/lib/parse-evm-error.d.ts +0 -6
  92. package/dist/lib/parse-evm-error.d.ts.map +0 -1
  93. package/dist/lib/parse-evm-error.js +0 -48
  94. package/dist/lib/parse-evm-error.js.map +0 -1
  95. package/dist/lib/parseAmount.d.ts +0 -3
  96. package/dist/lib/parseAmount.d.ts.map +0 -1
  97. package/dist/lib/parseAmount.js +0 -9
  98. package/dist/lib/parseAmount.js.map +0 -1
  99. package/dist/lib/retry.d.ts +0 -20
  100. package/dist/lib/retry.d.ts.map +0 -1
  101. package/dist/lib/retry.js +0 -36
  102. package/dist/lib/retry.js.map +0 -1
  103. package/dist/lib/validation.d.ts +0 -6
  104. package/dist/lib/validation.d.ts.map +0 -1
  105. package/dist/lib/validation.js +0 -24
  106. package/dist/lib/validation.js.map +0 -1
  107. package/dist/mcp/handlers.d.ts +0 -87
  108. package/dist/mcp/handlers.d.ts.map +0 -1
  109. package/dist/mcp/handlers.js +0 -394
  110. package/dist/mcp/handlers.js.map +0 -1
  111. package/dist/mcp/server.d.ts +0 -2
  112. package/dist/mcp/server.d.ts.map +0 -1
  113. package/dist/mcp/server.js +0 -21
  114. package/dist/mcp/server.js.map +0 -1
  115. package/dist/mcp/tools.d.ts +0 -3
  116. package/dist/mcp/tools.d.ts.map +0 -1
  117. package/dist/mcp/tools.js +0 -227
  118. package/dist/mcp/tools.js.map +0 -1
  119. package/dist/services/api/client.d.ts +0 -34
  120. package/dist/services/api/client.d.ts.map +0 -1
  121. package/dist/services/api/client.js +0 -68
  122. package/dist/services/api/client.js.map +0 -1
  123. package/dist/services/auth/policy.d.ts +0 -2
  124. package/dist/services/auth/policy.d.ts.map +0 -1
  125. package/dist/services/auth/policy.js +0 -3
  126. package/dist/services/auth/policy.js.map +0 -1
  127. package/dist/services/auth/session.d.ts +0 -20
  128. package/dist/services/auth/session.d.ts.map +0 -1
  129. package/dist/services/auth/session.js +0 -70
  130. package/dist/services/auth/session.js.map +0 -1
  131. package/dist/services/chain/client.d.ts +0 -17493
  132. package/dist/services/chain/client.d.ts.map +0 -1
  133. package/dist/services/chain/client.js +0 -30
  134. package/dist/services/chain/client.js.map +0 -1
  135. package/dist/services/chain/constants.d.ts +0 -163
  136. package/dist/services/chain/constants.d.ts.map +0 -1
  137. package/dist/services/chain/constants.js +0 -118
  138. package/dist/services/chain/constants.js.map +0 -1
  139. package/dist/services/chain/erc20.d.ts +0 -100
  140. package/dist/services/chain/erc20.d.ts.map +0 -1
  141. package/dist/services/chain/erc20.js +0 -117
  142. package/dist/services/chain/erc20.js.map +0 -1
  143. package/dist/services/chain/nonceManager.d.ts +0 -13
  144. package/dist/services/chain/nonceManager.d.ts.map +0 -1
  145. package/dist/services/chain/nonceManager.js +0 -45
  146. package/dist/services/chain/nonceManager.js.map +0 -1
  147. package/dist/services/config/config.d.ts +0 -20
  148. package/dist/services/config/config.d.ts.map +0 -1
  149. package/dist/services/config/config.js +0 -75
  150. package/dist/services/config/config.js.map +0 -1
  151. package/dist/services/defi/aave.d.ts +0 -50
  152. package/dist/services/defi/aave.d.ts.map +0 -1
  153. package/dist/services/defi/aave.js +0 -605
  154. package/dist/services/defi/aave.js.map +0 -1
  155. package/dist/services/defi/abi/aave.d.ts +0 -304
  156. package/dist/services/defi/abi/aave.d.ts.map +0 -1
  157. package/dist/services/defi/abi/aave.js +0 -194
  158. package/dist/services/defi/abi/aave.js.map +0 -1
  159. package/dist/services/defi/constants.d.ts +0 -11
  160. package/dist/services/defi/constants.d.ts.map +0 -1
  161. package/dist/services/defi/constants.js +0 -12
  162. package/dist/services/defi/constants.js.map +0 -1
  163. package/dist/services/fibrous/abi/base.d.ts +0 -768
  164. package/dist/services/fibrous/abi/base.d.ts.map +0 -1
  165. package/dist/services/fibrous/abi/base.js +0 -984
  166. package/dist/services/fibrous/abi/base.js.map +0 -1
  167. package/dist/services/fibrous/abi/citrea.d.ts +0 -773
  168. package/dist/services/fibrous/abi/citrea.d.ts.map +0 -1
  169. package/dist/services/fibrous/abi/citrea.js +0 -990
  170. package/dist/services/fibrous/abi/citrea.js.map +0 -1
  171. package/dist/services/fibrous/abi/hyperevm.d.ts +0 -773
  172. package/dist/services/fibrous/abi/hyperevm.d.ts.map +0 -1
  173. package/dist/services/fibrous/abi/hyperevm.js +0 -990
  174. package/dist/services/fibrous/abi/hyperevm.js.map +0 -1
  175. package/dist/services/fibrous/abi/monad.d.ts +0 -773
  176. package/dist/services/fibrous/abi/monad.d.ts.map +0 -1
  177. package/dist/services/fibrous/abi/monad.js +0 -990
  178. package/dist/services/fibrous/abi/monad.js.map +0 -1
  179. package/dist/services/fibrous/balances.d.ts +0 -15
  180. package/dist/services/fibrous/balances.d.ts.map +0 -1
  181. package/dist/services/fibrous/balances.js +0 -27
  182. package/dist/services/fibrous/balances.js.map +0 -1
  183. package/dist/services/fibrous/health.d.ts +0 -12
  184. package/dist/services/fibrous/health.d.ts.map +0 -1
  185. package/dist/services/fibrous/health.js +0 -16
  186. package/dist/services/fibrous/health.js.map +0 -1
  187. package/dist/services/fibrous/route.d.ts +0 -48
  188. package/dist/services/fibrous/route.d.ts.map +0 -1
  189. package/dist/services/fibrous/route.js +0 -65
  190. package/dist/services/fibrous/route.js.map +0 -1
  191. package/dist/services/fibrous/tokens.d.ts +0 -12
  192. package/dist/services/fibrous/tokens.d.ts.map +0 -1
  193. package/dist/services/fibrous/tokens.js +0 -38
  194. package/dist/services/fibrous/tokens.js.map +0 -1
  195. package/dist/services/portfolio/portfolio.d.ts +0 -28
  196. package/dist/services/portfolio/portfolio.d.ts.map +0 -1
  197. package/dist/services/portfolio/portfolio.js +0 -116
  198. package/dist/services/portfolio/portfolio.js.map +0 -1
  199. package/dist/services/privy/account.d.ts +0 -20
  200. package/dist/services/privy/account.d.ts.map +0 -1
  201. package/dist/services/privy/account.js +0 -60
  202. package/dist/services/privy/account.js.map +0 -1
  203. package/dist/services/privy/client.d.ts +0 -2
  204. package/dist/services/privy/client.d.ts.map +0 -1
  205. package/dist/services/privy/client.js +0 -7
  206. package/dist/services/privy/client.js.map +0 -1
package/dist/mcp/tools.js DELETED
@@ -1,227 +0,0 @@
1
- import { z } from "zod";
2
- import { handleGetBalance, handleSwapTokens, handleSendTokens, handleGetTxStatus, handleGetAaveStatus, handleGetAaveMarkets, handleAaveAction, handleGetAuthStatus, handleConfigAction, handleGetPortfolio, } from "./handlers.js";
3
- const ChainEnum = z.enum(["base", "citrea", "hyperevm", "monad"]);
4
- function toStructured(obj) {
5
- return { ...obj };
6
- }
7
- async function safeToolCall(fn) {
8
- try {
9
- const output = await fn();
10
- return {
11
- content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
12
- structuredContent: toStructured(output),
13
- };
14
- }
15
- catch (error) {
16
- const message = error instanceof Error ? error.message : String(error);
17
- return {
18
- content: [{ type: "text", text: `Error: ${message}` }],
19
- isError: true,
20
- };
21
- }
22
- }
23
- export function registerAllTools(server) {
24
- server.registerTool("get_auth_status", {
25
- title: "Check Auth & Fibrous Status",
26
- description: "Check authentication status and Fibrous API health. Always call this first to verify the session is active before performing any transaction.",
27
- inputSchema: {
28
- chain: ChainEnum.default("base").describe("Target chain to check Fibrous health for"),
29
- },
30
- outputSchema: {
31
- authenticated: z.boolean(),
32
- walletAddress: z.string().nullable(),
33
- sessionType: z.string().nullable(),
34
- chain: z.string(),
35
- fibrousStatus: z.string(),
36
- },
37
- annotations: {
38
- title: "Auth & Health Check",
39
- readOnlyHint: true,
40
- destructiveHint: false,
41
- openWorldHint: true,
42
- },
43
- }, async ({ chain }) => safeToolCall(() => handleGetAuthStatus(chain)));
44
- server.registerTool("get_balance", {
45
- title: "Get Wallet Balance",
46
- description: "Get native token and all ERC-20 token balances for the active wallet on a specific chain. Only returns tokens with non-zero balances.",
47
- inputSchema: {
48
- chain: ChainEnum.default("base").describe("Target blockchain network"),
49
- },
50
- outputSchema: {
51
- wallet: z.string(),
52
- chain: z.string(),
53
- balances: z.record(z.string(), z.string()),
54
- },
55
- annotations: {
56
- title: "Wallet Balance",
57
- readOnlyHint: true,
58
- destructiveHint: false,
59
- openWorldHint: true,
60
- },
61
- }, async ({ chain }) => safeToolCall(() => handleGetBalance(chain)));
62
- server.registerTool("swap_tokens", {
63
- title: "Swap Tokens via Fibrous",
64
- description: "Swap tokens using Fibrous aggregator for optimal routing. Handles ERC-20 approvals and wrap/unwrap automatically. Simulates before executing. Supported chains: Base, Citrea, HyperEVM, Monad.",
65
- inputSchema: {
66
- amount: z.string().describe("Amount to swap (e.g. '0.1', '100')"),
67
- from_token: z.string().describe("Source token symbol (e.g. 'ETH', 'USDC', 'MON')"),
68
- to_token: z.string().describe("Destination token symbol"),
69
- chain: ChainEnum.default("base").describe("Target blockchain network"),
70
- slippage: z
71
- .number()
72
- .default(0.5)
73
- .describe("Slippage tolerance percentage (default: 0.5)"),
74
- },
75
- outputSchema: {
76
- txHash: z.string(),
77
- amountIn: z.string(),
78
- amountOut: z.string(),
79
- tokenIn: z.string(),
80
- tokenOut: z.string(),
81
- router: z.string(),
82
- chain: z.string(),
83
- },
84
- annotations: {
85
- title: "Token Swap",
86
- readOnlyHint: false,
87
- destructiveHint: true,
88
- idempotentHint: false,
89
- openWorldHint: true,
90
- },
91
- }, async ({ amount, from_token, to_token, chain, slippage }) => safeToolCall(() => handleSwapTokens(amount, from_token, to_token, chain, slippage)));
92
- server.registerTool("send_tokens", {
93
- title: "Send Tokens",
94
- description: "Send native tokens (ETH, cBTC, HYPE, MON) or ERC-20 tokens to a recipient address. Simulates before executing. If token is omitted, the chain's native token is used.",
95
- inputSchema: {
96
- amount: z.string().describe("Amount to send (e.g. '0.1', '100')"),
97
- recipient: z.string().describe("Recipient address (0x...)"),
98
- token: z
99
- .string()
100
- .optional()
101
- .describe("Token symbol (e.g. 'USDC', 'ETH'). Omit for native token transfer."),
102
- chain: ChainEnum.default("base").describe("Target blockchain network"),
103
- },
104
- outputSchema: {
105
- txHash: z.string(),
106
- amount: z.string(),
107
- token: z.string(),
108
- recipient: z.string(),
109
- chain: z.string(),
110
- },
111
- annotations: {
112
- title: "Token Transfer",
113
- readOnlyHint: false,
114
- destructiveHint: true,
115
- idempotentHint: false,
116
- openWorldHint: true,
117
- },
118
- }, async ({ amount, recipient, token, chain }) => safeToolCall(() => handleSendTokens(amount, recipient, token, chain)));
119
- server.registerTool("get_tx_status", {
120
- title: "Get Transaction Status",
121
- description: "Check the on-chain status and receipt of a transaction by its hash. Returns confirmation status, block number, gas used, and addresses.",
122
- inputSchema: {
123
- hash: z.string().describe("Transaction hash (0x...)"),
124
- chain: ChainEnum.default("base").describe("Chain the transaction was submitted on"),
125
- },
126
- outputSchema: {
127
- hash: z.string(),
128
- status: z.string(),
129
- blockNumber: z.string().nullable(),
130
- from: z.string(),
131
- to: z.string().nullable(),
132
- gasUsed: z.string().nullable(),
133
- chain: z.string(),
134
- },
135
- annotations: {
136
- title: "Transaction Receipt",
137
- readOnlyHint: true,
138
- destructiveHint: false,
139
- openWorldHint: true,
140
- },
141
- }, async ({ hash, chain }) => safeToolCall(() => handleGetTxStatus(hash, chain)));
142
- server.registerTool("get_aave_status", {
143
- title: "Aave V3 Account Status",
144
- description: "Get Aave V3 position health on Base: health factor, total collateral, total debt, and available borrows in USD.",
145
- inputSchema: {},
146
- outputSchema: {
147
- wallet: z.string(),
148
- healthFactor: z.string(),
149
- totalCollateralUSD: z.string(),
150
- totalDebtUSD: z.string(),
151
- availableBorrowsUSD: z.string(),
152
- },
153
- annotations: {
154
- title: "Aave V3 Position",
155
- readOnlyHint: true,
156
- destructiveHint: false,
157
- openWorldHint: true,
158
- },
159
- }, async () => safeToolCall(() => handleGetAaveStatus()));
160
- server.registerTool("get_aave_markets", {
161
- title: "Aave V3 Markets",
162
- description: "List all Aave V3 reserve markets on Base with supply/borrow APY, total supply, total borrow, and LTV. No wallet required.",
163
- inputSchema: {},
164
- annotations: {
165
- title: "Aave V3 Markets",
166
- readOnlyHint: true,
167
- destructiveHint: false,
168
- openWorldHint: true,
169
- },
170
- }, async () => safeToolCall(() => handleGetAaveMarkets()));
171
- server.registerTool("aave_action", {
172
- title: "Aave V3 Action",
173
- description: "Execute an Aave V3 action on Base: supply, borrow, repay, or withdraw. Auto-handles ETH<->WETH wrapping/unwrapping. Use 'max' as amount to repay or withdraw the full balance.",
174
- inputSchema: {
175
- action: z
176
- .enum(["supply", "borrow", "repay", "withdraw"])
177
- .describe("Aave action to perform"),
178
- amount: z
179
- .string()
180
- .describe("Amount (e.g. '100', '0.5', 'max'). Use 'max' for full repay/withdraw."),
181
- token: z.string().describe("Token symbol (e.g. 'ETH', 'USDC', 'WETH')"),
182
- },
183
- outputSchema: {
184
- action: z.string(),
185
- amount: z.string(),
186
- token: z.string(),
187
- txHash: z.string(),
188
- chain: z.string(),
189
- },
190
- annotations: {
191
- title: "Aave V3 Operation",
192
- readOnlyHint: false,
193
- destructiveHint: true,
194
- idempotentHint: false,
195
- openWorldHint: true,
196
- },
197
- }, async ({ action, amount, token }) => safeToolCall(() => handleAaveAction(action, amount, token)));
198
- server.registerTool("config_action", {
199
- title: "Manage RPC Configuration",
200
- description: "View and modify fibx RPC configuration. Use 'set-rpc' to set a custom RPC URL for a chain (helps avoid rate limits), 'get-rpc' to view the current RPC for a chain, 'reset-rpc' to reset a chain's RPC to default (omit chain to reset all), or 'list' to show all custom RPC settings.",
201
- inputSchema: {
202
- action: z
203
- .enum(["set-rpc", "get-rpc", "reset-rpc", "list"])
204
- .describe("Config action to perform"),
205
- chain: ChainEnum.optional().describe("Target chain (required for set-rpc and get-rpc)"),
206
- url: z.string().optional().describe("RPC URL to set (required for set-rpc)"),
207
- },
208
- annotations: {
209
- title: "RPC Configuration",
210
- readOnlyHint: false,
211
- destructiveHint: false,
212
- openWorldHint: false,
213
- },
214
- }, async ({ action, chain, url }) => safeToolCall(() => handleConfigAction(action, chain, url)));
215
- server.registerTool("get_portfolio", {
216
- title: "Cross-Chain Portfolio",
217
- description: "Get a complete cross-chain portfolio overview with USD valuations for all token holdings across Base, Citrea, HyperEVM, and Monad. Includes DeFi positions (Aave V3). Returns total net worth.",
218
- inputSchema: {},
219
- annotations: {
220
- title: "Portfolio Overview",
221
- readOnlyHint: true,
222
- destructiveHint: false,
223
- openWorldHint: true,
224
- },
225
- }, async () => safeToolCall(() => handleGetPortfolio()));
226
- }
227
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- export declare function apiLogin(email: string): Promise<{
2
- success: boolean;
3
- message: string;
4
- }>;
5
- export interface VerifyResponse {
6
- userId: string;
7
- walletId: string;
8
- walletAddress: string;
9
- token: string;
10
- isExisting: boolean;
11
- }
12
- export declare function apiVerify(email: string, code: string): Promise<VerifyResponse>;
13
- export declare function apiFindWallet(email: string, token: string): Promise<{
14
- wallet: {
15
- id: string;
16
- address: string;
17
- } | null;
18
- }>;
19
- export declare function apiCreateWallet(token: string, userId?: string): Promise<{
20
- wallet: {
21
- id: string;
22
- address: string;
23
- };
24
- }>;
25
- export declare function apiSignTransaction(walletId: string, transaction: Record<string, unknown>, token: string): Promise<{
26
- signedTransaction: string;
27
- }>;
28
- export declare function apiSignMessage(walletId: string, message: string | Record<string, unknown>, token: string): Promise<{
29
- signature: string;
30
- }>;
31
- export declare function apiSignTypedData(walletId: string, typedData: Record<string, unknown>, token: string): Promise<{
32
- signature: string;
33
- }>;
34
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"AAuEA,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAE5F;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAEpF;AAED,wBAAsB,aAAa,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC,CAE7D;AAED,wBAAsB,eAAe,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAEtD;AAED,wBAAsB,kBAAkB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,CAExC;AAED,wBAAsB,cAAc,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhC;AAED,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhC"}
@@ -1,68 +0,0 @@
1
- import { ErrorCode, FibxError } from "../../lib/errors.js";
2
- import { FIBX_API_URL_DEFAULT } from "../../lib/config.js";
3
- const REQUEST_TIMEOUT_MS = 30_000; // 30 seconds
4
- function getBaseUrl() {
5
- return process.env.FIBX_API_URL ?? FIBX_API_URL_DEFAULT;
6
- }
7
- async function request(path, body, options) {
8
- const url = `${getBaseUrl()}${path}`;
9
- const timeout = options?.timeoutMs ?? REQUEST_TIMEOUT_MS;
10
- const headers = {
11
- "Content-Type": "application/json",
12
- };
13
- if (options?.token) {
14
- headers.Authorization = `Bearer ${options.token}`;
15
- }
16
- const controller = new AbortController();
17
- const timer = setTimeout(() => controller.abort(), timeout);
18
- try {
19
- const res = await fetch(url, {
20
- method: "POST",
21
- headers,
22
- body: JSON.stringify(body),
23
- signal: controller.signal,
24
- });
25
- if (!res.ok) {
26
- const errorBody = await res
27
- .json()
28
- .catch(() => ({ error: { message: res.statusText } }));
29
- const msg = errorBody?.error?.message ??
30
- `API error (${res.status})`;
31
- throw new FibxError(ErrorCode.PRIVY_ERROR, msg);
32
- }
33
- return (await res.json());
34
- }
35
- catch (error) {
36
- if (error instanceof FibxError)
37
- throw error;
38
- if (error instanceof DOMException && error.name === "AbortError") {
39
- throw new FibxError(ErrorCode.PRIVY_ERROR, `Request to ${path} timed out after ${timeout / 1000}s. Is fibx-server running?`);
40
- }
41
- throw new FibxError(ErrorCode.PRIVY_ERROR, `Failed to connect to fibx-server at ${getBaseUrl()}. Is the server running?`);
42
- }
43
- finally {
44
- clearTimeout(timer);
45
- }
46
- }
47
- export async function apiLogin(email) {
48
- return request("/auth/login", { email });
49
- }
50
- export async function apiVerify(email, code) {
51
- return request("/auth/verify", { email, code });
52
- }
53
- export async function apiFindWallet(email, token) {
54
- return request("/wallet/find", { email }, { token });
55
- }
56
- export async function apiCreateWallet(token, userId) {
57
- return request("/wallet/create", { userId }, { token });
58
- }
59
- export async function apiSignTransaction(walletId, transaction, token) {
60
- return request("/sign/transaction", { walletId, transaction }, { token });
61
- }
62
- export async function apiSignMessage(walletId, message, token) {
63
- return request("/sign/message", { walletId, message }, { token });
64
- }
65
- export async function apiSignTypedData(walletId, typedData, token) {
66
- return request("/sign/typed-data", { walletId, typedData }, { token });
67
- }
68
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/api/client.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function createDefaultPolicy(): void;
2
- //# sourceMappingURL=policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/services/auth/policy.ts"],"names":[],"mappings":"AACA,wBAAgB,mBAAmB,IAAI,IAAI,CAAG"}
@@ -1,3 +0,0 @@
1
- // V1 stub — future: spending limits, whitelists.
2
- export function createDefaultPolicy() { }
3
- //# sourceMappingURL=policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/services/auth/policy.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,UAAU,mBAAmB,KAAU,CAAC"}
@@ -1,20 +0,0 @@
1
- import { z } from "zod";
2
- declare const sessionSchema: z.ZodObject<{
3
- userId: z.ZodOptional<z.ZodString>;
4
- walletId: z.ZodOptional<z.ZodString>;
5
- walletAddress: z.ZodString;
6
- userJwt: z.ZodOptional<z.ZodString>;
7
- createdAt: z.ZodString;
8
- type: z.ZodDefault<z.ZodEnum<{
9
- privy: "privy";
10
- "private-key": "private-key";
11
- }>>;
12
- privateKey: z.ZodOptional<z.ZodString>;
13
- }, z.core.$strip>;
14
- export type Session = z.infer<typeof sessionSchema>;
15
- export declare function loadSession(): Session | null;
16
- export declare function requireSession(): Session;
17
- export declare function saveSession(session: Session): void;
18
- export declare function clearSession(): void;
19
- export {};
20
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,aAAa;;;;;;;;;;;iBAQjB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD,wBAAgB,WAAW,IAAI,OAAO,GAAG,IAAI,CAQ5C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAkBxC;AAqBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAMnC"}
@@ -1,70 +0,0 @@
1
- import { readFileSync, writeFileSync, unlinkSync, mkdirSync } from "node:fs";
2
- import { join, dirname } from "node:path";
3
- import { z } from "zod";
4
- import { paths } from "../../lib/config.js";
5
- import { ErrorCode, FibxError } from "../../lib/errors.js";
6
- const sessionSchema = z.object({
7
- userId: z.string().optional(),
8
- walletId: z.string().optional(), // Optional for private-key auth
9
- walletAddress: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
10
- userJwt: z.string().optional(),
11
- createdAt: z.string(),
12
- type: z.enum(["privy", "private-key"]).default("privy"),
13
- privateKey: z.string().optional(), // Only for private-key auth
14
- });
15
- function getSessionPath() {
16
- return join(paths.config, "session.json");
17
- }
18
- export function loadSession() {
19
- try {
20
- const raw = readFileSync(getSessionPath(), "utf-8");
21
- const result = sessionSchema.safeParse(JSON.parse(raw));
22
- return result.success ? result.data : null;
23
- }
24
- catch {
25
- return null;
26
- }
27
- }
28
- export function requireSession() {
29
- const session = loadSession();
30
- if (!session) {
31
- throw new FibxError(ErrorCode.NOT_AUTHENTICATED, "Not authenticated. Run `fibx auth login <email>` first.");
32
- }
33
- if (session.userJwt && isSessionExpired(session.userJwt)) {
34
- clearSession();
35
- throw new FibxError(ErrorCode.SESSION_EXPIRED, "Session expired. Run `fibx auth login <email>` again.");
36
- }
37
- return session;
38
- }
39
- // Decode JWT payload (no signature verification — client-side expiry check only).
40
- function isSessionExpired(token) {
41
- try {
42
- const parts = token.split(".");
43
- if (parts.length !== 3 || !parts[1])
44
- return false;
45
- const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
46
- if (!payload.exp)
47
- return false;
48
- // Buffer before actual expiry to avoid mid-request failures
49
- const SESSION_EXPIRY_BUFFER_SECONDS = 300;
50
- return Date.now() >= (payload.exp - SESSION_EXPIRY_BUFFER_SECONDS) * 1000;
51
- }
52
- catch {
53
- return false;
54
- }
55
- }
56
- export function saveSession(session) {
57
- const filePath = getSessionPath();
58
- mkdirSync(dirname(filePath), { recursive: true });
59
- sessionSchema.parse(session);
60
- writeFileSync(filePath, JSON.stringify(session, null, 2), "utf-8");
61
- }
62
- export function clearSession() {
63
- try {
64
- unlinkSync(getSessionPath());
65
- }
66
- catch {
67
- // noop
68
- }
69
- }
70
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"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"}