fibx 0.2.6 → 0.3.1

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 (53) hide show
  1. package/README.md +38 -195
  2. package/dist/commands/auth/login.d.ts.map +1 -1
  3. package/dist/commands/auth/login.js +2 -21
  4. package/dist/commands/auth/login.js.map +1 -1
  5. package/dist/commands/auth/verify.d.ts.map +1 -1
  6. package/dist/commands/auth/verify.js +11 -44
  7. package/dist/commands/auth/verify.js.map +1 -1
  8. package/dist/commands/defi/aave.js +1 -3
  9. package/dist/commands/defi/aave.js.map +1 -1
  10. package/dist/commands/trade/swap.d.ts.map +1 -1
  11. package/dist/commands/trade/swap.js +19 -7
  12. package/dist/commands/trade/swap.js.map +1 -1
  13. package/dist/commands/wallet/list.d.ts +1 -1
  14. package/dist/commands/wallet/list.d.ts.map +1 -1
  15. package/dist/commands/wallet/list.js +18 -26
  16. package/dist/commands/wallet/list.js.map +1 -1
  17. package/dist/commands/wallet/send.d.ts.map +1 -1
  18. package/dist/commands/wallet/send.js +1 -3
  19. package/dist/commands/wallet/send.js.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/lib/config.d.ts +1 -0
  22. package/dist/lib/config.d.ts.map +1 -1
  23. package/dist/lib/config.js +3 -0
  24. package/dist/lib/config.js.map +1 -1
  25. package/dist/services/api/client.d.ts +34 -0
  26. package/dist/services/api/client.d.ts.map +1 -0
  27. package/dist/services/api/client.js +68 -0
  28. package/dist/services/api/client.js.map +1 -0
  29. package/dist/services/chain/client.d.ts +1 -2
  30. package/dist/services/chain/client.d.ts.map +1 -1
  31. package/dist/services/chain/client.js +6 -6
  32. package/dist/services/chain/client.js.map +1 -1
  33. package/dist/services/defi/aave.d.ts +3 -0
  34. package/dist/services/defi/aave.d.ts.map +1 -1
  35. package/dist/services/defi/aave.js +170 -50
  36. package/dist/services/defi/aave.js.map +1 -1
  37. package/dist/services/defi/abi/aave.d.ts +60 -0
  38. package/dist/services/defi/abi/aave.d.ts.map +1 -1
  39. package/dist/services/defi/abi/aave.js +41 -0
  40. package/dist/services/defi/abi/aave.js.map +1 -1
  41. package/dist/services/defi/constants.d.ts +1 -0
  42. package/dist/services/defi/constants.d.ts.map +1 -1
  43. package/dist/services/defi/constants.js +2 -0
  44. package/dist/services/defi/constants.js.map +1 -1
  45. package/dist/services/privy/account.d.ts +5 -2
  46. package/dist/services/privy/account.d.ts.map +1 -1
  47. package/dist/services/privy/account.js +19 -21
  48. package/dist/services/privy/account.js.map +1 -1
  49. package/dist/services/privy/client.d.ts +1 -14
  50. package/dist/services/privy/client.d.ts.map +1 -1
  51. package/dist/services/privy/client.js +6 -62
  52. package/dist/services/privy/client.js.map +1 -1
  53. package/package.json +1 -2
package/README.md CHANGED
@@ -1,101 +1,41 @@
1
1
  # fibx
2
2
 
3
- A command-line tool for specialized DeFi operations on **Base, Citrea, HyperEVM, and Monad**, powered by [Fibrous](https://fibrous.finance) aggregation and [Privy](https://privy.io) Server Wallets.
3
+ A command-line tool for DeFi operations on **Base, Citrea, HyperEVM, and Monad**, powered by [Fibrous](https://fibrous.finance) aggregation and [Privy](https://privy.io) Server Wallets.
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/fibx.svg)](https://badge.fury.io/js/fibx)
6
6
 
7
7
  ## Features
8
8
 
9
- - **Privy Server Wallets**: Uses "Agentic" server-side wallets (ownerless) for seamless, automated signing without user interaction.
10
- - **Multi-Chain Support**: seamlessly interact with Base, Citrea, HyperEVM, and Monad.
11
- - **Native & ERC-20 Transfers**: Send ETH, MON, cBTC, HYPE, or any ERC-20 token with a single command.
12
- - **Fibrous Aggregation**: Execute token swaps with optimal routing and auto-slippage protection.
13
- - **Transaction Status**: Check the status of any transaction hash and get a block explorer link.
14
- - **Aave V3 Integration**: Supply, borrow, repay, and withdraw assets on Base (DeFi).
15
- - **Automated Auth Flow**: One-time email OTP login provisions a persistent server wallet linked to your user profile.
16
- - **Private Key Import**: Support for importing existing private keys for local execution.
17
- - **Automated Simulation**: All transactions (send, swap, Aave) are simulated on-chain before execution to prevent failures.
18
- - **JSON Output**: All commands support `--json` for easy integration into scripts and pipelines.
9
+ - **Multi-Chain Support**: Base, Citrea, HyperEVM, and Monad
10
+ - **Token Swaps**: Optimal routing via Fibrous aggregation with auto-slippage
11
+ - **Transfers**: Send ETH or any ERC-20 token
12
+ - **Aave V3**: Supply, borrow, repay, and withdraw on Base
13
+ - **Privy Server Wallets**: Secure server-side signing
14
+ - **Private Key Import**: Use an existing wallet for local execution
15
+ - **Simulation**: All transactions are simulated before execution
16
+ - **JSON Output**: `--json` flag for scripting and pipelines
19
17
 
20
18
  ## Requirements
21
19
 
22
- - Node.js 18
23
- - npm (or any Node.js package manager)
24
- - Privy App ID and Secret (from [dashboard.privy.io](https://dashboard.privy.io))
20
+ - Node.js >= 18
21
+ - A running [fibx-server](https://github.com/ahmetenesdur/fibx-server) instance
25
22
 
26
23
  ## Quick Start
27
24
 
28
- ### 1. Installation
29
-
30
- You can use `fibx` without installation via `npx`, or install it globally.
31
-
32
- **Option A: No Installation (Recommended for Agents)**
33
-
34
- ```bash
35
- npx fibx <command>
36
- ```
37
-
38
- **Option B: Global Install**
39
-
40
- ```bash
41
- npm install -g fibx
42
- fibx <command>
43
- ```
44
-
45
- Set your Privy credentials as environment variables:
25
+ ### Authentication
46
26
 
47
27
  ```bash
48
- export PRIVY_APP_ID="your_app_id"
49
- export PRIVY_APP_SECRET="your_app_secret"
50
- ```
51
-
52
- ### 2. Authenticate & Provision Wallet
53
-
54
- This two-step process links your email to a server-side wallet.
55
-
56
- **Step 1: Request OTP**
57
-
58
- ```bash
59
- npx fibx auth login <email>
60
- # Example:
28
+ # Email OTP
61
29
  npx fibx auth login user@example.com
62
- ```
63
-
64
- **Step 2: Verify & Create Session**
65
-
66
- ```bash
67
- npx fibx auth verify <email> <code>
68
- # Example:
69
30
  npx fibx auth verify user@example.com 123456
70
- ```
71
-
72
- _Successfully verifying will create a local session file and provision a Server Wallet if one doesn't exist._
73
-
74
- ### 3. Alternative: Import Private Key
75
31
 
76
- If you prefer to use an existing private key (e.g., from Metamask or a generated wallet) instead of Privy:
77
-
78
- ```bash
32
+ # Or import a private key
79
33
  npx fibx auth import
80
- ```
81
-
82
- _This will securely prompt for your private key and store it locally in `session.json` for signing transactions._
83
-
84
- > **Security Note:** Your private key is stored locally on your machine. Ensure your environment is secure.
85
-
86
- ### 4. Logout
87
-
88
- If you want to clear your local session:
89
34
 
90
- ```bash
35
+ # Logout
91
36
  npx fibx auth logout
92
- ```
93
-
94
- ### 5. Check Status
95
37
 
96
- Verify that you are authenticated and the API is healthy:
97
-
98
- ```bash
38
+ # Check status
99
39
  npx fibx status
100
40
  ```
101
41
 
@@ -103,157 +43,60 @@ npx fibx status
103
43
 
104
44
  ### Global Options
105
45
 
106
- You can specify the target chain for any command using the `-c` or `--chain` flag.
107
-
108
- **Supported Chains:** `base` (default), `citrea`, `hyperevm`, `monad`
109
-
110
- ```bash
111
- npx fibx status --chain monad
112
- ```
46
+ Use `-c` or `--chain` to specify the target chain. Default is `base`.
113
47
 
114
- ### Check Balance
48
+ Supported: `base`, `citrea`, `hyperevm`, `monad`
115
49
 
116
- View your balances on the selected chain:
50
+ ### Balance
117
51
 
118
52
  ```bash
119
53
  npx fibx balance
120
54
  npx fibx balance --chain citrea
121
55
  ```
122
56
 
123
- ### Send Tokens
124
-
125
- Transfer ETH or ERC-20 tokens to another address.
126
-
127
- **Send ETH (Default):**
128
-
129
- ```bash
130
- npx fibx send 0.001 0xRecipientAddress
131
- npx fibx send 1 0xRecipientAddress --chain monad
132
- ```
133
-
134
- **Send ERC-20 (e.g., USDC):**
135
-
136
- ```bash
137
- npx fibx send 10 0xRecipientAddress USDC
138
- ```
139
-
140
- ### Swap Tokens
141
-
142
- Swap tokens using Fibrous Finance's aggregator.
57
+ ### Send
143
58
 
144
59
  ```bash
145
- npx fibx trade <amount> <from_token> <to_token>
60
+ npx fibx send 0.001 0xRecipient # Send ETH
61
+ npx fibx send 10 0xRecipient USDC # Send ERC-20
62
+ npx fibx send 1 0xRecipient --chain monad # Send on Monad
146
63
  ```
147
64
 
148
- **Examples:**
65
+ ### Swap
149
66
 
150
67
  ```bash
151
- # Swap 0.0001 ETH to USDC
68
+ npx fibx trade <amount> <from> <to>
152
69
  npx fibx trade 0.0001 ETH USDC
153
-
154
- # Swap 20 USDC to DAI on Base
155
70
  npx fibx trade 20 USDC DAI
156
-
157
- # Swap on Monad (native token handled automatically)
158
71
  npx fibx trade 1 MON USDC --chain monad
159
72
  ```
160
73
 
161
- **Options:**
162
-
163
- - `--slippage <number>`: Set slippage tolerance (default: 0.5%)
164
- - `--approve-max`: Approve maximum amount (infinite approval) instead of exact amount (default: false)
165
- - `--json`: Output result as JSON
166
-
167
- ### Check Transaction Status
74
+ Options: `--slippage <n>` (default: 0.5%), `--approve-max`, `--json`
168
75
 
169
- Check the status of a transaction and get the explorer link.
76
+ ### Transaction Status
170
77
 
171
78
  ```bash
172
79
  npx fibx tx-status <hash>
173
- # Example:
174
- npx fibx tx-status 0x123...abc
175
- npx fibx tx-status 0x456...def --chain monad
80
+ npx fibx tx-status 0x123...abc --chain monad
176
81
  ```
177
82
 
178
- ### View Wallet Address
179
-
180
- Print your connected wallet address (Privy or Local):
83
+ ### Wallet Info
181
84
 
182
85
  ```bash
183
- npx fibx address
86
+ npx fibx address # Print wallet address
87
+ npx fibx wallets <email> # List active wallet
184
88
  ```
185
89
 
186
- ### List Wallets (Privy)
187
-
188
- List all wallets linked to a Privy user email:
90
+ ### Aave V3 (Base)
189
91
 
190
92
  ```bash
191
- npx fibx wallets <email>
192
- ```
193
-
194
- ### Aave V3 (Base Only)
195
-
196
- Interact with the Aave V3 lending protocol on the Base network.
197
-
198
- ```bash
199
- npx fibx aave <action> [amount] [token]
200
- ```
201
-
202
- **Actions:**
203
-
204
- - `status`: Check account health (Health Factor, LTV, Net Worth)
205
- - `supply`: Deposit assets to earn yield
206
- - `borrow`: Borrow assets (requires collateral)
207
- - `repay`: Repay debt (use `max` as amount to repay all)
208
- - `withdraw`: Withdraw assets (use `max` as amount to withdraw all)
209
-
210
- **Examples:**
211
-
212
- ```bash
213
- npx fibx aave status
214
- npx fibx aave supply 100 USDC
215
- npx fibx aave repay max USDC
216
- npx fibx aave withdraw max USDC
93
+ npx fibx aave status # Account health
94
+ npx fibx aave supply 100 USDC # Deposit
95
+ npx fibx aave borrow 50 USDC # Borrow
96
+ npx fibx aave repay max USDC # Repay all
97
+ npx fibx aave withdraw max USDC # Withdraw all
217
98
  ```
218
99
 
219
100
  ## Agent Skills
220
101
 
221
- Building an AI Agent? We provide a **Standardized Skill Set** optimized for LLMs.
222
-
223
- Check out the [fibx-skills](./fibx-skills) directory for:
224
-
225
- - **authenticate-wallet** — Email OTP login and private key import
226
- - **balance** — Check wallet balances on any supported chain
227
- - **send** — Send ETH or ERC-20 tokens
228
- - **trade** — Swap tokens via Fibrous aggregation
229
- - **aave** — Manage Aave V3 positions (Supply, Borrow, Repay, Withdraw)
230
- - **tx-status** — Verify transaction status and get explorer links
231
-
232
- ## Development
233
-
234
- ```bash
235
- git clone https://github.com/ahmetenesdur/fibx.git
236
- cd fibx
237
- pnpm install
238
- cp .env.example .env # Add your PRIVY_APP_ID and PRIVY_APP_SECRET
239
- ```
240
-
241
- **Available Scripts:**
242
-
243
- | Script | Description |
244
- | ---------------- | ---------------------------------- |
245
- | `pnpm dev <cmd>` | Run a command in development mode |
246
- | `pnpm build` | Compile TypeScript to `dist/` |
247
- | `pnpm typecheck` | Run type checking without emitting |
248
- | `pnpm lint` | Lint source files with ESLint |
249
- | `pnpm format` | Format code with Prettier |
250
-
251
- ## Architecture
252
-
253
- This CLI uses a **Hybrid Wallet** architecture:
254
-
255
- 1. **Authentication**:
256
- - **Privy**: Uses "Agentic" server-side wallets (ownerless) for automated signing.
257
- - **Local Key**: Direct private key import for standard execution without external dependencies.
258
- 2. **Viem**: Handles all blockchain interactions (RPC calls, transaction signing) using a unified `WalletClient` interface, abstracting away the underlying signer (Privy vs. Local).
259
- 3. **Fibrous**: Provides the routing and calldata for optimal token swaps on all supported chains, encapsulated in the `services/fibrous` module.
102
+ For AI agent integration, see the [fibx-skills](./fibx-skills) directory.
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCxF"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxF"}
@@ -1,27 +1,8 @@
1
- import { getPrivyClient } from "../../services/privy/client.js";
1
+ import { apiLogin } from "../../services/api/client.js";
2
2
  import { outputResult, outputError, withSpinner } from "../../lib/format.js";
3
3
  export async function authLoginCommand(email, opts) {
4
4
  try {
5
- getPrivyClient();
6
- await withSpinner("Sending OTP...", async () => {
7
- const appId = process.env.PRIVY_APP_ID;
8
- const appSecret = process.env.PRIVY_APP_SECRET;
9
- const credentials = Buffer.from(`${appId}:${appSecret}`).toString("base64");
10
- const res = await fetch("https://auth.privy.io/api/v1/passwordless/init", {
11
- method: "POST",
12
- headers: {
13
- "Content-Type": "application/json",
14
- Authorization: `Basic ${credentials}`,
15
- "privy-app-id": appId,
16
- },
17
- body: JSON.stringify({ email }),
18
- });
19
- if (!res.ok) {
20
- const body = await res.text().catch(() => "");
21
- throw new Error(`OTP init failed (${res.status}): ${body}`);
22
- }
23
- return res.json();
24
- }, opts);
5
+ await withSpinner("Sending OTP...", async () => apiLogin(email), opts);
25
6
  outputResult({
26
7
  email,
27
8
  message: `OTP sent to ${email}. Run: fibx auth verify ${email} <code>`,
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAmB;IACxE,IAAI,CAAC;QACJ,cAAc,EAAE,CAAC;QAEjB,MAAM,WAAW,CAChB,gBAAgB,EAChB,KAAK,IAAI,EAAE;YACV,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAa,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAiB,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE5E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,gDAAgD,EAAE;gBACzE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACR,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,SAAS,WAAW,EAAE;oBACrC,cAAc,EAAE,KAAK;iBACrB;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,YAAY,CACX;YACC,KAAK;YACL,OAAO,EAAE,eAAe,KAAK,2BAA2B,KAAK,SAAS;SACtE,EACD,IAAI,CACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAmB;IACxE,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAEvE,YAAY,CACX;YACC,KAAK;YACL,OAAO,EAAE,eAAe,KAAK,2BAA2B,KAAK,SAAS;SACtE,EACD,IAAI,CACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOjG,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -1,56 +1,23 @@
1
- import { getPrivyClient, createAgentWallet, findExistingWallet, saveWalletIdToUser, } from "../../services/privy/client.js";
1
+ import { apiVerify } from "../../services/api/client.js";
2
2
  import { saveSession } from "../../services/auth/session.js";
3
3
  import { outputResult, outputError, withSpinner } from "../../lib/format.js";
4
4
  export async function authVerifyCommand(email, code, opts) {
5
5
  try {
6
- const privy = getPrivyClient();
7
- const { userId, userToken } = await withSpinner("Verifying OTP...", async () => {
8
- const appId = process.env.PRIVY_APP_ID;
9
- const appSecret = process.env.PRIVY_APP_SECRET;
10
- const credentials = Buffer.from(`${appId}:${appSecret}`).toString("base64");
11
- const res = await fetch("https://auth.privy.io/api/v1/passwordless/authenticate", {
12
- method: "POST",
13
- headers: {
14
- "Content-Type": "application/json",
15
- Authorization: `Basic ${credentials}`,
16
- "privy-app-id": appId,
17
- },
18
- body: JSON.stringify({ email, code }),
19
- });
20
- if (!res.ok) {
21
- const body = await res.text().catch(() => "");
22
- throw new Error(`OTP verify failed (${res.status}): ${body}`);
23
- }
24
- const data = (await res.json());
25
- return { userId: data.user.id, userToken: data.privy_access_token };
26
- }, opts);
27
- // Check for existing wallet
28
- const existingWallet = await withSpinner("Checking for existing wallet...", async () => findExistingWallet(privy, email), opts);
29
- let wallet;
30
- let isExisting;
31
- if (existingWallet) {
32
- wallet = existingWallet;
33
- isExisting = true;
34
- }
35
- else {
36
- // Create new server wallet
37
- wallet = await withSpinner("Creating server wallet...", async () => createAgentWallet(privy), opts);
38
- // Link wallet to user
39
- await withSpinner("Linking wallet to user...", async () => saveWalletIdToUser(privy, userId, wallet.id), opts);
40
- isExisting = false;
41
- }
6
+ // 1. Verify OTP + provision wallet via backend
7
+ const result = await withSpinner("Verifying OTP...", async () => apiVerify(email, code), opts);
8
+ // 2. Save session locally (store backend JWT instead of Privy token)
42
9
  await saveSession({
43
- userId,
44
- walletId: wallet.id,
45
- walletAddress: wallet.address,
46
- userJwt: userToken,
10
+ userId: result.userId,
11
+ walletId: result.walletId,
12
+ walletAddress: result.walletAddress,
13
+ userJwt: result.token,
47
14
  createdAt: new Date().toISOString(),
48
15
  type: "privy",
49
16
  });
50
17
  outputResult({
51
- walletAddress: wallet.address,
52
- walletId: wallet.id,
53
- message: isExisting
18
+ walletAddress: result.walletAddress,
19
+ walletId: result.walletId,
20
+ message: result.isExisting
54
21
  ? "Existing wallet found and connected. You're ready to go!"
55
22
  : "New wallet created and session saved. You're ready to go!",
56
23
  }, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,KAAa,EACb,IAAY,EACZ,IAAmB;IAEnB,IAAI,CAAC;QACJ,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC/B,kBAAkB,EAClB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAClC,IAAI,CACJ,CAAC;QAEF,qEAAqE;QACrE,MAAM,WAAW,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,CAAC,aAA8B;YACpD,OAAO,EAAE,MAAM,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,OAAO;SACb,CAAC,CAAC;QAEH,YAAY,CACX;YACC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,UAAU;gBACzB,CAAC,CAAC,0DAA0D;gBAC5D,CAAC,CAAC,2DAA2D;SAC9D,EACD,IAAI,CACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC"}
@@ -89,12 +89,10 @@ function isValidAction(action) {
89
89
  async function attemptSessionLogin(aave, chainConfig) {
90
90
  try {
91
91
  const { loadSession } = await import("../../services/auth/session.js");
92
- const { getPrivyClient } = await import("../../services/privy/client.js");
93
92
  const { getWalletClient } = await import("../../services/chain/client.js");
94
93
  const session = loadSession();
95
94
  if (session) {
96
- const privy = session.type === "privy" ? getPrivyClient() : null;
97
- const walletClient = getWalletClient(privy, session, chainConfig);
95
+ const walletClient = getWalletClient(session, chainConfig);
98
96
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
97
  aave.setWalletClient(walletClient);
100
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aave.js","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"AAAA,OAAO,GAAiB,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAoB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAc,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EACN,+BAA+B,EAC/B,gCAAgC,GAChC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAS/C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC/B,MAAc,EACd,MAAc,EACd,WAAmB,EACnB,IAAmB,EAClB,EAAE;IACH,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,6CAA6C;YAC7C,MAAM,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACR,qFAAqF;QACtF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAChF,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC,CAAC;YACtF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;YACxD,OAAO;QACR,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;QACR,CAAC;QAED,gBAAgB;QAChB,OAAO,CAAC,IAAI,GAAG,mBAAmB,WAAW,KAAK,CAAC;QACnD,IAAI,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzD,0CAA0C;QAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACtD,KAAK,GAAG;gBACP,GAAG,KAAK;gBACR,OAAO,EAAE,WAAW,CAAC,oBAA+B;gBACpD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,eAAe;aACrB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAEnD,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACZ,MAAM,YAAY,CACjB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,OAAO,EACP,IAAI,EACJ,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,YAAY,CACtD,CAAC;gBACF,MAAM;YACP,KAAK,QAAQ;gBACZ,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM;YACP,KAAK,OAAO;gBACX,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM;YACP,KAAK,UAAU;gBACd,MAAM,cAAc,CACnB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,YAAY,CACtD,CAAC;gBACF,MAAM;QACR,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC,CAAC;AAEF,UAAU;AAEV,SAAS,aAAa,CAAC,MAAc;IACpC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAiB,EAAE,WAAwB;IAC7E,IAAI,CAAC;QACJ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QACvE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC1E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAClE,8DAA8D;YAC9D,IAAI,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,8BAA8B;IAC/B,CAAC;AACF,CAAC;AAED,kBAAkB;AAElB,KAAK,UAAU,YAAY,CAC1B,IAAiB,EACjB,WAAoB,EACpB,IAAmB,EACnB,OAAY;IAEZ,OAAO,CAAC,IAAI,GAAG,qBAAqB,WAAW,KAAK,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,OAAO;IACR,CAAC;IAED,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,EAAE,GAAG,gCAAgC;QAAE,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;SAC1D,IAAI,EAAE,GAAG,+BAA+B;QAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;IAEtE,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,YAAY,CACX;QACC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC;QACnC,UAAU,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAChE,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpD,kBAAkB,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACzE,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAC1B,IAAiB,EACjB,KAAY,EACZ,MAAc,EACd,WAAoB,EACpB,WAAwB,EACxB,OAAY,EACZ,IAAmB,EACnB,cAAuB,KAAK;IAE5B,gBAAgB;IAChB,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,WAAW,CACjC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EACtD,WAAW,EACX,WAAW,CACX,CAAC;IACF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CACpE,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,eAAe;QACxC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC;IAEN,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjF,MAAM,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QAE5D,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,MAAM,CACX,YAAY,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,UAAU,WAAW,CACjE,iBAAiB,EACjB,EAAE,CACF,mBAAmB,MAAM,GAAG,CAC7B,CACD,CAAC;YACF,OAAO;QACR,CAAC;QAED,2BAA2B;QAC3B,IAAI,iBAAiB,GAAG,YAAY,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAC;YACpD,OAAO,CAAC,IAAI,GAAG,YAAY,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC;YACxE,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;SAAM,CAAC;QACP,IAAI,iBAAiB,GAAG,YAAY,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,MAAM,CACX,YAAY,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,IACzD,KAAK,CAAC,MACP,cAAc,MAAM,GAAG,CACvB,CACD,CAAC;YACF,OAAO;QACR,CAAC;IACF,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;IAC1C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAkB,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE5C,YAAY,CACX;QACC,MAAM,EAAE,QAAQ;QAChB,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;KACb,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAC1B,IAAiB,EACjB,KAAY,EACZ,MAAc,EACd,OAAY,EACZ,IAAmB;IAEnB,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;IAC1C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAkB,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAE5C,YAAY,CACX;QACC,MAAM,EAAE,QAAQ;QAChB,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;KACb,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACzB,IAAiB,EACjB,KAAY,EACZ,MAAc,EACd,OAAY,EACZ,IAAmB;IAEnB,OAAO,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACzC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAkB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE3C,YAAY,CACX;QACC,MAAM,EAAE,OAAO;QACf,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;KACb,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC5B,IAAiB,EACjB,KAAY,EACZ,MAAc,EACd,OAAY,EACZ,IAAmB,EACnB,cAAuB,KAAK;IAE5B,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC5C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAkB,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CACX;QACC,MAAM,EAAE,UAAU;QAClB,MAAM;QACN,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;QACrD,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,MAAM;KACb,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"aave.js","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../../src/commands/trade/swap.ts"],"names":[],"mappings":"AAWA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG,UAAU,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAqHf"}
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../../src/commands/trade/swap.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG,UAAU,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,YAAY,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CA0If"}
@@ -1,5 +1,4 @@
1
1
  import { requireSession } from "../../services/auth/session.js";
2
- import { getPrivyClient } from "../../services/privy/client.js";
3
2
  import { getWalletClient, getPublicClient } from "../../services/chain/client.js";
4
3
  import { getChainConfig } from "../../services/chain/constants.js";
5
4
  import { getAllowance, encodeApprove } from "../../services/chain/erc20.js";
@@ -16,8 +15,7 @@ export async function tradeCommand(amount, from, to, opts) {
16
15
  const chainName = globalOpts.chain || "base";
17
16
  const chain = getChainConfig(chainName);
18
17
  const session = requireSession();
19
- const privy = getPrivyClient();
20
- const walletClient = getWalletClient(privy, session, chain);
18
+ const walletClient = getWalletClient(session, chain);
21
19
  const publicClient = getPublicClient(chain);
22
20
  const wallet = session.walletAddress;
23
21
  const [tokenIn, tokenOut] = await withSpinner(`Resolving tokens on ${chain.name}...`, async () => Promise.all([resolveToken(from, chain), resolveToken(to, chain)]), opts);
@@ -38,22 +36,36 @@ export async function tradeCommand(amount, from, to, opts) {
38
36
  if (currentAllowance < amountBaseUnits) {
39
37
  await withSpinner("Approving token spend...", async () => {
40
38
  const amountToApprove = opts.approveMax
41
- ? 115792089237316195423570985008687907853269984665640564039457584007913129639935n // Max Uint256
39
+ ? 115792089237316195423570985008687907853269984665640564039457584007913129639935n
42
40
  : amountBaseUnits;
43
41
  const approveData = encodeApprove(routerAddress, amountToApprove);
44
- return walletClient.sendTransaction({
42
+ const approveTxHash = await walletClient.sendTransaction({
45
43
  to: tokenIn.address,
46
44
  data: approveData,
47
45
  value: 0n,
48
46
  });
47
+ await publicClient.waitForTransactionReceipt({
48
+ hash: approveTxHash,
49
+ confirmations: 1,
50
+ });
51
+ // Wait for allowance to be updated on-chain (handle RPC lag)
52
+ let retries = 0;
53
+ const maxRetries = 15; // 30 seconds max
54
+ while (retries < maxRetries) {
55
+ const newAllowance = await getAllowance(publicClient, tokenIn.address, wallet, routerAddress);
56
+ if (newAllowance >= amountToApprove) {
57
+ break;
58
+ }
59
+ await new Promise((resolve) => setTimeout(resolve, 2000));
60
+ retries++;
61
+ }
62
+ return approveTxHash;
49
63
  }, opts);
50
64
  }
51
65
  }
52
66
  const hash = await withSpinner(`Swapping ${amount} ${tokenIn.symbol} → ${tokenOut.symbol}...`, async () => {
53
67
  const swapData = encodeSwapCalldata(routeData.calldata, chain);
54
68
  const value = isNativeInput ? amountBaseUnits : 0n;
55
- // Simulate Swap (using estimateGas as we have raw calldata)
56
- // We use call/estimateGas to ensure it doesn't revert
57
69
  try {
58
70
  await publicClient.estimateGas({
59
71
  account: wallet,
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../../src/commands/trade/swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../../src/commands/trade/swap.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type OutputOptions } from "../../lib/format.js";
2
- export declare function walletsCommand(email: string, opts: OutputOptions): Promise<void>;
2
+ export declare function walletsCommand(_email: string, opts: OutputOptions): Promise<void>;
3
3
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/wallet/list.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUjG,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CtF"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/wallet/list.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvF"}
@@ -1,35 +1,27 @@
1
- import { getPrivyClient } from "../../services/privy/client.js";
2
- import { outputResult, outputError, withSpinner } from "../../lib/format.js";
3
- export async function walletsCommand(email, opts) {
1
+ import { loadSession } from "../../services/auth/session.js";
2
+ import { outputResult, outputError } from "../../lib/format.js";
3
+ export async function walletsCommand(_email, opts) {
4
4
  try {
5
- const privy = getPrivyClient();
6
- const user = await withSpinner(`Fetching wallets for ${email}...`, async () => privy.users().getByEmailAddress({ address: email }), opts);
7
- const wallets = user.linked_accounts.filter((a) => (a.type === "wallet" || a.type === "smart_wallet") && "id" in a);
8
- if (wallets.length === 0) {
9
- outputResult({ message: "No wallets found for this user." }, opts);
5
+ const session = loadSession();
6
+ if (!session) {
7
+ outputResult({ message: "No active session. Run `fibx auth login <email>` first." }, opts);
10
8
  return;
11
9
  }
12
- // Format for output
13
- const walletList = wallets.map((w) => ({
14
- address: w.address,
15
- id: w.id,
16
- chainType: w.chain_type,
17
- connectorType: w.connector_type,
18
- firstVerifiedAt: w.first_verified_at
19
- ? new Date(w.first_verified_at * 1000).toISOString()
20
- : "N/A",
21
- }));
10
+ const walletInfo = {
11
+ address: session.walletAddress,
12
+ id: session.walletId ?? "N/A",
13
+ type: session.type,
14
+ createdAt: session.createdAt,
15
+ };
22
16
  if (opts.json) {
23
- console.log(JSON.stringify(walletList, null, 2));
17
+ console.log(JSON.stringify([walletInfo], null, 2));
24
18
  }
25
19
  else {
26
- console.log(`Found ${wallets.length} wallet(s):`);
27
- walletList.forEach((w) => {
28
- console.log(`\nAddress: ${w.address}`);
29
- console.log(`ID: ${w.id}`);
30
- console.log(`Created: ${w.firstVerifiedAt}`);
31
- console.log(`Type: ${w.connectorType} (${w.chainType})`);
32
- });
20
+ console.log("Active wallet:");
21
+ console.log(`\nAddress: ${walletInfo.address}`);
22
+ console.log(`ID: ${walletInfo.id}`);
23
+ console.log(`Type: ${walletInfo.type}`);
24
+ console.log(`Created: ${walletInfo.createdAt}`);
33
25
  }
34
26
  }
35
27
  catch (error) {