fibx 0.2.4 → 0.3.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 (182) hide show
  1. package/README.md +38 -164
  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.d.ts.map +1 -1
  9. package/dist/commands/defi/aave.js +7 -9
  10. package/dist/commands/defi/aave.js.map +1 -1
  11. package/dist/commands/trade/swap.d.ts.map +1 -1
  12. package/dist/commands/trade/swap.js +20 -9
  13. package/dist/commands/trade/swap.js.map +1 -1
  14. package/dist/commands/wallet/balance.js +1 -1
  15. package/dist/commands/wallet/balance.js.map +1 -1
  16. package/dist/commands/wallet/list.d.ts +1 -1
  17. package/dist/commands/wallet/list.d.ts.map +1 -1
  18. package/dist/commands/wallet/list.js +18 -26
  19. package/dist/commands/wallet/list.js.map +1 -1
  20. package/dist/commands/wallet/send.d.ts.map +1 -1
  21. package/dist/commands/wallet/send.js +6 -7
  22. package/dist/commands/wallet/send.js.map +1 -1
  23. package/dist/index.js +10 -6
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/config.d.ts +1 -0
  26. package/dist/lib/config.d.ts.map +1 -1
  27. package/dist/lib/config.js +3 -0
  28. package/dist/lib/config.js.map +1 -1
  29. package/dist/lib/errors.d.ts +6 -2
  30. package/dist/lib/errors.d.ts.map +1 -1
  31. package/dist/lib/errors.js +4 -2
  32. package/dist/lib/errors.js.map +1 -1
  33. package/dist/services/api/client.d.ts +34 -0
  34. package/dist/services/api/client.d.ts.map +1 -0
  35. package/dist/services/api/client.js +68 -0
  36. package/dist/services/api/client.js.map +1 -0
  37. package/dist/services/chain/client.d.ts +17 -18
  38. package/dist/services/chain/client.d.ts.map +1 -1
  39. package/dist/services/chain/client.js +6 -6
  40. package/dist/services/chain/client.js.map +1 -1
  41. package/dist/services/chain/constants.d.ts +7 -8
  42. package/dist/services/chain/constants.d.ts.map +1 -1
  43. package/dist/services/chain/constants.js +11 -8
  44. package/dist/services/chain/constants.js.map +1 -1
  45. package/dist/services/chain/nonceManager.d.ts +0 -1
  46. package/dist/services/chain/nonceManager.d.ts.map +1 -1
  47. package/dist/services/chain/nonceManager.js +2 -4
  48. package/dist/services/chain/nonceManager.js.map +1 -1
  49. package/dist/services/defi/aave.d.ts +6 -1
  50. package/dist/services/defi/aave.d.ts.map +1 -1
  51. package/dist/services/defi/aave.js +192 -73
  52. package/dist/services/defi/aave.js.map +1 -1
  53. package/dist/services/defi/abi/aave.d.ts +60 -0
  54. package/dist/services/defi/abi/aave.d.ts.map +1 -1
  55. package/dist/services/defi/abi/aave.js +41 -0
  56. package/dist/services/defi/abi/aave.js.map +1 -1
  57. package/dist/services/defi/constants.d.ts +1 -2
  58. package/dist/services/defi/constants.d.ts.map +1 -1
  59. package/dist/services/defi/constants.js +2 -2
  60. package/dist/services/defi/constants.js.map +1 -1
  61. package/dist/services/fibrous/abi/citrea.d.ts +772 -63
  62. package/dist/services/fibrous/abi/citrea.d.ts.map +1 -1
  63. package/dist/services/fibrous/abi/citrea.js.map +1 -1
  64. package/dist/services/fibrous/abi/hyperevm.d.ts +772 -63
  65. package/dist/services/fibrous/abi/hyperevm.d.ts.map +1 -1
  66. package/dist/services/fibrous/abi/hyperevm.js.map +1 -1
  67. package/dist/services/fibrous/abi/monad.d.ts +772 -63
  68. package/dist/services/fibrous/abi/monad.d.ts.map +1 -1
  69. package/dist/services/fibrous/abi/monad.js.map +1 -1
  70. package/dist/services/privy/account.d.ts +5 -2
  71. package/dist/services/privy/account.d.ts.map +1 -1
  72. package/dist/services/privy/account.js +19 -21
  73. package/dist/services/privy/account.js.map +1 -1
  74. package/dist/services/privy/client.d.ts +1 -14
  75. package/dist/services/privy/client.d.ts.map +1 -1
  76. package/dist/services/privy/client.js +6 -62
  77. package/dist/services/privy/client.js.map +1 -1
  78. package/package.json +1 -2
  79. package/dist/chain/chains.d.ts +0 -14
  80. package/dist/chain/chains.d.ts.map +0 -1
  81. package/dist/chain/chains.js +0 -21
  82. package/dist/chain/chains.js.map +0 -1
  83. package/dist/chain/erc20.d.ts +0 -6
  84. package/dist/chain/erc20.d.ts.map +0 -1
  85. package/dist/chain/erc20.js +0 -72
  86. package/dist/chain/erc20.js.map +0 -1
  87. package/dist/chain/viem.d.ts +0 -24029
  88. package/dist/chain/viem.d.ts.map +0 -1
  89. package/dist/chain/viem.js +0 -74
  90. package/dist/chain/viem.js.map +0 -1
  91. package/dist/cli.d.ts +0 -3
  92. package/dist/cli.d.ts.map +0 -1
  93. package/dist/cli.js +0 -85
  94. package/dist/cli.js.map +0 -1
  95. package/dist/commands/address.d.ts +0 -3
  96. package/dist/commands/address.d.ts.map +0 -1
  97. package/dist/commands/address.js +0 -15
  98. package/dist/commands/address.js.map +0 -1
  99. package/dist/commands/auth-login.d.ts +0 -3
  100. package/dist/commands/auth-login.d.ts.map +0 -1
  101. package/dist/commands/auth-login.js +0 -34
  102. package/dist/commands/auth-login.js.map +0 -1
  103. package/dist/commands/auth-verify.d.ts +0 -3
  104. package/dist/commands/auth-verify.d.ts.map +0 -1
  105. package/dist/commands/auth-verify.js +0 -64
  106. package/dist/commands/auth-verify.js.map +0 -1
  107. package/dist/commands/balance.d.ts +0 -3
  108. package/dist/commands/balance.d.ts.map +0 -1
  109. package/dist/commands/balance.js +0 -55
  110. package/dist/commands/balance.js.map +0 -1
  111. package/dist/commands/send.d.ts +0 -3
  112. package/dist/commands/send.d.ts.map +0 -1
  113. package/dist/commands/send.js +0 -58
  114. package/dist/commands/send.js.map +0 -1
  115. package/dist/commands/status.d.ts +0 -3
  116. package/dist/commands/status.d.ts.map +0 -1
  117. package/dist/commands/status.js +0 -31
  118. package/dist/commands/status.js.map +0 -1
  119. package/dist/commands/trade.d.ts +0 -7
  120. package/dist/commands/trade.d.ts.map +0 -1
  121. package/dist/commands/trade.js +0 -69
  122. package/dist/commands/trade.js.map +0 -1
  123. package/dist/commands/wallets.d.ts +0 -3
  124. package/dist/commands/wallets.d.ts.map +0 -1
  125. package/dist/commands/wallets.js +0 -39
  126. package/dist/commands/wallets.js.map +0 -1
  127. package/dist/fibrous/abi/base.d.ts +0 -768
  128. package/dist/fibrous/abi/base.d.ts.map +0 -1
  129. package/dist/fibrous/abi/base.js +0 -984
  130. package/dist/fibrous/abi/base.js.map +0 -1
  131. package/dist/fibrous/balances.d.ts +0 -14
  132. package/dist/fibrous/balances.d.ts.map +0 -1
  133. package/dist/fibrous/balances.js +0 -26
  134. package/dist/fibrous/balances.js.map +0 -1
  135. package/dist/fibrous/health.d.ts +0 -11
  136. package/dist/fibrous/health.d.ts.map +0 -1
  137. package/dist/fibrous/health.js +0 -18
  138. package/dist/fibrous/health.js.map +0 -1
  139. package/dist/fibrous/route.d.ts +0 -47
  140. package/dist/fibrous/route.d.ts.map +0 -1
  141. package/dist/fibrous/route.js +0 -60
  142. package/dist/fibrous/route.js.map +0 -1
  143. package/dist/fibrous/tokens.d.ts +0 -10
  144. package/dist/fibrous/tokens.d.ts.map +0 -1
  145. package/dist/fibrous/tokens.js +0 -37
  146. package/dist/fibrous/tokens.js.map +0 -1
  147. package/dist/format/output.d.ts +0 -8
  148. package/dist/format/output.d.ts.map +0 -1
  149. package/dist/format/output.js +0 -69
  150. package/dist/format/output.js.map +0 -1
  151. package/dist/utils/cache.d.ts +0 -3
  152. package/dist/utils/cache.d.ts.map +0 -1
  153. package/dist/utils/cache.js +0 -23
  154. package/dist/utils/cache.js.map +0 -1
  155. package/dist/utils/config.d.ts +0 -7
  156. package/dist/utils/config.d.ts.map +0 -1
  157. package/dist/utils/config.js +0 -8
  158. package/dist/utils/config.js.map +0 -1
  159. package/dist/utils/errors.d.ts +0 -22
  160. package/dist/utils/errors.d.ts.map +0 -1
  161. package/dist/utils/errors.js +0 -29
  162. package/dist/utils/errors.js.map +0 -1
  163. package/dist/utils/parseAmount.d.ts +0 -3
  164. package/dist/utils/parseAmount.d.ts.map +0 -1
  165. package/dist/utils/parseAmount.js +0 -10
  166. package/dist/utils/parseAmount.js.map +0 -1
  167. package/dist/utils/validation.d.ts +0 -6
  168. package/dist/utils/validation.d.ts.map +0 -1
  169. package/dist/utils/validation.js +0 -24
  170. package/dist/utils/validation.js.map +0 -1
  171. package/dist/wallet/policy.d.ts +0 -2
  172. package/dist/wallet/policy.d.ts.map +0 -1
  173. package/dist/wallet/policy.js +0 -3
  174. package/dist/wallet/policy.js.map +0 -1
  175. package/dist/wallet/privy.d.ts +0 -15
  176. package/dist/wallet/privy.d.ts.map +0 -1
  177. package/dist/wallet/privy.js +0 -63
  178. package/dist/wallet/privy.js.map +0 -1
  179. package/dist/wallet/session.d.ts +0 -15
  180. package/dist/wallet/session.d.ts.map +0 -1
  181. package/dist/wallet/session.js +0 -47
  182. package/dist/wallet/session.js.map +0 -1
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
- - **ETH & Token Transfers**: Send native assets or any ERC-20 token with a simple 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 20
23
- - pnpm
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)**
25
+ ### Authentication
33
26
 
34
27
  ```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:
46
-
47
- ```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
31
 
74
- ### 3. Alternative: Import Private Key
75
-
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
34
 
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
-
90
- ```bash
35
+ # Logout
91
36
  npx fibx auth logout
92
- ```
93
-
94
- ### 5. Check Status
95
-
96
- Verify that you are authenticated and the API is healthy:
97
37
 
98
- ```bash
38
+ # Check status
99
39
  npx fibx status
100
40
  ```
101
41
 
@@ -103,126 +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):**
57
+ ### Send
128
58
 
129
59
  ```bash
130
- npx fibx send 0.001 0xRecipientAddress
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
131
63
  ```
132
64
 
133
- **Send ERC-20 (e.g., USDC):**
65
+ ### Swap
134
66
 
135
67
  ```bash
136
- npx fibx send 10 0xRecipientAddress USDC
137
- ```
138
-
139
- ### Swap Tokens
140
-
141
- Swap tokens using Fibrous Finance's aggregator.
142
-
143
- ```bash
144
- npx fibx trade <amount> <from_token> <to_token>
145
- ```
146
-
147
- **Examples:**
148
-
149
- ```bash
150
- # Swap 0.0001 ETH to USDC
68
+ npx fibx trade <amount> <from> <to>
151
69
  npx fibx trade 0.0001 ETH USDC
152
-
153
- # Swap 20 USDC to DAI on Base
154
70
  npx fibx trade 20 USDC DAI
155
-
156
- # Swap on Monad
157
71
  npx fibx trade 1 MON USDC --chain monad
158
72
  ```
159
73
 
160
- **Options:**
161
-
162
- - `--slippage <number>`: Set slippage tolerance (default: 0.5%)
163
- - `--approve-max`: Approve maximum amount (infinite approval) instead of exact amount (default: false)
164
- - `--json`: Output result as JSON
165
-
166
- ### Check Transaction Status
74
+ Options: `--slippage <n>` (default: 0.5%), `--approve-max`, `--json`
167
75
 
168
- Check the status of a transaction and get the explorer link.
76
+ ### Transaction Status
169
77
 
170
78
  ```bash
171
79
  npx fibx tx-status <hash>
172
- # Example:
173
- npx fibx tx-status 0x123...abc
174
- npx fibx tx-status 0x456...def --chain monad
80
+ npx fibx tx-status 0x123...abc --chain monad
175
81
  ```
176
82
 
177
- ### View Wallet Address
178
-
179
- Print your connected wallet address (Privy or Local):
83
+ ### Wallet Info
180
84
 
181
85
  ```bash
182
- npx fibx address
86
+ npx fibx address # Print wallet address
87
+ npx fibx wallets <email> # List active wallet
183
88
  ```
184
89
 
185
- ### Aave V3 (Base Only)
186
-
187
- Interact with Aave V3 protocols on the Base network.
90
+ ### Aave V3 (Base)
188
91
 
189
92
  ```bash
190
- npx fibx aave <action> <amount> <token>
191
- ```
192
-
193
- **Actions:**
194
-
195
- - `status`: Check account health (HF, LTV)
196
- - `supply`: Deposit assets
197
- - `borrow`: Borrow assets (requires collateral)
198
- - `repay`: Repay debt (use `max` to repay all)
199
- - `withdraw`: Withdraw assets (use `max` to withdraw all)
200
-
201
- **Example:**
202
-
203
- ```bash
204
- npx fibx aave supply 100 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
205
98
  ```
206
99
 
207
100
  ## Agent Skills
208
101
 
209
- Building an AI Agent? We provide a **Standardized Skill Set** optimized for LLMs.
210
-
211
- Check out the [fibx-skills](https://github.com/ahmetenesdur/fibx-skills) directory for:
212
-
213
- ## Development
214
-
215
- 1. Clone the repo
216
- 2. `pnpm install`
217
- 3. `cp .env.example .env` (add secrets)
218
- 4. Run commands with `pnpm dev <command>`
219
-
220
- # Architecture
221
-
222
- This CLI uses a **Hybrid Wallet** architecture:
223
-
224
- 1. **Authentication**:
225
- - **Privy**: Uses "Agentic" server-side wallets (ownerless) for automated signing.
226
- - **Local Key**: Direct private key import for standard execution without external dependencies.
227
- 2. **Viem**: Handles all blockchain interactions (RPC calls, transaction signing) using a unified `WalletClient` interface, abstracting away the underlying signer (Privy vs. Local).
228
- 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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aave.d.ts","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"AAgBA,UAAU,aAAa;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,WAAW,GACvB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,MAAM,aAAa,kBAkGnB,CAAC"}
1
+ {"version":3,"file":"aave.d.ts","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"AAeA,UAAU,aAAa;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,WAAW,GACvB,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,MAAM,aAAa,kBAkGnB,CAAC"}
@@ -4,7 +4,7 @@ import { AaveService } from "../../services/defi/aave.js";
4
4
  import { getChainConfig } from "../../services/chain/constants.js";
5
5
  import { resolveToken } from "../../services/fibrous/tokens.js";
6
6
  import { getBalances } from "../../services/fibrous/balances.js";
7
- import { HEALTH_FACTOR_WARNING_THRESHOLD, HEALTH_FACTOR_CRITICAL_THRESHOLD, WETH_BASE_ADDRESS, } from "../../services/defi/constants.js";
7
+ import { HEALTH_FACTOR_WARNING_THRESHOLD, HEALTH_FACTOR_CRITICAL_THRESHOLD, } from "../../services/defi/constants.js";
8
8
  import { outputError, outputResult } from "../../lib/format.js";
9
9
  import { getPublicClient } from "../../services/chain/client.js";
10
10
  import { formatUnits, parseUnits } from "viem";
@@ -14,7 +14,7 @@ export const aaveCommand = async (action, amount, tokenSymbol, opts) => {
14
14
  // Aave V3 is currently Base-only
15
15
  const chainConfig = getChainConfig("base");
16
16
  // Initialize Service
17
- const aave = new AaveService();
17
+ const aave = new AaveService(chainConfig);
18
18
  try {
19
19
  // Try to load session (Privy or Private Key)
20
20
  await attemptSessionLogin(aave, chainConfig);
@@ -56,7 +56,7 @@ export const aaveCommand = async (action, amount, tokenSymbol, opts) => {
56
56
  if (token.address === chainConfig.nativeTokenAddress) {
57
57
  token = {
58
58
  ...token,
59
- address: WETH_BASE_ADDRESS,
59
+ address: chainConfig.wrappedNativeAddress,
60
60
  symbol: "WETH",
61
61
  name: "Wrapped Ether",
62
62
  };
@@ -64,7 +64,7 @@ export const aaveCommand = async (action, amount, tokenSymbol, opts) => {
64
64
  spinner.text = "Interacting with Aave Protocol...";
65
65
  switch (action) {
66
66
  case "supply":
67
- await handleSupply(aave, token, amount, userAddress, chainConfig, spinner, opts, tokenSymbol.toUpperCase() === "ETH");
67
+ await handleSupply(aave, token, amount, userAddress, chainConfig, spinner, opts, tokenSymbol.toUpperCase() === chainConfig.nativeSymbol);
68
68
  break;
69
69
  case "borrow":
70
70
  await handleBorrow(aave, token, amount, spinner, opts);
@@ -73,7 +73,7 @@ export const aaveCommand = async (action, amount, tokenSymbol, opts) => {
73
73
  await handleRepay(aave, token, amount, spinner, opts);
74
74
  break;
75
75
  case "withdraw":
76
- await handleWithdraw(aave, token, amount, spinner, opts, tokenSymbol.toUpperCase() === "ETH");
76
+ await handleWithdraw(aave, token, amount, spinner, opts, tokenSymbol.toUpperCase() === chainConfig.nativeSymbol);
77
77
  break;
78
78
  }
79
79
  }
@@ -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
  }
@@ -210,7 +208,7 @@ async function handleWithdraw(aave, token, amount, spinner, opts, isNativeETH =
210
208
  outputResult({
211
209
  action: "Withdraw",
212
210
  amount,
213
- token: isNativeETH ? "ETH" : token.symbol,
211
+ token: isNativeETH ? "ETH (unwrapped)" : token.symbol,
214
212
  txHash: tx,
215
213
  chain: "base",
216
214
  }, { json: !!opts.json });
@@ -1 +1 @@
1
- {"version":3,"file":"aave.js","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"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"}
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,CAsHf"}
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,14 +15,12 @@ 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);
24
22
  const amountBaseUnits = parseAmount(amount, tokenIn.decimals);
25
- const isNativeInput = tokenIn.address.toLowerCase() === chain.nativeTokenAddress.toLowerCase() ||
26
- tokenIn.symbol.toUpperCase() === "ETH";
23
+ const isNativeInput = tokenIn.address.toLowerCase() === chain.nativeTokenAddress.toLowerCase();
27
24
  const routeData = await withSpinner("Finding best route...", async () => {
28
25
  return getRouteAndCallData({
29
26
  amount: amountBaseUnits.toString(),
@@ -39,22 +36,36 @@ export async function tradeCommand(amount, from, to, opts) {
39
36
  if (currentAllowance < amountBaseUnits) {
40
37
  await withSpinner("Approving token spend...", async () => {
41
38
  const amountToApprove = opts.approveMax
42
- ? 115792089237316195423570985008687907853269984665640564039457584007913129639935n // Max Uint256
39
+ ? 115792089237316195423570985008687907853269984665640564039457584007913129639935n
43
40
  : amountBaseUnits;
44
41
  const approveData = encodeApprove(routerAddress, amountToApprove);
45
- return walletClient.sendTransaction({
42
+ const approveTxHash = await walletClient.sendTransaction({
46
43
  to: tokenIn.address,
47
44
  data: approveData,
48
45
  value: 0n,
49
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;
50
63
  }, opts);
51
64
  }
52
65
  }
53
66
  const hash = await withSpinner(`Swapping ${amount} ${tokenIn.symbol} → ${tokenOut.symbol}...`, async () => {
54
67
  const swapData = encodeSwapCalldata(routeData.calldata, chain);
55
68
  const value = isNativeInput ? amountBaseUnits : 0n;
56
- // Simulate Swap (using estimateGas as we have raw calldata)
57
- // We use call/estimateGas to ensure it doesn't revert
58
69
  try {
59
70
  await publicClient.estimateGas({
60
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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAOjG,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,MAAc,EACd,IAAY,EACZ,EAAU,EACV,IAAkB;IAElB,IAAI,CAAC;QACJ,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,UAAU,GAAG,IAAqC,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC;QAC7C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAwB,CAAC;QAEhD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,WAAW,CAC5C,uBAAuB,KAAK,CAAC,IAAI,KAAK,EACtC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAC7E,IAAI,CACJ,CAAC;QAEF,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;QAE1E,MAAM,SAAS,GAAG,MAAM,WAAW,CAClC,uBAAuB,EACvB,KAAK,IAAI,EAAE;YACV,OAAO,mBAAmB,CACzB;gBACC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;gBAClC,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB;gBAC3C,WAAW,EAAE,MAAM;aACnB,EACD,KAAK,CACL,CAAC;QACH,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,MAAM,aAAa,GAAG,SAAS,CAAC,cAAyB,CAAC;QAE1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAC1C,YAAY,EACZ,OAAO,CAAC,OAAkB,EAC1B,MAAM,EACN,aAAa,CACb,CAAC;YAEF,IAAI,gBAAgB,GAAG,eAAe,EAAE,CAAC;gBACxC,MAAM,WAAW,CAChB,0BAA0B,EAC1B,KAAK,IAAI,EAAE;oBACV,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU;wBACtC,CAAC,CAAC,+EAA+E;wBACjF,CAAC,CAAC,eAAe,CAAC;oBACnB,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;oBAClE,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;wBACxD,EAAE,EAAE,OAAO,CAAC,OAAkB;wBAC9B,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,EAAE;qBACT,CAAC,CAAC;oBAEH,MAAM,YAAY,CAAC,yBAAyB,CAAC;wBAC5C,IAAI,EAAE,aAAa;wBACnB,aAAa,EAAE,CAAC;qBAChB,CAAC,CAAC;oBAEH,6DAA6D;oBAC7D,IAAI,OAAO,GAAG,CAAC,CAAC;oBAChB,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,iBAAiB;oBACxC,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;wBAC7B,MAAM,YAAY,GAAG,MAAM,YAAY,CACtC,YAAY,EACZ,OAAO,CAAC,OAAkB,EAC1B,MAAM,EACN,aAAa,CACb,CAAC;wBACF,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;4BACrC,MAAM;wBACP,CAAC;wBACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC1D,OAAO,EAAE,CAAC;oBACX,CAAC;oBAED,OAAO,aAAa,CAAC;gBACtB,CAAC,EACD,IAAI,CACJ,CAAC;YACH,CAAC;QACF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAC7B,YAAY,MAAM,IAAI,OAAO,CAAC,MAAM,MAAM,QAAQ,CAAC,MAAM,KAAK,EAC9D,KAAK,IAAI,EAAE;YACV,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnD,IAAI,CAAC;gBACJ,MAAM,YAAY,CAAC,WAAW,CAAC;oBAC9B,OAAO,EAAE,MAAM;oBACf,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACd,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC,eAAe,CAAC;gBACnC,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE3F,YAAY,CACX;YACC,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,KAAK,CAAC,IAAI;SACjB,EACD,IAAI,CACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC"}
@@ -30,7 +30,7 @@ export async function balanceCommand(opts) {
30
30
  };
31
31
  }, opts);
32
32
  const result = {};
33
- result["ETH"] = balances.eth;
33
+ result[chainConfig.nativeSymbol] = balances.eth;
34
34
  for (const item of balances.tokens) {
35
35
  const balanceVal = parseFloat(item.balance);
36
36
  if (balanceVal > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAmB;IACvD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,WAAW,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC;YAC7E,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,IAAqC,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAwB,CAAC;QAEhD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,WAAW,CACjC,wBAAwB,WAAW,CAAC,IAAI,KAAK,EAC7C,KAAK,IAAI,EAAE;YACV,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACrD,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;aAC3C,CAAC,CAAC;YAEH,OAAO;gBACN,GAAG,EAAE,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;gBACjC,MAAM,EAAE,aAAa;aACrB,CAAC;QACH,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEhD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YAC/B,CAAC;QACF,CAAC;QAED,YAAY,CACX;YACC,MAAM,EAAE,OAAO,CAAC,aAAa;YAC7B,KAAK,EAAE,WAAW,CAAC,IAAI;YACvB,GAAG,MAAM;SACT,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":"balance.js","sourceRoot":"","sources":["../../../src/commands/wallet/balance.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"}