fibx 0.1.3 → 0.2.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.
- package/README.md +47 -7
- package/dist/commands/auth/import.d.ts +3 -0
- package/dist/commands/auth/import.d.ts.map +1 -0
- package/dist/commands/auth/import.js +44 -0
- package/dist/commands/auth/import.js.map +1 -0
- package/dist/commands/auth/verify.d.ts.map +1 -1
- package/dist/commands/auth/verify.js +1 -0
- package/dist/commands/auth/verify.js.map +1 -1
- package/dist/commands/defi/aave.d.ts +7 -0
- package/dist/commands/defi/aave.d.ts.map +1 -0
- package/dist/commands/defi/aave.js +218 -0
- package/dist/commands/defi/aave.js.map +1 -0
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/services/auth/session.d.ts +6 -1
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +3 -1
- package/dist/services/auth/session.js.map +1 -1
- package/dist/services/chain/client.d.ts +1 -1
- package/dist/services/chain/client.d.ts.map +1 -1
- package/dist/services/chain/client.js +17 -64
- package/dist/services/chain/client.js.map +1 -1
- package/dist/services/chain/constants.d.ts +6 -0
- package/dist/services/chain/constants.d.ts.map +1 -1
- package/dist/services/chain/constants.js +8 -1
- package/dist/services/chain/constants.js.map +1 -1
- package/dist/services/chain/nonceManager.d.ts +14 -0
- package/dist/services/chain/nonceManager.d.ts.map +1 -0
- package/dist/services/chain/nonceManager.js +50 -0
- package/dist/services/chain/nonceManager.js.map +1 -0
- package/dist/services/defi/aave.d.ts +30 -0
- package/dist/services/defi/aave.d.ts.map +1 -0
- package/dist/services/defi/aave.js +284 -0
- package/dist/services/defi/aave.js.map +1 -0
- package/dist/services/defi/abi/aave.d.ts +145 -0
- package/dist/services/defi/abi/aave.d.ts.map +1 -0
- package/dist/services/defi/abi/aave.js +100 -0
- package/dist/services/defi/abi/aave.js.map +1 -0
- package/dist/services/defi/constants.d.ts +15 -0
- package/dist/services/defi/constants.d.ts.map +1 -0
- package/dist/services/defi/constants.js +17 -0
- package/dist/services/defi/constants.js.map +1 -0
- package/dist/services/privy/account.d.ts +15 -0
- package/dist/services/privy/account.d.ts.map +1 -0
- package/dist/services/privy/account.js +64 -0
- package/dist/services/privy/account.js.map +1 -0
- package/package.json +12 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# fibx
|
|
2
2
|
|
|
3
|
-
A command-line tool for specialized DeFi operations on **Base, Citrea, HyperEVM, and Monad**, powered by [Fibrous
|
|
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.
|
|
4
4
|
|
|
5
5
|
[](https://badge.fury.io/js/fibx)
|
|
6
6
|
|
|
@@ -11,7 +11,9 @@ A command-line tool for specialized DeFi operations on **Base, Citrea, HyperEVM,
|
|
|
11
11
|
- **ETH & Token Transfers**: Send native assets or any ERC-20 token with a simple command.
|
|
12
12
|
- **Fibrous Aggregation**: Execute token swaps with optimal routing and auto-slippage protection.
|
|
13
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).
|
|
14
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.
|
|
15
17
|
- **JSON Output**: All commands support `--json` for easy integration into scripts and pipelines.
|
|
16
18
|
|
|
17
19
|
## Requirements
|
|
@@ -46,7 +48,7 @@ export PRIVY_APP_ID="your_app_id"
|
|
|
46
48
|
export PRIVY_APP_SECRET="your_app_secret"
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
###
|
|
51
|
+
### 2. Authenticate & Provision Wallet
|
|
50
52
|
|
|
51
53
|
This two-step process links your email to a server-side wallet.
|
|
52
54
|
|
|
@@ -68,6 +70,18 @@ npx fibx auth verify user@example.com 123456
|
|
|
68
70
|
|
|
69
71
|
_Successfully verifying will create a local session file and provision a Server Wallet if one doesn't exist._
|
|
70
72
|
|
|
73
|
+
### 3. Alternative: Import Private Key
|
|
74
|
+
|
|
75
|
+
If you prefer to use an existing private key (e.g., from Metamask or a generated wallet) instead of Privy:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npx fibx auth import
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
_This will securely prompt for your private key and store it locally in `session.json` for signing transactions._
|
|
82
|
+
|
|
83
|
+
> **Security Note:** Your private key is stored locally on your machine. Ensure your environment is secure.
|
|
84
|
+
|
|
71
85
|
### 4. Check Status
|
|
72
86
|
|
|
73
87
|
Verify that you are authenticated and the API is healthy:
|
|
@@ -153,15 +167,39 @@ npx fibx tx-status 0x456...def --chain monad
|
|
|
153
167
|
|
|
154
168
|
### View Wallet Address
|
|
155
169
|
|
|
156
|
-
Print your connected
|
|
170
|
+
Print your connected wallet address (Privy or Local):
|
|
157
171
|
|
|
158
172
|
```bash
|
|
159
173
|
npx fibx address
|
|
160
174
|
```
|
|
161
175
|
|
|
176
|
+
### Aave V3 (Base Only)
|
|
177
|
+
|
|
178
|
+
Interact with Aave V3 protocols on the Base network.
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
npx fibx aave <action> <amount> <token>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Actions:**
|
|
185
|
+
|
|
186
|
+
- `status`: Check account health (HF, LTV)
|
|
187
|
+
- `supply`: Deposit assets
|
|
188
|
+
- `borrow`: Borrow assets (requires collateral)
|
|
189
|
+
- `repay`: Repay debt
|
|
190
|
+
- `withdraw`: Withdraw assets
|
|
191
|
+
|
|
192
|
+
**Example:**
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
npx fibx aave supply 100 USDC
|
|
196
|
+
```
|
|
197
|
+
|
|
162
198
|
## Agent Skills
|
|
163
199
|
|
|
164
|
-
|
|
200
|
+
Building an AI Agent? We provide a **Standardized Skill Set** optimized for LLMs.
|
|
201
|
+
|
|
202
|
+
Check out the [fibx-skills](https://github.com/ahmetenesdur/fibx-skills) directory for:
|
|
165
203
|
|
|
166
204
|
## Development
|
|
167
205
|
|
|
@@ -172,8 +210,10 @@ Looking to use `fibx` with an AI Agent? Check out the [fibx-agentic-wallet-skill
|
|
|
172
210
|
|
|
173
211
|
# Architecture
|
|
174
212
|
|
|
175
|
-
This CLI uses a **
|
|
213
|
+
This CLI uses a **Hybrid Wallet** architecture:
|
|
176
214
|
|
|
177
|
-
1. **
|
|
178
|
-
|
|
215
|
+
1. **Authentication**:
|
|
216
|
+
- **Privy**: Uses "Agentic" server-side wallets (ownerless) for automated signing.
|
|
217
|
+
- **Local Key**: Direct private key import for standard execution without external dependencies.
|
|
218
|
+
2. **Viem**: Handles all blockchain interactions (RPC calls, transaction signing) using a unified `WalletClient` interface, abstracting away the underlying signer (Privy vs. Local).
|
|
179
219
|
3. **Fibrous**: Provides the routing and calldata for optimal token swaps on all supported chains, encapsulated in the `services/fibrous` module.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOjG,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD1E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { outputResult, outputError, withSpinner } from "../../lib/format.js";
|
|
2
|
+
import { saveSession } from "../../services/auth/session.js";
|
|
3
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import inquirer from "inquirer";
|
|
6
|
+
export async function authImportCommand(opts) {
|
|
7
|
+
try {
|
|
8
|
+
const { privateKey } = await inquirer.prompt([
|
|
9
|
+
{
|
|
10
|
+
type: "password",
|
|
11
|
+
name: "privateKey",
|
|
12
|
+
message: "Enter your private key (0x...):",
|
|
13
|
+
validate: (input) => {
|
|
14
|
+
if (!/^0x[a-fA-F0-9]{64}$/.test(input)) {
|
|
15
|
+
return "Invalid private key format. Must start with 0x and be 66 chars long.";
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
]);
|
|
21
|
+
const account = privateKeyToAccount(privateKey);
|
|
22
|
+
const address = account.address;
|
|
23
|
+
await withSpinner("Saving session...", async () => {
|
|
24
|
+
saveSession({
|
|
25
|
+
userId: "local-user",
|
|
26
|
+
walletAddress: address,
|
|
27
|
+
createdAt: new Date().toISOString(),
|
|
28
|
+
type: "private-key",
|
|
29
|
+
privateKey: privateKey,
|
|
30
|
+
});
|
|
31
|
+
}, opts);
|
|
32
|
+
outputResult({
|
|
33
|
+
message: "Private key imported successfully!",
|
|
34
|
+
address: address,
|
|
35
|
+
type: "private-key",
|
|
36
|
+
}, opts);
|
|
37
|
+
console.log(chalk.yellow("\n Security Warning: Your private key is stored locally in session.json."));
|
|
38
|
+
console.log(chalk.yellow(" Make sure your machine is secure."));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
outputError(error, opts);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/auth/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAmB;IAC1D,IAAI,CAAC;QACJ,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC5C;gBACC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,sEAAsE,CAAC;oBAC/E,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC;aACD;SACD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAiB,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,WAAW,CAChB,mBAAmB,EACnB,KAAK,IAAI,EAAE;YACV,WAAW,CAAC;gBACX,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,OAAO;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,UAAU;aACtB,CAAC,CAAC;QACJ,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,YAAY,CACX;YACC,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,aAAa;SACnB,EACD,IAAI,CACJ,CAAC;QAEF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,MAAM,CACX,6EAA6E,CAC7E,CACD,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACpE,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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAOjG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,KAAa,EACb,IAAY,EACZ,IAAmB;IAEnB,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAE/B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAC9C,kBAAkB,EAClB,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,wDAAwD,EAAE;gBACjF,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,IAAI,EAAE,CAAC;aACrC,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,sBAAsB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsB,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrE,CAAC,EACD,IAAI,CACJ,CAAC;QAEF,4BAA4B;QAC5B,MAAM,cAAc,GAAG,MAAM,WAAW,CACvC,iCAAiC,EACjC,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,EAC5C,IAAI,CACJ,CAAC;QAEF,IAAI,MAAuC,CAAC;QAC5C,IAAI,UAAmB,CAAC;QAExB,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,GAAG,cAAc,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,2BAA2B;YAC3B,MAAM,GAAG,MAAM,WAAW,CACzB,2BAA2B,EAC3B,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACpC,IAAI,CACJ,CAAC;YAEF,sBAAsB;YACtB,MAAM,WAAW,CAChB,2BAA2B,EAC3B,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EACxD,IAAI,CACJ,CAAC;YAEF,UAAU,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,CAAC;YACjB,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,aAAa,EAAE,MAAM,CAAC,OAAwB;YAC9C,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/commands/auth/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import ora from "ora";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { AaveService } from "../../services/defi/aave.js";
|
|
4
|
+
import { getChainConfig } from "../../services/chain/constants.js";
|
|
5
|
+
import { resolveToken } from "../../services/fibrous/tokens.js";
|
|
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";
|
|
8
|
+
import { outputError, outputResult } from "../../lib/format.js";
|
|
9
|
+
import { getPublicClient } from "../../services/chain/client.js";
|
|
10
|
+
import { formatUnits, parseUnits } from "viem";
|
|
11
|
+
export const aaveCommand = async (action, amount, tokenSymbol, opts) => {
|
|
12
|
+
const spinner = ora("Initializing Aave service...").start();
|
|
13
|
+
try {
|
|
14
|
+
// Aave V3 is currently Base-only
|
|
15
|
+
const chainConfig = getChainConfig("base");
|
|
16
|
+
// Initialize Service
|
|
17
|
+
const aave = new AaveService();
|
|
18
|
+
try {
|
|
19
|
+
// Try to load session (Privy or Private Key)
|
|
20
|
+
await attemptSessionLogin(aave, chainConfig);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Ignore if no session, aave service handles missing wallet gracefully for read-only
|
|
24
|
+
}
|
|
25
|
+
const userAddress = aave.getAccountAddress();
|
|
26
|
+
if (!userAddress) {
|
|
27
|
+
if (action === "status") {
|
|
28
|
+
spinner.fail("No wallet connected. Run `fibx auth login` or `fibx auth import`.");
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
spinner.fail("No active session found. Please login or import a private key.");
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (action === "status") {
|
|
36
|
+
await handleStatus(aave, userAddress, opts, spinner);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!isValidAction(action)) {
|
|
40
|
+
spinner.fail(`Unknown action: ${action}`);
|
|
41
|
+
console.log(chalk.gray("Available actions: status, supply, borrow, repay, withdraw"));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!tokenSymbol) {
|
|
45
|
+
spinner.fail(`Token is required for action: ${action}`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!amount) {
|
|
49
|
+
spinner.fail(`Amount is required for action: ${action}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Resolve Token
|
|
53
|
+
spinner.text = `Resolving token ${tokenSymbol}...`;
|
|
54
|
+
let token = await resolveToken(tokenSymbol, chainConfig);
|
|
55
|
+
// Handle ETH -> WETH translation for Aave
|
|
56
|
+
if (token.address === chainConfig.nativeTokenAddress) {
|
|
57
|
+
token = {
|
|
58
|
+
...token,
|
|
59
|
+
address: WETH_BASE_ADDRESS,
|
|
60
|
+
symbol: "WETH",
|
|
61
|
+
name: "Wrapped Ether",
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
spinner.text = "Interacting with Aave Protocol...";
|
|
65
|
+
switch (action) {
|
|
66
|
+
case "supply":
|
|
67
|
+
await handleSupply(aave, token, amount, userAddress, chainConfig, spinner, opts, tokenSymbol.toUpperCase() === "ETH");
|
|
68
|
+
break;
|
|
69
|
+
case "borrow":
|
|
70
|
+
await handleBorrow(aave, token, amount, spinner, opts);
|
|
71
|
+
break;
|
|
72
|
+
case "repay":
|
|
73
|
+
await handleRepay(aave, token, amount, spinner, opts);
|
|
74
|
+
break;
|
|
75
|
+
case "withdraw":
|
|
76
|
+
await handleWithdraw(aave, token, amount, spinner, opts, tokenSymbol.toUpperCase() === "ETH");
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
spinner.stop();
|
|
82
|
+
outputError(error, { json: !!opts.json });
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
// Helpers
|
|
86
|
+
function isValidAction(action) {
|
|
87
|
+
return ["status", "supply", "borrow", "repay", "withdraw"].includes(action);
|
|
88
|
+
}
|
|
89
|
+
async function attemptSessionLogin(aave, chainConfig) {
|
|
90
|
+
try {
|
|
91
|
+
const { loadSession } = await import("../../services/auth/session.js");
|
|
92
|
+
const { getPrivyClient } = await import("../../services/privy/client.js");
|
|
93
|
+
const { getWalletClient } = await import("../../services/chain/client.js");
|
|
94
|
+
const session = loadSession();
|
|
95
|
+
if (session) {
|
|
96
|
+
const privy = session.type === "privy" ? getPrivyClient() : null;
|
|
97
|
+
const walletClient = getWalletClient(privy, session, chainConfig);
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
+
aave.setWalletClient(walletClient);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Session load failed, ignore
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Action Handlers
|
|
107
|
+
async function handleStatus(aave, userAddress, opts, spinner) {
|
|
108
|
+
spinner.text = `Fetching data for ${userAddress}...`;
|
|
109
|
+
const data = await aave.getUserAccountData(userAddress);
|
|
110
|
+
spinner.stop();
|
|
111
|
+
if (opts.json) {
|
|
112
|
+
console.log(JSON.stringify(data));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const hf = parseFloat(data.healthFactor);
|
|
116
|
+
let hfColor = chalk.green;
|
|
117
|
+
if (hf < HEALTH_FACTOR_CRITICAL_THRESHOLD)
|
|
118
|
+
hfColor = chalk.red;
|
|
119
|
+
else if (hf < HEALTH_FACTOR_WARNING_THRESHOLD)
|
|
120
|
+
hfColor = chalk.yellow;
|
|
121
|
+
const hfDisplay = hf > 100 ? "Safe (>100)" : hf.toFixed(2);
|
|
122
|
+
console.log(chalk.bold("\nAave V3 Position (Base)"));
|
|
123
|
+
console.log(chalk.gray("---------------------------"));
|
|
124
|
+
outputResult({
|
|
125
|
+
"Health Factor": hfColor(hfDisplay),
|
|
126
|
+
Collateral: `$${parseFloat(data.totalCollateralUSD).toFixed(2)}`,
|
|
127
|
+
Debt: `$${parseFloat(data.totalDebtUSD).toFixed(2)}`,
|
|
128
|
+
"Available Borrow": `$${parseFloat(data.availableBorrowsUSD).toFixed(2)}`,
|
|
129
|
+
}, { json: !!opts.json });
|
|
130
|
+
}
|
|
131
|
+
async function handleSupply(aave, token, amount, userAddress, chainConfig, spinner, opts, isNativeETH = false) {
|
|
132
|
+
// Balance Check
|
|
133
|
+
spinner.text = "Checking balance...";
|
|
134
|
+
const balances = await getBalances([{ address: token.address, decimals: token.decimals }], userAddress, chainConfig);
|
|
135
|
+
const wethBalanceData = balances.find((b) => b.token.address.toLowerCase() === token.address.toLowerCase());
|
|
136
|
+
const amountBigInt = parseUnits(amount, token.decimals);
|
|
137
|
+
const wethBalanceBigInt = wethBalanceData
|
|
138
|
+
? parseUnits(wethBalanceData.balance, token.decimals)
|
|
139
|
+
: 0n;
|
|
140
|
+
if (isNativeETH) {
|
|
141
|
+
const publicClient = getPublicClient(chainConfig);
|
|
142
|
+
const ethBalanceBigInt = await publicClient.getBalance({ address: userAddress });
|
|
143
|
+
const totalAvailable = ethBalanceBigInt + wethBalanceBigInt;
|
|
144
|
+
if (totalAvailable < amountBigInt) {
|
|
145
|
+
spinner.fail(chalk.red("Insufficient Balance"));
|
|
146
|
+
console.log(chalk.yellow(`You have ${formatUnits(ethBalanceBigInt, 18)} ETH + ${formatUnits(wethBalanceBigInt, 18)} WETH, but need ${amount}.`));
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Check if we need to wrap
|
|
150
|
+
if (wethBalanceBigInt < amountBigInt) {
|
|
151
|
+
const neededWETH = amountBigInt - wethBalanceBigInt;
|
|
152
|
+
spinner.text = `Wrapping ${formatUnits(neededWETH, 18)} ETH to WETH...`;
|
|
153
|
+
await aave.wrapETH(formatUnits(neededWETH, 18));
|
|
154
|
+
spinner.succeed("Wrapped ETH successfully");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
if (wethBalanceBigInt < amountBigInt) {
|
|
159
|
+
spinner.fail(chalk.red("Insufficient Balance"));
|
|
160
|
+
console.log(chalk.yellow(`You have ${formatUnits(wethBalanceBigInt, token.decimals)} ${token.symbol}, but need ${amount}.`));
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
spinner.text = "Signaling Aave Supply...";
|
|
165
|
+
const tx = await aave.supply(token.address, amount);
|
|
166
|
+
spinner.succeed("Supply transaction sent!");
|
|
167
|
+
outputResult({
|
|
168
|
+
action: "Supply",
|
|
169
|
+
amount,
|
|
170
|
+
token: token.symbol,
|
|
171
|
+
txHash: tx,
|
|
172
|
+
chain: "base",
|
|
173
|
+
}, { json: !!opts.json });
|
|
174
|
+
}
|
|
175
|
+
async function handleBorrow(aave, token, amount, spinner, opts) {
|
|
176
|
+
spinner.text = "Signaling Aave Borrow...";
|
|
177
|
+
const tx = await aave.borrow(token.address, amount);
|
|
178
|
+
spinner.succeed("Borrow transaction sent!");
|
|
179
|
+
outputResult({
|
|
180
|
+
action: "Borrow",
|
|
181
|
+
amount,
|
|
182
|
+
token: token.symbol,
|
|
183
|
+
txHash: tx,
|
|
184
|
+
chain: "base",
|
|
185
|
+
}, { json: !!opts.json });
|
|
186
|
+
}
|
|
187
|
+
async function handleRepay(aave, token, amount, spinner, opts) {
|
|
188
|
+
spinner.text = "Signaling Aave Repay...";
|
|
189
|
+
const tx = await aave.repay(token.address, amount);
|
|
190
|
+
spinner.succeed("Repay transaction sent!");
|
|
191
|
+
outputResult({
|
|
192
|
+
action: "Repay",
|
|
193
|
+
amount,
|
|
194
|
+
token: token.symbol,
|
|
195
|
+
txHash: tx,
|
|
196
|
+
chain: "base",
|
|
197
|
+
}, { json: !!opts.json });
|
|
198
|
+
}
|
|
199
|
+
async function handleWithdraw(aave, token, amount, spinner, opts, isNativeETH = false) {
|
|
200
|
+
spinner.text = "Signaling Aave Withdraw...";
|
|
201
|
+
const tx = await aave.withdraw(token.address, amount);
|
|
202
|
+
if (isNativeETH) {
|
|
203
|
+
spinner.text = "Unwrapping WETH to ETH...";
|
|
204
|
+
await aave.unwrapWETH(amount);
|
|
205
|
+
spinner.succeed("Withdraw & Unwrap transaction sent!");
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
spinner.succeed("Withdraw transaction sent!");
|
|
209
|
+
}
|
|
210
|
+
outputResult({
|
|
211
|
+
action: "Withdraw",
|
|
212
|
+
amount,
|
|
213
|
+
token: isNativeETH ? "ETH" : token.symbol,
|
|
214
|
+
txHash: tx,
|
|
215
|
+
chain: "base",
|
|
216
|
+
}, { json: !!opts.json });
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=aave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aave.js","sourceRoot":"","sources":["../../../src/commands/defi/aave.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,11 +9,12 @@ import { sendCommand } from "./commands/wallet/send.js";
|
|
|
9
9
|
import { tradeCommand } from "./commands/trade/swap.js";
|
|
10
10
|
import { walletsCommand } from "./commands/wallet/list.js";
|
|
11
11
|
import { txStatusCommand } from "./commands/chain/transaction.js";
|
|
12
|
+
import { aaveCommand } from "./commands/defi/aave.js";
|
|
12
13
|
const program = new Command();
|
|
13
14
|
program
|
|
14
15
|
.name("fibx")
|
|
15
16
|
.description("Fibrous DeFi CLI — wallet, transfer, swap")
|
|
16
|
-
.version("0.1
|
|
17
|
+
.version("0.2.1")
|
|
17
18
|
.option("-c, --chain <chain>", "Chain to use (base, citrea, hyperevm, monad)", "base")
|
|
18
19
|
.option("--json", "Output results as JSON", false);
|
|
19
20
|
const auth = program.command("auth").description("Authentication commands");
|
|
@@ -32,6 +33,13 @@ auth.command("verify")
|
|
|
32
33
|
const globalOpts = cmd.parent.parent.opts();
|
|
33
34
|
await authVerifyCommand(email, code, { json: globalOpts.json });
|
|
34
35
|
});
|
|
36
|
+
auth.command("import")
|
|
37
|
+
.description("Import a private key for local authentication")
|
|
38
|
+
.action(async (_opts, cmd) => {
|
|
39
|
+
const globalOpts = cmd.parent.parent.opts();
|
|
40
|
+
const { authImportCommand } = await import("./commands/auth/import.js");
|
|
41
|
+
await authImportCommand({ json: globalOpts.json });
|
|
42
|
+
});
|
|
35
43
|
program
|
|
36
44
|
.command("status")
|
|
37
45
|
.description("Check auth status and Fibrous health")
|
|
@@ -94,5 +102,15 @@ program
|
|
|
94
102
|
approveMax: opts.approveMax,
|
|
95
103
|
});
|
|
96
104
|
});
|
|
105
|
+
program
|
|
106
|
+
.command("aave")
|
|
107
|
+
.description("Aave V3 operations (Base only)")
|
|
108
|
+
.argument("<action>", "Action: status, supply, borrow, repay, withdraw")
|
|
109
|
+
.argument("[amount]", "Amount")
|
|
110
|
+
.argument("[token]", "Token symbol or address")
|
|
111
|
+
.action(async (action, amount, token, _opts, cmd) => {
|
|
112
|
+
const globalOpts = cmd.parent.opts();
|
|
113
|
+
await aaveCommand(action, amount, token, { ...globalOpts, json: globalOpts.json });
|
|
114
|
+
});
|
|
97
115
|
program.parseAsync();
|
|
98
116
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
declare const sessionSchema: z.ZodObject<{
|
|
3
3
|
userId: z.ZodOptional<z.ZodString>;
|
|
4
|
-
walletId: z.ZodString
|
|
4
|
+
walletId: z.ZodOptional<z.ZodString>;
|
|
5
5
|
walletAddress: z.ZodString;
|
|
6
6
|
userJwt: z.ZodOptional<z.ZodString>;
|
|
7
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>;
|
|
8
13
|
}, z.core.$strip>;
|
|
9
14
|
export type Session = z.infer<typeof sessionSchema>;
|
|
10
15
|
export declare function loadSession(): Session | null;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,CASxC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAMnC"}
|
|
@@ -5,10 +5,12 @@ import { paths } from "../../lib/config.js";
|
|
|
5
5
|
import { ErrorCode, FibxError } from "../../lib/errors.js";
|
|
6
6
|
const sessionSchema = z.object({
|
|
7
7
|
userId: z.string().optional(),
|
|
8
|
-
walletId: z.string(),
|
|
8
|
+
walletId: z.string().optional(), // Optional for private-key auth
|
|
9
9
|
walletAddress: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
10
10
|
userJwt: z.string().optional(),
|
|
11
11
|
createdAt: z.string(),
|
|
12
|
+
type: z.enum(["privy", "private-key"]).default("privy"),
|
|
13
|
+
privateKey: z.string().optional(), // Only for private-key auth
|
|
12
14
|
});
|
|
13
15
|
function getSessionPath() {
|
|
14
16
|
return join(paths.config, "session.json");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/auth/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,gCAAgC;IACjE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,4BAA4B;CAC/D,CAAC,CAAC;AAIH,SAAS,cAAc;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IAC1B,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc;IAC7B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAClB,SAAS,CAAC,iBAAiB,EAC3B,yDAAyD,CACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC3C,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,IAAI,CAAC;QACJ,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACR,kBAAkB;IACnB,CAAC;AACF,CAAC"}
|
|
@@ -3643,7 +3643,7 @@ export declare function getPublicClient(chain: ChainConfig): {
|
|
|
3643
3643
|
uid?: undefined;
|
|
3644
3644
|
} & import("viem").ExactPartial<Pick<import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, import("viem").Chain, undefined>, "prepareTransactionRequest" | "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getBlockNumber" | "getChainId" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions<import("viem").Chain, undefined>, "sendTransaction" | "writeContract">>>(fn: (client: import("viem").Client<import("viem").HttpTransport<undefined, false>, import("viem").Chain, undefined, import("viem").PublicRpcSchema, import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, import("viem").Chain>>) => client) => import("viem").Client<import("viem").HttpTransport<undefined, false>, import("viem").Chain, undefined, import("viem").PublicRpcSchema, { [K in keyof client]: client[K]; } & import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, import("viem").Chain>>;
|
|
3645
3645
|
};
|
|
3646
|
-
export declare function getWalletClient(privy: PrivyClient, session: Session, chain: ChainConfig): {
|
|
3646
|
+
export declare function getWalletClient(privy: PrivyClient | null, session: Session, chain: ChainConfig): {
|
|
3647
3647
|
account: {
|
|
3648
3648
|
address: `0x${string}`;
|
|
3649
3649
|
type: "local";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/chain/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;irBA0FmyT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAA+qR,CAAC;mCAA6lC,CAAC;;;;;;;;;;;;;;;;yeAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/chain/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;irBA4BmiX,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAA+qR,CAAC;mCAA6lC,CAAC;;;;;;;;;;;;;;;;yeAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAvBlsxC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEAqBouP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EADn0P"}
|