@paylobster/cli 4.3.0 → 4.5.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.
- package/README.md +82 -40
- package/dist/src/commands/dashboard.d.ts +3 -0
- package/dist/src/commands/dashboard.d.ts.map +1 -0
- package/dist/src/commands/dashboard.js +67 -0
- package/dist/src/commands/dashboard.js.map +1 -0
- package/dist/src/commands/export.d.ts +3 -0
- package/dist/src/commands/export.d.ts.map +1 -0
- package/dist/src/commands/export.js +97 -0
- package/dist/src/commands/export.js.map +1 -0
- package/dist/src/commands/health.d.ts +3 -0
- package/dist/src/commands/health.d.ts.map +1 -0
- package/dist/src/commands/health.js +165 -0
- package/dist/src/commands/health.js.map +1 -0
- package/dist/src/commands/invest.d.ts +3 -0
- package/dist/src/commands/invest.d.ts.map +1 -0
- package/dist/src/commands/invest.js +721 -0
- package/dist/src/commands/invest.js.map +1 -0
- package/dist/src/commands/quickstart.d.ts +3 -0
- package/dist/src/commands/quickstart.d.ts.map +1 -0
- package/dist/src/commands/quickstart.js +138 -0
- package/dist/src/commands/quickstart.js.map +1 -0
- package/dist/src/commands/search.d.ts +3 -0
- package/dist/src/commands/search.d.ts.map +1 -0
- package/dist/src/commands/search.js +126 -0
- package/dist/src/commands/search.js.map +1 -0
- package/dist/src/commands/treasury.d.ts.map +1 -1
- package/dist/src/commands/treasury.js +317 -0
- package/dist/src/commands/treasury.js.map +1 -1
- package/dist/src/commands/trust-graph.d.ts +3 -0
- package/dist/src/commands/trust-graph.d.ts.map +1 -0
- package/dist/src/commands/trust-graph.js +282 -0
- package/dist/src/commands/trust-graph.js.map +1 -0
- package/dist/src/commands/whoami.d.ts +3 -0
- package/dist/src/commands/whoami.d.ts.map +1 -0
- package/dist/src/commands/whoami.js +160 -0
- package/dist/src/commands/whoami.js.map +1 -0
- package/dist/src/index.js +18 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/contracts.d.ts +177 -23
- package/dist/src/lib/contracts.d.ts.map +1 -1
- package/dist/src/lib/contracts.js +151 -0
- package/dist/src/lib/contracts.js.map +1 -1
- package/package.json +4 -2
- package/src/commands/dashboard.ts +69 -0
- package/src/commands/export.ts +132 -0
- package/src/commands/health.ts +212 -0
- package/src/commands/invest.ts +810 -0
- package/src/commands/quickstart.ts +150 -0
- package/src/commands/search.ts +151 -0
- package/src/commands/treasury.ts +385 -0
- package/src/commands/trust-graph.ts +267 -0
- package/src/commands/whoami.ts +172 -0
- package/src/index.ts +18 -2
- package/src/lib/contracts.ts +159 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 🦞 PayLobster CLI (`
|
|
1
|
+
# 🦞 PayLobster CLI (`paylobster`)
|
|
2
2
|
|
|
3
3
|
Command-line interface for PayLobster — agent payment infrastructure on Base.
|
|
4
4
|
|
|
@@ -12,103 +12,138 @@ npm install -g @paylobster/cli
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
# 1. Set up your wallet
|
|
15
|
-
|
|
15
|
+
paylobster auth --private-key 0x...
|
|
16
16
|
# Or use environment variable
|
|
17
17
|
export PRIVATE_KEY="0x..."
|
|
18
|
-
|
|
18
|
+
paylobster auth --env PRIVATE_KEY
|
|
19
19
|
|
|
20
20
|
# 2. Configure network
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
paylobster config set network mainnet # Base Mainnet
|
|
22
|
+
paylobster config set network sepolia # Base Sepolia (testnet)
|
|
23
23
|
|
|
24
24
|
# 3. Register your agent
|
|
25
|
-
|
|
25
|
+
paylobster register --name "my-agent" --capabilities "code-review,analysis"
|
|
26
26
|
|
|
27
27
|
# 4. Check status
|
|
28
|
-
|
|
28
|
+
paylobster status
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
## Commands
|
|
32
32
|
|
|
33
|
-
### `
|
|
33
|
+
### `paylobster auth`
|
|
34
34
|
|
|
35
35
|
Configure wallet authentication.
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
paylobster auth --private-key 0x... # Save to keystore
|
|
39
|
+
paylobster auth --env PRIVATE_KEY # Use env variable
|
|
40
|
+
paylobster auth # Show current wallet
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
### `
|
|
43
|
+
### `paylobster config`
|
|
44
44
|
|
|
45
45
|
Manage configuration.
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
paylobster config show # Show current config
|
|
49
|
+
paylobster config set network mainnet # Set network
|
|
50
|
+
paylobster config set rpcUrl https://base-rpc.publicnode.com
|
|
51
|
+
paylobster config reset # Reset to defaults
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
### `
|
|
54
|
+
### `paylobster register`
|
|
55
55
|
|
|
56
56
|
Register agent identity on-chain.
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
|
|
59
|
+
paylobster register --name "my-agent" --capabilities "code-review,testing"
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
### `
|
|
62
|
+
### `paylobster status`
|
|
63
63
|
|
|
64
64
|
View agent status, balances, and reputation.
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
paylobster status # Pretty output
|
|
68
|
+
paylobster status --json # Machine-readable
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
### `
|
|
71
|
+
### `paylobster escrow`
|
|
72
72
|
|
|
73
73
|
Create and manage escrow payments.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
paylobster escrow create --to 0x... --amount 50
|
|
77
|
+
paylobster escrow list
|
|
78
|
+
paylobster escrow get <escrow-id>
|
|
79
|
+
paylobster escrow release <escrow-id>
|
|
80
|
+
paylobster escrow release <escrow-id> --yes # Skip confirmation
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
### `
|
|
83
|
+
### `paylobster pay`
|
|
84
84
|
|
|
85
85
|
Quick payment (creates escrow).
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
|
|
88
|
+
paylobster pay --to 0x... --amount 25 --description "Bug fix"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
### `
|
|
91
|
+
### `paylobster reputation`
|
|
92
92
|
|
|
93
93
|
Check reputation scores.
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
paylobster reputation # Your reputation
|
|
97
|
+
paylobster reputation 0x... # Someone else's
|
|
98
|
+
paylobster reputation --json
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
### `
|
|
101
|
+
### `paylobster mandate`
|
|
102
102
|
|
|
103
103
|
Manage spending mandates.
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
paylobster mandate create --agent 0x... --limit 100 --duration 30
|
|
107
|
+
paylobster mandate list
|
|
108
|
+
paylobster mandate revoke <id>
|
|
109
|
+
paylobster mandate adjust <id> --limit 200
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
+
### `paylobster trust` (V4.4)
|
|
113
|
+
|
|
114
|
+
Manage and query the trust network.
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Endorse another agent after completing a transaction
|
|
118
|
+
paylobster trust endorse 0x... 85 # Trust level 1-100
|
|
119
|
+
|
|
120
|
+
# Revoke an endorsement
|
|
121
|
+
paylobster trust revoke 0x...
|
|
122
|
+
|
|
123
|
+
# Check direct trust between agents
|
|
124
|
+
paylobster trust check 0xAlice 0xBob
|
|
125
|
+
|
|
126
|
+
# Calculate inferred trust through network (BFS with decay)
|
|
127
|
+
paylobster trust check 0xAlice 0xEve --inferred --depth 4
|
|
128
|
+
|
|
129
|
+
# Get aggregate trust score (reputation-weighted)
|
|
130
|
+
paylobster trust score 0x...
|
|
131
|
+
|
|
132
|
+
# List endorsed agents
|
|
133
|
+
paylobster trust endorsements # Your endorsements
|
|
134
|
+
paylobster trust endorsements 0x... # Someone else's
|
|
135
|
+
|
|
136
|
+
# List endorsers
|
|
137
|
+
paylobster trust endorsers # Your endorsers
|
|
138
|
+
paylobster trust endorsers 0x... # Someone else's endorsers
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Anti-Sybil Protection:**
|
|
142
|
+
- Identity NFT required
|
|
143
|
+
- Minimum reputation: 30
|
|
144
|
+
- Must have completed transaction
|
|
145
|
+
- Rate limit: 10 endorsements/day
|
|
146
|
+
|
|
112
147
|
### All Commands
|
|
113
148
|
|
|
114
149
|
| Command | Description |
|
|
@@ -121,6 +156,7 @@ plob mandate adjust <id> --limit 200
|
|
|
121
156
|
| `plob pay` | Quick payment (creates escrow) |
|
|
122
157
|
| `plob reputation` | Check agent reputation |
|
|
123
158
|
| `plob mandate` | Create, list, revoke spending mandates |
|
|
159
|
+
| `plob trust` | Manage and query trust network (V4.4) |
|
|
124
160
|
|
|
125
161
|
All commands support `--json` for automation.
|
|
126
162
|
|
|
@@ -134,6 +170,7 @@ All commands support `--json` for automation.
|
|
|
134
170
|
| Reputation | `0x02bb4132a86134684976E2a52E43D59D89E64b29` |
|
|
135
171
|
| Credit | `0xD9241Ce8a721Ef5fcCAc5A11983addC526eC80E1` |
|
|
136
172
|
| Escrow V3 | `0x49EdEe04c78B7FeD5248A20706c7a6c540748806` |
|
|
173
|
+
| TrustGraph | `TBD - Pending deployment` |
|
|
137
174
|
| USDC | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` |
|
|
138
175
|
|
|
139
176
|
### Base Sepolia
|
|
@@ -144,6 +181,7 @@ All commands support `--json` for automation.
|
|
|
144
181
|
| Reputation | `0xb0033901e3b94f4F36dA0b3e59A1F4AD9f4f1697` |
|
|
145
182
|
| Credit | `0xBA64e2b2F2a80D03A4B13b3396942C1e78205C7d` |
|
|
146
183
|
| Escrow V3 | `0x78D1f50a1965dE34f6b5a3D3546C94FE1809Cd82` |
|
|
184
|
+
| TrustGraph | `TBD - Pending deployment` |
|
|
147
185
|
| USDC | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` |
|
|
148
186
|
|
|
149
187
|
## Networks
|
|
@@ -173,10 +211,14 @@ Stored in `~/.plob/config.json`:
|
|
|
173
211
|
## Resources
|
|
174
212
|
|
|
175
213
|
- **Website**: [paylobster.com](https://paylobster.com)
|
|
176
|
-
- **
|
|
177
|
-
-
|
|
214
|
+
- **Documentation**:
|
|
215
|
+
- [Architecture](../docs/ARCHITECTURE.md)
|
|
216
|
+
- [Quickstart](../docs/QUICKSTART.md)
|
|
217
|
+
- [Ecosystem Map](../docs/ECOSYSTEM_MAP.md)
|
|
178
218
|
- **SDK**: [npmjs.com/package/pay-lobster](https://www.npmjs.com/package/pay-lobster)
|
|
179
219
|
- **MCP Server**: [npmjs.com/package/@paylobster/mcp-server](https://www.npmjs.com/package/@paylobster/mcp-server)
|
|
220
|
+
- **AgentKit Provider**: [npmjs.com/package/@paylobster/agentkit-provider](https://www.npmjs.com/package/@paylobster/agentkit-provider)
|
|
221
|
+
- **Agent Toolkit**: [npmjs.com/package/@paylobster/agent-toolkit](https://www.npmjs.com/package/@paylobster/agent-toolkit)
|
|
180
222
|
|
|
181
223
|
## License
|
|
182
224
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,wBAAgB,sBAAsB,IAAI,OAAO,CA+BhD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDashboardCommand = createDashboardCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const display_1 = require("../lib/display");
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const util_1 = require("util");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
13
|
+
const BASE_URL = 'https://paylobster.com';
|
|
14
|
+
async function openURL(url) {
|
|
15
|
+
const platform = process.platform;
|
|
16
|
+
let command;
|
|
17
|
+
switch (platform) {
|
|
18
|
+
case 'darwin':
|
|
19
|
+
command = `open "${url}"`;
|
|
20
|
+
break;
|
|
21
|
+
case 'win32':
|
|
22
|
+
command = `start "" "${url}"`;
|
|
23
|
+
break;
|
|
24
|
+
default: // linux, freebsd, etc.
|
|
25
|
+
command = `xdg-open "${url}"`;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
await execAsync(command);
|
|
30
|
+
(0, display_1.success)(`Opened ${url} in your default browser`);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
(0, display_1.error)(`Failed to open browser: ${err.message}`);
|
|
34
|
+
console.log(chalk_1.default.yellow('Please open this URL manually:'), chalk_1.default.cyan(url));
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function createDashboardCommand() {
|
|
39
|
+
const cmd = new commander_1.Command('dashboard')
|
|
40
|
+
.description('🌐 Open PayLobster web dashboard')
|
|
41
|
+
.argument('[page]', 'Dashboard page (treasury, investments, swap)', '')
|
|
42
|
+
.action(async (page) => {
|
|
43
|
+
let url = `${BASE_URL}/dashboard`;
|
|
44
|
+
switch (page.toLowerCase()) {
|
|
45
|
+
case 'treasury':
|
|
46
|
+
url += '/treasury';
|
|
47
|
+
break;
|
|
48
|
+
case 'investments':
|
|
49
|
+
url += '/investments';
|
|
50
|
+
break;
|
|
51
|
+
case 'swap':
|
|
52
|
+
url += '/swap';
|
|
53
|
+
break;
|
|
54
|
+
case '':
|
|
55
|
+
// Default dashboard
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
console.log(chalk_1.default.yellow(`Unknown page: ${page}`));
|
|
59
|
+
console.log(chalk_1.default.gray('Available pages: treasury, investments, swap'));
|
|
60
|
+
console.log(chalk_1.default.gray('Opening default dashboard...\n'));
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
await openURL(url);
|
|
64
|
+
});
|
|
65
|
+
return cmd;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/commands/dashboard.ts"],"names":[],"mappings":";;;;;AAqCA,wDA+BC;AApED,yCAAoC;AACpC,4CAAgD;AAChD,iDAAqC;AACrC,+BAAiC;AACjC,kDAA0B;AAE1B,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAElC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,OAAe,CAAC;IAEpB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;YAC9B,MAAM;QACR,SAAS,uBAAuB;YAC9B,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC;YAC9B,MAAM;IACV,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACzB,IAAA,iBAAO,EAAC,UAAU,GAAG,0BAA0B,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAA,eAAK,EAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB;IACpC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,WAAW,CAAC;SACjC,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,QAAQ,EAAE,8CAA8C,EAAE,EAAE,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,GAAG,GAAG,GAAG,QAAQ,YAAY,CAAC;QAElC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,KAAK,UAAU;gBACb,GAAG,IAAI,WAAW,CAAC;gBACnB,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,IAAI,cAAc,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,IAAI,OAAO,CAAC;gBACf,MAAM;YACR,KAAK,EAAE;gBACL,oBAAoB;gBACpB,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAC1D,MAAM;QACV,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,mBAAmB,IAAI,OAAO,CAwF7C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createExportCommand = createExportCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const contracts_1 = require("../lib/contracts");
|
|
9
|
+
const wallet_1 = require("../lib/wallet");
|
|
10
|
+
const config_1 = require("../lib/config");
|
|
11
|
+
const display_1 = require("../lib/display");
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
const ora_1 = __importDefault(require("ora"));
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
function createExportCommand() {
|
|
17
|
+
const cmd = new commander_1.Command('export')
|
|
18
|
+
.description('📦 Export all your PayLobster data')
|
|
19
|
+
.option('-o, --output <file>', 'Output file path (default: stdout)')
|
|
20
|
+
.action(async (options) => {
|
|
21
|
+
const spinner = (0, ora_1.default)('Collecting your data...').start();
|
|
22
|
+
try {
|
|
23
|
+
const address = (0, wallet_1.getWalletAddress)();
|
|
24
|
+
const config = (0, config_1.loadConfig)();
|
|
25
|
+
// Fetch all data
|
|
26
|
+
spinner.text = 'Fetching identity, reputation, credit...';
|
|
27
|
+
const [agentInfo, reputation, creditStatus, balance, escrowCount] = await Promise.all([
|
|
28
|
+
(0, contracts_1.getAgentInfo)(address),
|
|
29
|
+
(0, contracts_1.getReputation)(address),
|
|
30
|
+
(0, contracts_1.getCreditStatus)(address),
|
|
31
|
+
(0, contracts_1.getBalance)(address),
|
|
32
|
+
(0, contracts_1.getUserEscrowCount)(address),
|
|
33
|
+
]);
|
|
34
|
+
spinner.text = 'Formatting data...';
|
|
35
|
+
// Build export object
|
|
36
|
+
const exportData = {
|
|
37
|
+
exportedAt: new Date().toISOString(),
|
|
38
|
+
network: config.network,
|
|
39
|
+
identity: {
|
|
40
|
+
name: agentInfo.name,
|
|
41
|
+
address,
|
|
42
|
+
tokenId: agentInfo.tokenId.toString(),
|
|
43
|
+
registered: agentInfo.registered,
|
|
44
|
+
},
|
|
45
|
+
reputation: {
|
|
46
|
+
score: Number(reputation.score),
|
|
47
|
+
trustVector: reputation.trustVector.toString(),
|
|
48
|
+
},
|
|
49
|
+
credit: {
|
|
50
|
+
limit: (0, contracts_1.formatUSDC)(creditStatus.limit),
|
|
51
|
+
available: (0, contracts_1.formatUSDC)(creditStatus.available),
|
|
52
|
+
inUse: (0, contracts_1.formatUSDC)(creditStatus.inUse),
|
|
53
|
+
},
|
|
54
|
+
balances: {
|
|
55
|
+
usdc: (0, contracts_1.formatUSDC)(balance.usdc),
|
|
56
|
+
eth: (0, contracts_1.formatETH)(balance.eth),
|
|
57
|
+
},
|
|
58
|
+
activity: {
|
|
59
|
+
escrowCount,
|
|
60
|
+
},
|
|
61
|
+
treasury: {
|
|
62
|
+
summary: 'Not yet implemented',
|
|
63
|
+
},
|
|
64
|
+
investments: {
|
|
65
|
+
portfolio: 'Not yet implemented',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
const jsonOutput = JSON.stringify(exportData, null, 2);
|
|
69
|
+
spinner.stop();
|
|
70
|
+
// Output to file or stdout
|
|
71
|
+
if (options.output) {
|
|
72
|
+
const outputPath = (0, path_1.resolve)(options.output);
|
|
73
|
+
(0, fs_1.writeFileSync)(outputPath, jsonOutput, 'utf-8');
|
|
74
|
+
(0, display_1.success)(`Data exported to ${outputPath}`);
|
|
75
|
+
// Show summary
|
|
76
|
+
console.log();
|
|
77
|
+
console.log(chalk_1.default.gray('Summary:'));
|
|
78
|
+
console.log(chalk_1.default.gray(' Agent: '), chalk_1.default.white(agentInfo.name || 'Not registered'));
|
|
79
|
+
console.log(chalk_1.default.gray(' Reputation: '), chalk_1.default.white(reputation.score.toString()));
|
|
80
|
+
console.log(chalk_1.default.gray(' USDC: '), chalk_1.default.white((0, contracts_1.formatUSDC)(balance.usdc)));
|
|
81
|
+
console.log(chalk_1.default.gray(' Escrows: '), chalk_1.default.white(escrowCount.toString()));
|
|
82
|
+
console.log();
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Output to stdout
|
|
86
|
+
console.log(jsonOutput);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
spinner.stop();
|
|
91
|
+
(0, display_1.error)(`Export failed: ${err.message}`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return cmd;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqFpC,wBAAgB,mBAAmB,IAAI,OAAO,CA8H7C"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createHealthCommand = createHealthCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const contracts_1 = require("../lib/contracts");
|
|
9
|
+
const config_1 = require("../lib/config");
|
|
10
|
+
const display_1 = require("../lib/display");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const ora_1 = __importDefault(require("ora"));
|
|
13
|
+
const CONTRACT_NAMES = {
|
|
14
|
+
IDENTITY: 'Identity Registry',
|
|
15
|
+
REPUTATION: 'Reputation System',
|
|
16
|
+
CREDIT: 'Credit Manager',
|
|
17
|
+
ESCROW: 'Escrow V3',
|
|
18
|
+
USDC: 'USDC Token',
|
|
19
|
+
};
|
|
20
|
+
// Additional contract addresses from the requirements
|
|
21
|
+
const ADDITIONAL_CONTRACTS_MAINNET = {
|
|
22
|
+
POLICY_REGISTRY: '0x20a30064629e797a88fCdBa2A4C310971bF8A0F2',
|
|
23
|
+
CROSS_RAIL_LEDGER: '0x74AcB48650f12368960325d3c7304965fd62db18',
|
|
24
|
+
SPENDING_MANDATE: '0x8609eBA4F8B6081AcC8ce8B0C126C515f6140849',
|
|
25
|
+
TREASURY_FACTORY: '0x171a685f28546a0ebb13059184db1f808b915066',
|
|
26
|
+
INVESTMENT_TERMSHEET: '0xfa4d9933422401e8b0846f14889b383e068860eb',
|
|
27
|
+
};
|
|
28
|
+
const ADDITIONAL_CONTRACT_NAMES = {
|
|
29
|
+
POLICY_REGISTRY: 'Policy Registry',
|
|
30
|
+
CROSS_RAIL_LEDGER: 'CrossRail Ledger',
|
|
31
|
+
SPENDING_MANDATE: 'Spending Mandate',
|
|
32
|
+
TREASURY_FACTORY: 'Treasury Factory',
|
|
33
|
+
INVESTMENT_TERMSHEET: 'Investment TermSheet',
|
|
34
|
+
};
|
|
35
|
+
async function checkContract(client, name, address) {
|
|
36
|
+
try {
|
|
37
|
+
// Simple check: get code at address
|
|
38
|
+
const code = await client.getBytecode({ address });
|
|
39
|
+
if (!code || code === '0x') {
|
|
40
|
+
return {
|
|
41
|
+
name,
|
|
42
|
+
address,
|
|
43
|
+
status: 'error',
|
|
44
|
+
error: 'No contract code found',
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// Get current block number
|
|
48
|
+
const blockNumber = await client.getBlockNumber();
|
|
49
|
+
return {
|
|
50
|
+
name,
|
|
51
|
+
address,
|
|
52
|
+
status: 'ok',
|
|
53
|
+
blockNumber,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
return {
|
|
58
|
+
name,
|
|
59
|
+
address,
|
|
60
|
+
status: 'error',
|
|
61
|
+
error: err.message,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function createHealthCommand() {
|
|
66
|
+
const cmd = new commander_1.Command('health')
|
|
67
|
+
.description('🏥 Check PayLobster contract health')
|
|
68
|
+
.option('--json', 'Output as JSON')
|
|
69
|
+
.action(async (options) => {
|
|
70
|
+
const spinner = (0, ora_1.default)('Checking contract health...').start();
|
|
71
|
+
try {
|
|
72
|
+
const config = (0, config_1.loadConfig)();
|
|
73
|
+
const client = (0, contracts_1.getPublicClient)(config.network);
|
|
74
|
+
const contracts = (0, contracts_1.getContracts)(config.network);
|
|
75
|
+
// Get chain info
|
|
76
|
+
const [blockNumber, gasPrice] = await Promise.all([
|
|
77
|
+
client.getBlockNumber(),
|
|
78
|
+
client.getGasPrice(),
|
|
79
|
+
]);
|
|
80
|
+
const chainInfo = {
|
|
81
|
+
network: config.network === 'mainnet' ? 'Base Mainnet' : 'Base Sepolia',
|
|
82
|
+
blockNumber,
|
|
83
|
+
gasPrice,
|
|
84
|
+
};
|
|
85
|
+
// Build contract list to check
|
|
86
|
+
const contractsToCheck = [
|
|
87
|
+
{ name: CONTRACT_NAMES.IDENTITY, address: contracts.IDENTITY },
|
|
88
|
+
{ name: CONTRACT_NAMES.REPUTATION, address: contracts.REPUTATION },
|
|
89
|
+
{ name: CONTRACT_NAMES.CREDIT, address: contracts.CREDIT },
|
|
90
|
+
{ name: CONTRACT_NAMES.ESCROW, address: contracts.ESCROW },
|
|
91
|
+
{ name: CONTRACT_NAMES.USDC, address: contracts.USDC },
|
|
92
|
+
];
|
|
93
|
+
// Add additional contracts for mainnet
|
|
94
|
+
if (config.network === 'mainnet') {
|
|
95
|
+
contractsToCheck.push({ name: ADDITIONAL_CONTRACT_NAMES.POLICY_REGISTRY, address: ADDITIONAL_CONTRACTS_MAINNET.POLICY_REGISTRY }, { name: ADDITIONAL_CONTRACT_NAMES.CROSS_RAIL_LEDGER, address: ADDITIONAL_CONTRACTS_MAINNET.CROSS_RAIL_LEDGER }, { name: ADDITIONAL_CONTRACT_NAMES.SPENDING_MANDATE, address: ADDITIONAL_CONTRACTS_MAINNET.SPENDING_MANDATE }, { name: ADDITIONAL_CONTRACT_NAMES.TREASURY_FACTORY, address: ADDITIONAL_CONTRACTS_MAINNET.TREASURY_FACTORY }, { name: ADDITIONAL_CONTRACT_NAMES.INVESTMENT_TERMSHEET, address: ADDITIONAL_CONTRACTS_MAINNET.INVESTMENT_TERMSHEET });
|
|
96
|
+
}
|
|
97
|
+
// Check all contracts in parallel
|
|
98
|
+
const healthChecks = await Promise.all(contractsToCheck.map(({ name, address }) => checkContract(client, name, address)));
|
|
99
|
+
spinner.stop();
|
|
100
|
+
// Count successes and failures
|
|
101
|
+
const successCount = healthChecks.filter((c) => c.status === 'ok').length;
|
|
102
|
+
const failureCount = healthChecks.filter((c) => c.status === 'error').length;
|
|
103
|
+
// JSON output
|
|
104
|
+
if ((0, display_1.outputJSON)({
|
|
105
|
+
chain: chainInfo,
|
|
106
|
+
contracts: healthChecks,
|
|
107
|
+
summary: {
|
|
108
|
+
total: healthChecks.length,
|
|
109
|
+
healthy: successCount,
|
|
110
|
+
unhealthy: failureCount,
|
|
111
|
+
},
|
|
112
|
+
}, options)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// Pretty output
|
|
116
|
+
console.log('\n' + chalk_1.default.cyan.bold('═══════════════════════════════════════════════════════════'));
|
|
117
|
+
console.log(chalk_1.default.cyan.bold(' 🏥 PayLobster Health Check'));
|
|
118
|
+
console.log(chalk_1.default.cyan.bold('═══════════════════════════════════════════════════════════\n'));
|
|
119
|
+
// Chain info
|
|
120
|
+
console.log(chalk_1.default.bold.underline('⛓️ CHAIN INFO'));
|
|
121
|
+
console.log();
|
|
122
|
+
console.log(chalk_1.default.gray(' Network: '), chalk_1.default.white(chainInfo.network));
|
|
123
|
+
console.log(chalk_1.default.gray(' Block Number: '), chalk_1.default.white(chainInfo.blockNumber.toString()));
|
|
124
|
+
console.log(chalk_1.default.gray(' Gas Price: '), chalk_1.default.white((Number(chainInfo.gasPrice) / 1e9).toFixed(2)), chalk_1.default.dim('Gwei'));
|
|
125
|
+
console.log();
|
|
126
|
+
// Contract status
|
|
127
|
+
console.log(chalk_1.default.bold.underline('📜 CONTRACT STATUS'));
|
|
128
|
+
console.log();
|
|
129
|
+
for (const contract of healthChecks) {
|
|
130
|
+
const statusIcon = contract.status === 'ok' ? chalk_1.default.green('✅') : chalk_1.default.red('❌');
|
|
131
|
+
const statusText = contract.status === 'ok' ? chalk_1.default.green('responding') : chalk_1.default.red('error');
|
|
132
|
+
console.log(` ${statusIcon} ${chalk_1.default.bold(contract.name)}`);
|
|
133
|
+
console.log(chalk_1.default.gray(' Address: '), chalk_1.default.dim(contract.address));
|
|
134
|
+
console.log(chalk_1.default.gray(' Status: '), statusText);
|
|
135
|
+
if (contract.status === 'ok' && contract.blockNumber) {
|
|
136
|
+
console.log(chalk_1.default.gray(' Block: '), chalk_1.default.white(contract.blockNumber.toString()));
|
|
137
|
+
}
|
|
138
|
+
else if (contract.error) {
|
|
139
|
+
console.log(chalk_1.default.gray(' Error: '), chalk_1.default.red(contract.error));
|
|
140
|
+
}
|
|
141
|
+
console.log();
|
|
142
|
+
}
|
|
143
|
+
// Summary
|
|
144
|
+
console.log(chalk_1.default.cyan.bold('═══════════════════════════════════════════════════════════\n'));
|
|
145
|
+
if (failureCount === 0) {
|
|
146
|
+
console.log(chalk_1.default.green.bold(' ✅ All contracts healthy!'));
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
console.log(chalk_1.default.yellow.bold(` ⚠️ ${successCount}/${healthChecks.length} contracts healthy`));
|
|
150
|
+
console.log(chalk_1.default.red.bold(` ❌ ${failureCount} contract(s) unhealthy`));
|
|
151
|
+
}
|
|
152
|
+
console.log();
|
|
153
|
+
if (failureCount > 0) {
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
spinner.stop();
|
|
159
|
+
(0, display_1.error)(`Health check failed: ${err.message}`);
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return cmd;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/commands/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invest.d.ts","sourceRoot":"","sources":["../../../src/commands/invest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkNpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAulBrD"}
|