@aave/cli 4.1.0-next.37 → 4.1.0-next.39
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 +70 -4
- package/dist/commands/borrows/list.d.ts +14 -0
- package/dist/commands/borrows/list.js +63 -0
- package/dist/commands/positions/list.d.ts +14 -0
- package/dist/commands/positions/list.js +65 -0
- package/dist/commands/supplies/list.d.ts +14 -0
- package/dist/commands/supplies/list.js +65 -0
- package/oclif.manifest.json +198 -33
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ $ npm install -g @aave/cli
|
|
|
20
20
|
$ aave COMMAND
|
|
21
21
|
running command...
|
|
22
22
|
$ aave (--version)
|
|
23
|
-
@aave/cli/4.1.0-next.
|
|
23
|
+
@aave/cli/4.1.0-next.38 darwin-arm64 node-v22.17.0
|
|
24
24
|
$ aave --help [COMMAND]
|
|
25
25
|
USAGE
|
|
26
26
|
$ aave COMMAND
|
|
@@ -29,9 +29,33 @@ USAGE
|
|
|
29
29
|
<!-- usagestop -->
|
|
30
30
|
# Commands
|
|
31
31
|
<!-- commands -->
|
|
32
|
+
* [`aave borrows list`](#aave-borrows-list)
|
|
32
33
|
* [`aave hubs list`](#aave-hubs-list)
|
|
34
|
+
* [`aave positions list`](#aave-positions-list)
|
|
33
35
|
* [`aave reserves list`](#aave-reserves-list)
|
|
34
36
|
* [`aave spokes list`](#aave-spokes-list)
|
|
37
|
+
* [`aave supplies list`](#aave-supplies-list)
|
|
38
|
+
|
|
39
|
+
## `aave borrows list`
|
|
40
|
+
|
|
41
|
+
List user borrows for a specific chain
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
USAGE
|
|
45
|
+
$ aave borrows list --user <evm-address> -c <chain-id> [--json]
|
|
46
|
+
|
|
47
|
+
FLAGS
|
|
48
|
+
-c, --chain_id=<chain-id> (required) Chain ID to query borrows from
|
|
49
|
+
--user=<evm-address> (required) User address
|
|
50
|
+
|
|
51
|
+
GLOBAL FLAGS
|
|
52
|
+
--json Format output as json.
|
|
53
|
+
|
|
54
|
+
DESCRIPTION
|
|
55
|
+
List user borrows for a specific chain
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
_See code: [src/commands/borrows/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/borrows/list.ts)_
|
|
35
59
|
|
|
36
60
|
## `aave hubs list`
|
|
37
61
|
|
|
@@ -51,7 +75,28 @@ DESCRIPTION
|
|
|
51
75
|
List Aave v4 liquidity hubs
|
|
52
76
|
```
|
|
53
77
|
|
|
54
|
-
_See code: [src/commands/hubs/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.
|
|
78
|
+
_See code: [src/commands/hubs/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/hubs/list.ts)_
|
|
79
|
+
|
|
80
|
+
## `aave positions list`
|
|
81
|
+
|
|
82
|
+
List user positions across chains
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
USAGE
|
|
86
|
+
$ aave positions list --user <evm-address> -c <chain-id> [--json]
|
|
87
|
+
|
|
88
|
+
FLAGS
|
|
89
|
+
-c, --chain_id=<chain-id> (required) Filter by chain ID
|
|
90
|
+
--user=<evm-address> (required) User address
|
|
91
|
+
|
|
92
|
+
GLOBAL FLAGS
|
|
93
|
+
--json Format output as json.
|
|
94
|
+
|
|
95
|
+
DESCRIPTION
|
|
96
|
+
List user positions across chains
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
_See code: [src/commands/positions/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/positions/list.ts)_
|
|
55
100
|
|
|
56
101
|
## `aave reserves list`
|
|
57
102
|
|
|
@@ -74,7 +119,7 @@ DESCRIPTION
|
|
|
74
119
|
List Aave v4 reserves
|
|
75
120
|
```
|
|
76
121
|
|
|
77
|
-
_See code: [src/commands/reserves/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.
|
|
122
|
+
_See code: [src/commands/reserves/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/reserves/list.ts)_
|
|
78
123
|
|
|
79
124
|
## `aave spokes list`
|
|
80
125
|
|
|
@@ -96,5 +141,26 @@ DESCRIPTION
|
|
|
96
141
|
List Aave v4 spokes
|
|
97
142
|
```
|
|
98
143
|
|
|
99
|
-
_See code: [src/commands/spokes/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.
|
|
144
|
+
_See code: [src/commands/spokes/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/spokes/list.ts)_
|
|
145
|
+
|
|
146
|
+
## `aave supplies list`
|
|
147
|
+
|
|
148
|
+
List user supplies for a specific chain
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
USAGE
|
|
152
|
+
$ aave supplies list --user <evm-address> -c <chain-id> [--json]
|
|
153
|
+
|
|
154
|
+
FLAGS
|
|
155
|
+
-c, --chain_id=<chain-id> (required) Chain ID to query supplies from
|
|
156
|
+
--user=<evm-address> (required) User address
|
|
157
|
+
|
|
158
|
+
GLOBAL FLAGS
|
|
159
|
+
--json Format output as json.
|
|
160
|
+
|
|
161
|
+
DESCRIPTION
|
|
162
|
+
List user supplies for a specific chain
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
_See code: [src/commands/supplies/list.ts](https://github.com/aave/aave-v4-sdk/blob/v4.1.0-next.38/src/commands/supplies/list.ts)_
|
|
100
166
|
<!-- commandsstop -->
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ChainId, type EvmAddress, InvariantError, type UnexpectedError, type UserBorrowItem } from '@aave/client';
|
|
2
|
+
import * as common from '../../common.js';
|
|
3
|
+
export default class ListBorrows extends common.V4Command {
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
user: import("@oclif/core/interfaces").OptionFlag<EvmAddress, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
chain_id: import("@oclif/core/interfaces").OptionFlag<ChainId, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
};
|
|
9
|
+
headers: {
|
|
10
|
+
value: string;
|
|
11
|
+
}[];
|
|
12
|
+
private getBorrowsRequest;
|
|
13
|
+
run(): Promise<UserBorrowItem[] | InvariantError | UnexpectedError>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { InvariantError, invariant, ok, ResultAsync, } from '@aave/client';
|
|
2
|
+
import { userBorrows } from '@aave/client/actions';
|
|
3
|
+
import * as common from '../../common.js';
|
|
4
|
+
export default class ListBorrows extends common.V4Command {
|
|
5
|
+
static description = 'List user borrows for a specific chain';
|
|
6
|
+
static flags = {
|
|
7
|
+
user: common.address({
|
|
8
|
+
required: true,
|
|
9
|
+
description: 'User address',
|
|
10
|
+
}),
|
|
11
|
+
chain_id: common.chain({
|
|
12
|
+
required: true,
|
|
13
|
+
description: 'Chain ID to query borrows from',
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
headers = [
|
|
17
|
+
{ value: 'Asset' },
|
|
18
|
+
{ value: 'Borrowed' },
|
|
19
|
+
{ value: 'Interest Owed' },
|
|
20
|
+
{ value: 'Total Debt' },
|
|
21
|
+
{ value: 'Borrow APY' },
|
|
22
|
+
{ value: 'Spoke' },
|
|
23
|
+
];
|
|
24
|
+
getBorrowsRequest() {
|
|
25
|
+
return ResultAsync.fromPromise(this.parse(ListBorrows), (error) => new InvariantError(String(error))).andThen(({ flags }) => {
|
|
26
|
+
const user = flags.user;
|
|
27
|
+
const chainId = flags.chain_id;
|
|
28
|
+
invariant(user, 'You must provide a user address');
|
|
29
|
+
invariant(chainId, 'You must provide a chain ID');
|
|
30
|
+
return ok({
|
|
31
|
+
query: {
|
|
32
|
+
userChains: {
|
|
33
|
+
user,
|
|
34
|
+
chainIds: [chainId],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async run() {
|
|
41
|
+
const result = await this.getBorrowsRequest()
|
|
42
|
+
.andThen((request) => userBorrows(this.client, request))
|
|
43
|
+
.andThen((borrows) => {
|
|
44
|
+
if (borrows.length === 0) {
|
|
45
|
+
this.log('No borrows found for this user.');
|
|
46
|
+
return ok(borrows);
|
|
47
|
+
}
|
|
48
|
+
this.display(borrows.map((item) => [
|
|
49
|
+
item.principal.token.info.name,
|
|
50
|
+
`${item.principal.amount.value.toFixed(4)} `,
|
|
51
|
+
`${item.interest.amount.value.toFixed(4)} `,
|
|
52
|
+
`${(item.debt.amount.value).toFixed(4)} `,
|
|
53
|
+
`${item.reserve.summary.borrowApy.normalized.toFixed(4)}%`,
|
|
54
|
+
item.reserve.spoke.name,
|
|
55
|
+
]));
|
|
56
|
+
return ok(borrows);
|
|
57
|
+
});
|
|
58
|
+
if (result.isErr()) {
|
|
59
|
+
this.error(result.error);
|
|
60
|
+
}
|
|
61
|
+
return result.value;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ChainId, type EvmAddress, InvariantError, type UnexpectedError, type UserPosition } from '@aave/client';
|
|
2
|
+
import * as common from '../../common.js';
|
|
3
|
+
export default class ListPositions extends common.V4Command {
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
user: import("@oclif/core/interfaces").OptionFlag<EvmAddress, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
chain_id: import("@oclif/core/interfaces").OptionFlag<ChainId, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
};
|
|
9
|
+
headers: {
|
|
10
|
+
value: string;
|
|
11
|
+
}[];
|
|
12
|
+
private getPositionsRequest;
|
|
13
|
+
run(): Promise<UserPosition[] | InvariantError | UnexpectedError>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { InvariantError, invariant, ok, ResultAsync, } from '@aave/client';
|
|
2
|
+
import { userPositions } from '@aave/client/actions';
|
|
3
|
+
import * as common from '../../common.js';
|
|
4
|
+
export default class ListPositions extends common.V4Command {
|
|
5
|
+
static description = 'List user positions across chains';
|
|
6
|
+
static flags = {
|
|
7
|
+
user: common.address({
|
|
8
|
+
required: true,
|
|
9
|
+
description: 'User address',
|
|
10
|
+
}),
|
|
11
|
+
chain_id: common.chain({
|
|
12
|
+
required: true,
|
|
13
|
+
description: 'Filter by chain ID',
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
headers = [
|
|
17
|
+
{ value: 'Position ID' },
|
|
18
|
+
{ value: 'Spoke' },
|
|
19
|
+
{ value: 'Chain' },
|
|
20
|
+
{ value: 'Total Supplied' },
|
|
21
|
+
{ value: 'Total Borrowed' },
|
|
22
|
+
{ value: 'Health Factor' },
|
|
23
|
+
{ value: 'Collateral Enabled' },
|
|
24
|
+
];
|
|
25
|
+
getPositionsRequest() {
|
|
26
|
+
return ResultAsync.fromPromise(this.parse(ListPositions), (error) => new InvariantError(String(error))).andThen(({ flags }) => {
|
|
27
|
+
const user = flags.user;
|
|
28
|
+
const chainId = flags.chain_id;
|
|
29
|
+
invariant(user, 'You must provide a user address');
|
|
30
|
+
invariant(chainId, 'You must provide a chain ID');
|
|
31
|
+
return ok({
|
|
32
|
+
user,
|
|
33
|
+
filter: {
|
|
34
|
+
chainIds: [chainId],
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async run() {
|
|
40
|
+
const result = await this.getPositionsRequest()
|
|
41
|
+
.andThen((request) => userPositions(this.client, request))
|
|
42
|
+
.andThen((positions) => {
|
|
43
|
+
if (positions.length === 0) {
|
|
44
|
+
this.log('No positions found for this user');
|
|
45
|
+
return ok(positions);
|
|
46
|
+
}
|
|
47
|
+
this.display(positions.map((item) => [
|
|
48
|
+
item.id,
|
|
49
|
+
item.spoke.name,
|
|
50
|
+
`${item.spoke.chain.name} (id=${item.spoke.chain.chainId})`,
|
|
51
|
+
`${item.totalSupplied.current.symbol}${item.totalSupplied.current.value.toFixed(2)}`,
|
|
52
|
+
`${item.totalDebt.current.symbol}${item.totalDebt.current.value.toFixed(2)}`,
|
|
53
|
+
item.healthFactor.current?.toFixed(2) ?? 'N/A',
|
|
54
|
+
Number(item.totalCollateral.current.value.toFixed(0)) > 0
|
|
55
|
+
? 'Yes'
|
|
56
|
+
: 'No',
|
|
57
|
+
]));
|
|
58
|
+
return ok(positions);
|
|
59
|
+
});
|
|
60
|
+
if (result.isErr()) {
|
|
61
|
+
this.error(result.error);
|
|
62
|
+
}
|
|
63
|
+
return result.value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ChainId, type EvmAddress, InvariantError, type UnexpectedError, type UserSupplyItem } from '@aave/client';
|
|
2
|
+
import * as common from '../../common.js';
|
|
3
|
+
export default class ListSupplies extends common.V4Command {
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
user: import("@oclif/core/interfaces").OptionFlag<EvmAddress, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
chain_id: import("@oclif/core/interfaces").OptionFlag<ChainId, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
};
|
|
9
|
+
headers: {
|
|
10
|
+
value: string;
|
|
11
|
+
}[];
|
|
12
|
+
private getSuppliesRequest;
|
|
13
|
+
run(): Promise<UserSupplyItem[] | InvariantError | UnexpectedError>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { InvariantError, invariant, ok, ResultAsync, } from '@aave/client';
|
|
2
|
+
import { userSupplies } from '@aave/client/actions';
|
|
3
|
+
import * as common from '../../common.js';
|
|
4
|
+
export default class ListSupplies extends common.V4Command {
|
|
5
|
+
static description = 'List user supplies for a specific chain';
|
|
6
|
+
static flags = {
|
|
7
|
+
user: common.address({
|
|
8
|
+
required: true,
|
|
9
|
+
description: 'User address',
|
|
10
|
+
}),
|
|
11
|
+
chain_id: common.chain({
|
|
12
|
+
required: true,
|
|
13
|
+
description: 'Chain ID to query supplies from',
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
headers = [
|
|
17
|
+
{ value: 'Asset' },
|
|
18
|
+
{ value: 'Supplied' },
|
|
19
|
+
{ value: 'Interest Earned' },
|
|
20
|
+
{ value: 'Withdrawable' },
|
|
21
|
+
{ value: 'APY' },
|
|
22
|
+
{ value: 'Collateral' },
|
|
23
|
+
{ value: 'Spoke' },
|
|
24
|
+
];
|
|
25
|
+
getSuppliesRequest() {
|
|
26
|
+
return ResultAsync.fromPromise(this.parse(ListSupplies), (error) => new InvariantError(String(error))).andThen(({ flags }) => {
|
|
27
|
+
const user = flags.user;
|
|
28
|
+
const chainId = flags.chain_id;
|
|
29
|
+
invariant(user, 'You must provide a user address');
|
|
30
|
+
invariant(chainId, 'You must provide a chain ID');
|
|
31
|
+
return ok({
|
|
32
|
+
query: {
|
|
33
|
+
userChains: {
|
|
34
|
+
user,
|
|
35
|
+
chainIds: [chainId],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async run() {
|
|
42
|
+
const result = await this.getSuppliesRequest()
|
|
43
|
+
.andThen((request) => userSupplies(this.client, request))
|
|
44
|
+
.andThen((supplies) => {
|
|
45
|
+
if (supplies.length === 0) {
|
|
46
|
+
this.log('No supplies found for this user');
|
|
47
|
+
return ok(supplies);
|
|
48
|
+
}
|
|
49
|
+
this.display(supplies.map((item) => [
|
|
50
|
+
`${item.reserve.asset.underlying.info.name} (${item.reserve.asset.underlying.info.symbol})`,
|
|
51
|
+
`${item.principal.amount.value.toFixed(4)} `,
|
|
52
|
+
`${item.interest.amount.value.toFixed(4)} `,
|
|
53
|
+
`${item.withdrawable.amount.value.toFixed(4)}`,
|
|
54
|
+
`${item.reserve.summary.supplyApy.normalized.toFixed(4)}%`,
|
|
55
|
+
item.isCollateral ? 'Yes' : 'No',
|
|
56
|
+
item.reserve.spoke.name,
|
|
57
|
+
]));
|
|
58
|
+
return ok(supplies);
|
|
59
|
+
});
|
|
60
|
+
if (result.isErr()) {
|
|
61
|
+
this.error(result.error);
|
|
62
|
+
}
|
|
63
|
+
return result.value;
|
|
64
|
+
}
|
|
65
|
+
}
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,60 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
+
"borrows:list": {
|
|
4
|
+
"aliases": [],
|
|
5
|
+
"args": {},
|
|
6
|
+
"description": "List user borrows for a specific chain",
|
|
7
|
+
"flags": {
|
|
8
|
+
"json": {
|
|
9
|
+
"description": "Format output as json.",
|
|
10
|
+
"helpGroup": "GLOBAL",
|
|
11
|
+
"name": "json",
|
|
12
|
+
"allowNo": false,
|
|
13
|
+
"type": "boolean"
|
|
14
|
+
},
|
|
15
|
+
"staging": {
|
|
16
|
+
"description": "Use staging environment",
|
|
17
|
+
"hidden": true,
|
|
18
|
+
"name": "staging",
|
|
19
|
+
"allowNo": false,
|
|
20
|
+
"type": "boolean"
|
|
21
|
+
},
|
|
22
|
+
"user": {
|
|
23
|
+
"description": "User address",
|
|
24
|
+
"name": "user",
|
|
25
|
+
"required": true,
|
|
26
|
+
"hasDynamicHelp": false,
|
|
27
|
+
"helpValue": "<evm-address>",
|
|
28
|
+
"multiple": false,
|
|
29
|
+
"type": "option"
|
|
30
|
+
},
|
|
31
|
+
"chain_id": {
|
|
32
|
+
"char": "c",
|
|
33
|
+
"description": "Chain ID to query borrows from",
|
|
34
|
+
"name": "chain_id",
|
|
35
|
+
"required": true,
|
|
36
|
+
"hasDynamicHelp": false,
|
|
37
|
+
"helpValue": "<chain-id>",
|
|
38
|
+
"multiple": false,
|
|
39
|
+
"type": "option"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"hasDynamicHelp": false,
|
|
43
|
+
"hiddenAliases": [],
|
|
44
|
+
"id": "borrows:list",
|
|
45
|
+
"pluginAlias": "@aave/cli",
|
|
46
|
+
"pluginName": "@aave/cli",
|
|
47
|
+
"pluginType": "core",
|
|
48
|
+
"strict": true,
|
|
49
|
+
"enableJsonFlag": true,
|
|
50
|
+
"isESM": true,
|
|
51
|
+
"relativePath": [
|
|
52
|
+
"dist",
|
|
53
|
+
"commands",
|
|
54
|
+
"borrows",
|
|
55
|
+
"list.js"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
3
58
|
"hubs:list": {
|
|
4
59
|
"aliases": [],
|
|
5
60
|
"args": {},
|
|
@@ -45,10 +100,10 @@
|
|
|
45
100
|
"list.js"
|
|
46
101
|
]
|
|
47
102
|
},
|
|
48
|
-
"
|
|
103
|
+
"spokes:list": {
|
|
49
104
|
"aliases": [],
|
|
50
105
|
"args": {},
|
|
51
|
-
"description": "List Aave v4
|
|
106
|
+
"description": "List Aave v4 spokes",
|
|
52
107
|
"flags": {
|
|
53
108
|
"json": {
|
|
54
109
|
"description": "Format output as json.",
|
|
@@ -64,26 +119,6 @@
|
|
|
64
119
|
"allowNo": false,
|
|
65
120
|
"type": "boolean"
|
|
66
121
|
},
|
|
67
|
-
"spoke_id": {
|
|
68
|
-
"char": "s",
|
|
69
|
-
"description": "The spoke ID (e.g. SGVsbG8h…)",
|
|
70
|
-
"name": "spoke_id",
|
|
71
|
-
"relationships": [
|
|
72
|
-
{
|
|
73
|
-
"type": "none",
|
|
74
|
-
"flags": [
|
|
75
|
-
"hub_id",
|
|
76
|
-
"chain_id",
|
|
77
|
-
"hub_address"
|
|
78
|
-
]
|
|
79
|
-
}
|
|
80
|
-
],
|
|
81
|
-
"required": false,
|
|
82
|
-
"hasDynamicHelp": false,
|
|
83
|
-
"helpValue": "<spoke-id>",
|
|
84
|
-
"multiple": false,
|
|
85
|
-
"type": "option"
|
|
86
|
-
},
|
|
87
122
|
"hub_id": {
|
|
88
123
|
"char": "h",
|
|
89
124
|
"description": "The hub ID (e.g. SGVsbG8h…)",
|
|
@@ -92,13 +127,11 @@
|
|
|
92
127
|
{
|
|
93
128
|
"type": "none",
|
|
94
129
|
"flags": [
|
|
95
|
-
"spoke_id",
|
|
96
130
|
"chain_id",
|
|
97
131
|
"hub_address"
|
|
98
132
|
]
|
|
99
133
|
}
|
|
100
134
|
],
|
|
101
|
-
"required": false,
|
|
102
135
|
"hasDynamicHelp": false,
|
|
103
136
|
"helpValue": "<hub-id>",
|
|
104
137
|
"multiple": false,
|
|
@@ -112,7 +145,6 @@
|
|
|
112
145
|
{
|
|
113
146
|
"type": "none",
|
|
114
147
|
"flags": [
|
|
115
|
-
"spoke_id",
|
|
116
148
|
"hub_id"
|
|
117
149
|
]
|
|
118
150
|
}
|
|
@@ -133,7 +165,6 @@
|
|
|
133
165
|
{
|
|
134
166
|
"type": "none",
|
|
135
167
|
"flags": [
|
|
136
|
-
"spoke_id",
|
|
137
168
|
"hub_id"
|
|
138
169
|
]
|
|
139
170
|
},
|
|
@@ -152,7 +183,7 @@
|
|
|
152
183
|
},
|
|
153
184
|
"hasDynamicHelp": false,
|
|
154
185
|
"hiddenAliases": [],
|
|
155
|
-
"id": "
|
|
186
|
+
"id": "spokes:list",
|
|
156
187
|
"pluginAlias": "@aave/cli",
|
|
157
188
|
"pluginName": "@aave/cli",
|
|
158
189
|
"pluginType": "core",
|
|
@@ -162,14 +193,14 @@
|
|
|
162
193
|
"relativePath": [
|
|
163
194
|
"dist",
|
|
164
195
|
"commands",
|
|
165
|
-
"
|
|
196
|
+
"spokes",
|
|
166
197
|
"list.js"
|
|
167
198
|
]
|
|
168
199
|
},
|
|
169
|
-
"
|
|
200
|
+
"reserves:list": {
|
|
170
201
|
"aliases": [],
|
|
171
202
|
"args": {},
|
|
172
|
-
"description": "List Aave v4
|
|
203
|
+
"description": "List Aave v4 reserves",
|
|
173
204
|
"flags": {
|
|
174
205
|
"json": {
|
|
175
206
|
"description": "Format output as json.",
|
|
@@ -185,6 +216,26 @@
|
|
|
185
216
|
"allowNo": false,
|
|
186
217
|
"type": "boolean"
|
|
187
218
|
},
|
|
219
|
+
"spoke_id": {
|
|
220
|
+
"char": "s",
|
|
221
|
+
"description": "The spoke ID (e.g. SGVsbG8h…)",
|
|
222
|
+
"name": "spoke_id",
|
|
223
|
+
"relationships": [
|
|
224
|
+
{
|
|
225
|
+
"type": "none",
|
|
226
|
+
"flags": [
|
|
227
|
+
"hub_id",
|
|
228
|
+
"chain_id",
|
|
229
|
+
"hub_address"
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"required": false,
|
|
234
|
+
"hasDynamicHelp": false,
|
|
235
|
+
"helpValue": "<spoke-id>",
|
|
236
|
+
"multiple": false,
|
|
237
|
+
"type": "option"
|
|
238
|
+
},
|
|
188
239
|
"hub_id": {
|
|
189
240
|
"char": "h",
|
|
190
241
|
"description": "The hub ID (e.g. SGVsbG8h…)",
|
|
@@ -193,11 +244,13 @@
|
|
|
193
244
|
{
|
|
194
245
|
"type": "none",
|
|
195
246
|
"flags": [
|
|
247
|
+
"spoke_id",
|
|
196
248
|
"chain_id",
|
|
197
249
|
"hub_address"
|
|
198
250
|
]
|
|
199
251
|
}
|
|
200
252
|
],
|
|
253
|
+
"required": false,
|
|
201
254
|
"hasDynamicHelp": false,
|
|
202
255
|
"helpValue": "<hub-id>",
|
|
203
256
|
"multiple": false,
|
|
@@ -211,6 +264,7 @@
|
|
|
211
264
|
{
|
|
212
265
|
"type": "none",
|
|
213
266
|
"flags": [
|
|
267
|
+
"spoke_id",
|
|
214
268
|
"hub_id"
|
|
215
269
|
]
|
|
216
270
|
}
|
|
@@ -231,6 +285,7 @@
|
|
|
231
285
|
{
|
|
232
286
|
"type": "none",
|
|
233
287
|
"flags": [
|
|
288
|
+
"spoke_id",
|
|
234
289
|
"hub_id"
|
|
235
290
|
]
|
|
236
291
|
},
|
|
@@ -249,7 +304,7 @@
|
|
|
249
304
|
},
|
|
250
305
|
"hasDynamicHelp": false,
|
|
251
306
|
"hiddenAliases": [],
|
|
252
|
-
"id": "
|
|
307
|
+
"id": "reserves:list",
|
|
253
308
|
"pluginAlias": "@aave/cli",
|
|
254
309
|
"pluginName": "@aave/cli",
|
|
255
310
|
"pluginType": "core",
|
|
@@ -259,10 +314,120 @@
|
|
|
259
314
|
"relativePath": [
|
|
260
315
|
"dist",
|
|
261
316
|
"commands",
|
|
262
|
-
"
|
|
317
|
+
"reserves",
|
|
318
|
+
"list.js"
|
|
319
|
+
]
|
|
320
|
+
},
|
|
321
|
+
"supplies:list": {
|
|
322
|
+
"aliases": [],
|
|
323
|
+
"args": {},
|
|
324
|
+
"description": "List user supplies for a specific chain",
|
|
325
|
+
"flags": {
|
|
326
|
+
"json": {
|
|
327
|
+
"description": "Format output as json.",
|
|
328
|
+
"helpGroup": "GLOBAL",
|
|
329
|
+
"name": "json",
|
|
330
|
+
"allowNo": false,
|
|
331
|
+
"type": "boolean"
|
|
332
|
+
},
|
|
333
|
+
"staging": {
|
|
334
|
+
"description": "Use staging environment",
|
|
335
|
+
"hidden": true,
|
|
336
|
+
"name": "staging",
|
|
337
|
+
"allowNo": false,
|
|
338
|
+
"type": "boolean"
|
|
339
|
+
},
|
|
340
|
+
"user": {
|
|
341
|
+
"description": "User address",
|
|
342
|
+
"name": "user",
|
|
343
|
+
"required": true,
|
|
344
|
+
"hasDynamicHelp": false,
|
|
345
|
+
"helpValue": "<evm-address>",
|
|
346
|
+
"multiple": false,
|
|
347
|
+
"type": "option"
|
|
348
|
+
},
|
|
349
|
+
"chain_id": {
|
|
350
|
+
"char": "c",
|
|
351
|
+
"description": "Chain ID to query supplies from",
|
|
352
|
+
"name": "chain_id",
|
|
353
|
+
"required": true,
|
|
354
|
+
"hasDynamicHelp": false,
|
|
355
|
+
"helpValue": "<chain-id>",
|
|
356
|
+
"multiple": false,
|
|
357
|
+
"type": "option"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"hasDynamicHelp": false,
|
|
361
|
+
"hiddenAliases": [],
|
|
362
|
+
"id": "supplies:list",
|
|
363
|
+
"pluginAlias": "@aave/cli",
|
|
364
|
+
"pluginName": "@aave/cli",
|
|
365
|
+
"pluginType": "core",
|
|
366
|
+
"strict": true,
|
|
367
|
+
"enableJsonFlag": true,
|
|
368
|
+
"isESM": true,
|
|
369
|
+
"relativePath": [
|
|
370
|
+
"dist",
|
|
371
|
+
"commands",
|
|
372
|
+
"supplies",
|
|
373
|
+
"list.js"
|
|
374
|
+
]
|
|
375
|
+
},
|
|
376
|
+
"positions:list": {
|
|
377
|
+
"aliases": [],
|
|
378
|
+
"args": {},
|
|
379
|
+
"description": "List user positions across chains",
|
|
380
|
+
"flags": {
|
|
381
|
+
"json": {
|
|
382
|
+
"description": "Format output as json.",
|
|
383
|
+
"helpGroup": "GLOBAL",
|
|
384
|
+
"name": "json",
|
|
385
|
+
"allowNo": false,
|
|
386
|
+
"type": "boolean"
|
|
387
|
+
},
|
|
388
|
+
"staging": {
|
|
389
|
+
"description": "Use staging environment",
|
|
390
|
+
"hidden": true,
|
|
391
|
+
"name": "staging",
|
|
392
|
+
"allowNo": false,
|
|
393
|
+
"type": "boolean"
|
|
394
|
+
},
|
|
395
|
+
"user": {
|
|
396
|
+
"description": "User address",
|
|
397
|
+
"name": "user",
|
|
398
|
+
"required": true,
|
|
399
|
+
"hasDynamicHelp": false,
|
|
400
|
+
"helpValue": "<evm-address>",
|
|
401
|
+
"multiple": false,
|
|
402
|
+
"type": "option"
|
|
403
|
+
},
|
|
404
|
+
"chain_id": {
|
|
405
|
+
"char": "c",
|
|
406
|
+
"description": "Filter by chain ID",
|
|
407
|
+
"name": "chain_id",
|
|
408
|
+
"required": true,
|
|
409
|
+
"hasDynamicHelp": false,
|
|
410
|
+
"helpValue": "<chain-id>",
|
|
411
|
+
"multiple": false,
|
|
412
|
+
"type": "option"
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
"hasDynamicHelp": false,
|
|
416
|
+
"hiddenAliases": [],
|
|
417
|
+
"id": "positions:list",
|
|
418
|
+
"pluginAlias": "@aave/cli",
|
|
419
|
+
"pluginName": "@aave/cli",
|
|
420
|
+
"pluginType": "core",
|
|
421
|
+
"strict": true,
|
|
422
|
+
"enableJsonFlag": true,
|
|
423
|
+
"isESM": true,
|
|
424
|
+
"relativePath": [
|
|
425
|
+
"dist",
|
|
426
|
+
"commands",
|
|
427
|
+
"positions",
|
|
263
428
|
"list.js"
|
|
264
429
|
]
|
|
265
430
|
}
|
|
266
431
|
},
|
|
267
|
-
"version": "4.1.0-next.
|
|
432
|
+
"version": "4.1.0-next.39"
|
|
268
433
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aave/cli",
|
|
3
|
-
"version": "4.1.0-next.
|
|
3
|
+
"version": "4.1.0-next.39",
|
|
4
4
|
"description": "CLI to interact with AaveKit API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aave",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"@oclif/plugin-help": "^6",
|
|
31
31
|
"@oclif/plugin-plugins": "^5",
|
|
32
32
|
"tty-table": "^5.0.0",
|
|
33
|
-
"@aave/client": "4.0.0-next.
|
|
33
|
+
"@aave/client": "4.0.0-next.47"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@oclif/test": "^4",
|
|
37
37
|
"@types/node": "^24",
|
|
38
|
-
"oclif": "^4.22.
|
|
39
|
-
"rimraf": "^6.1.
|
|
38
|
+
"oclif": "^4.22.81",
|
|
39
|
+
"rimraf": "^6.1.3",
|
|
40
40
|
"tsx": "^4.20.3",
|
|
41
41
|
"typescript": "^5"
|
|
42
42
|
},
|