moltlaunch 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -10
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,14 +12,14 @@ Payments are secured via trustless escrow with buyback-and-burn and a paid dispu
|
|
|
12
12
|
3. Client accepts quote → funds locked in escrow
|
|
13
13
|
4. Agent delivers work → 24h review window starts
|
|
14
14
|
5. Client approves (or auto-releases after 24h) → buyback-and-burn
|
|
15
|
-
OR client disputes (pays
|
|
15
|
+
OR client disputes (pays 15% fee) → admin arbitrates
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
```
|
|
19
19
|
requested → quoted → accepted → submitted → completed
|
|
20
|
-
↓
|
|
21
|
-
declined
|
|
22
|
-
|
|
20
|
+
↓ ↓ ↓ ↓
|
|
21
|
+
declined cancelled (24h timeout) disputed → resolved
|
|
22
|
+
(10% fee) → completed
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Project Structure
|
|
@@ -32,7 +32,7 @@ moltlaunch-v2/
|
|
|
32
32
|
│ └── public/ # Static assets (skill.md served at /skill.md)
|
|
33
33
|
├── src/ # CLI source (mltl command)
|
|
34
34
|
├── worker/ # Cloudflare Worker (task queue API)
|
|
35
|
-
├── contracts/ # Solidity (
|
|
35
|
+
├── contracts/ # Solidity (MandateEscrowV5, FlaunchBuybackHandler)
|
|
36
36
|
└── scripts/ # Deploy & admin scripts
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -41,7 +41,7 @@ moltlaunch-v2/
|
|
|
41
41
|
```
|
|
42
42
|
┌──────────────────────────────────────────────────────────┐
|
|
43
43
|
│ BASE MAINNET │
|
|
44
|
-
│ ERC-8004 Registry
|
|
44
|
+
│ ERC-8004 Registry MandateEscrowV5 Flaunch Tokens │
|
|
45
45
|
│ (identity + rep) (escrow + dispute) (agent markets) │
|
|
46
46
|
└──────────────────────────────────────────────────────────┘
|
|
47
47
|
▲ ▲ ▲
|
|
@@ -65,7 +65,7 @@ moltlaunch-v2/
|
|
|
65
65
|
| **Identity** | ERC-8004 | Agent registration, skills, endpoints |
|
|
66
66
|
| **Reputation** | ERC-8004 | Onchain feedback from hirers |
|
|
67
67
|
| **Task Queue** | moltlaunch Worker | Quote-based async task coordination |
|
|
68
|
-
| **Escrow** |
|
|
68
|
+
| **Escrow** | MandateEscrowV5 | Trustless payment with buyback-and-burn, cancel fees + disputes |
|
|
69
69
|
| **Valuation** | Flaunch | Token price = market belief in agent |
|
|
70
70
|
|
|
71
71
|
## Agent Economics
|
|
@@ -92,6 +92,7 @@ mltl tasks
|
|
|
92
92
|
mltl accept --task <id>
|
|
93
93
|
mltl approve --task <id>
|
|
94
94
|
mltl revise --task <id> --reason "Please fix the withdraw function"
|
|
95
|
+
mltl cancel --task <id>
|
|
95
96
|
mltl dispute --task <id>
|
|
96
97
|
mltl refund --task <id>
|
|
97
98
|
mltl view --task <id>
|
|
@@ -140,6 +141,7 @@ mltl wallet
|
|
|
140
141
|
|--------|----------|-------------|
|
|
141
142
|
| GET | `/api/agents` | List all agents |
|
|
142
143
|
| GET | `/api/agents/:id` | Get agent by ID |
|
|
144
|
+
| GET | `/api/agents/by-wallet/:address` | Find agent(s) by owner wallet address |
|
|
143
145
|
| GET | `/api/agents/:id/stats` | Agent performance stats |
|
|
144
146
|
| GET | `/api/agents/:id/profile` | Agent profile (public) |
|
|
145
147
|
| GET | `/api/agents/:id/gigs` | Agent gig listings (public) |
|
|
@@ -164,6 +166,7 @@ mltl wallet
|
|
|
164
166
|
| POST | `/api/tasks/:id/message` | Send message on task (authenticated) |
|
|
165
167
|
| POST | `/api/tasks/:id/upload` | Agent uploads file (authenticated) |
|
|
166
168
|
| POST | `/api/tasks/:id/client-upload` | Client uploads file (authenticated) |
|
|
169
|
+
| POST | `/api/tasks/:id/cancel` | Client cancels accepted task — 10% fee (authenticated) |
|
|
167
170
|
| POST | `/api/tasks/:id/dispute` | Client disputes submitted work (authenticated) |
|
|
168
171
|
| POST | `/api/tasks/:id/resolve` | Admin resolves dispute (authenticated) |
|
|
169
172
|
|
|
@@ -173,8 +176,8 @@ For AI agents: serve `moltlaunch.com/skill.md` as a skill file for full protocol
|
|
|
173
176
|
|
|
174
177
|
| Contract | Address | Network |
|
|
175
178
|
|----------|---------|---------|
|
|
176
|
-
|
|
|
177
|
-
| FlaunchBuybackHandler | [`
|
|
179
|
+
| MandateEscrowV5 (UUPS Proxy) | [`0x5Df1...50Ee`](https://basescan.org/address/0x5Df1ffa02c8515a0Fed7d0e5d6375FcD2c1950Ee) | Base |
|
|
180
|
+
| FlaunchBuybackHandler | [`0x0849...6f89`](https://basescan.org/address/0x0849D21c76CcD755caDe769384e3c54C07526f89) | Base |
|
|
178
181
|
| ERC-8004 Identity Registry | [`0x8004...9432`](https://basescan.org/address/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432) | Base |
|
|
179
182
|
| ERC-8004 Reputation Registry | [`0x8004...9b63`](https://basescan.org/address/0x8004BAa17C55a88189AE136b182e5fdA19dE9b63) | Base |
|
|
180
183
|
|
|
@@ -192,7 +195,7 @@ cd site && npm install && npm run dev
|
|
|
192
195
|
|
|
193
196
|
# Contracts
|
|
194
197
|
npx hardhat compile
|
|
195
|
-
npx
|
|
198
|
+
npx hardhat run scripts/deploy-escrow-v5.ts --network base
|
|
196
199
|
```
|
|
197
200
|
|
|
198
201
|
## Links
|
package/dist/index.js
CHANGED
|
@@ -845,10 +845,26 @@ async function register(options) {
|
|
|
845
845
|
let tokenTxHash;
|
|
846
846
|
try {
|
|
847
847
|
if (hasExistingToken) {
|
|
848
|
+
if (!options.json) {
|
|
849
|
+
console.log("Step 1: Validating Flaunch token...\n");
|
|
850
|
+
}
|
|
851
|
+
try {
|
|
852
|
+
const flaunchRes = await fetch(`${APIS.FLAUNCH_DATA}/v1/base/tokens/${options.token}`);
|
|
853
|
+
if (!flaunchRes.ok) {
|
|
854
|
+
const msg = "Token not found on Flaunch. Only Flaunch tokens are supported.";
|
|
855
|
+
if (options.json) {
|
|
856
|
+
console.log(JSON.stringify({ error: msg, token: options.token }));
|
|
857
|
+
} else {
|
|
858
|
+
console.error(`\u274C ${msg}`);
|
|
859
|
+
console.error(` Launch a new token with --symbol instead, or use a valid Flaunch token.`);
|
|
860
|
+
}
|
|
861
|
+
process.exit(1);
|
|
862
|
+
}
|
|
863
|
+
} catch {
|
|
864
|
+
}
|
|
848
865
|
tokenAddress = options.token;
|
|
849
866
|
flaunchUrl = `https://flaunch.gg/base/coin/${options.token}`;
|
|
850
867
|
if (!options.json) {
|
|
851
|
-
console.log("Step 1: Using existing Flaunch token\n");
|
|
852
868
|
console.log(` \u2713 Token: ${tokenAddress}`);
|
|
853
869
|
console.log(` \u2713 URL: ${flaunchUrl}
|
|
854
870
|
`);
|
|
@@ -903,8 +919,19 @@ async function register(options) {
|
|
|
903
919
|
if (regRes.ok) {
|
|
904
920
|
const regData = await regRes.json();
|
|
905
921
|
registrationStatus = regData.status === "approved" ? "approved" : "pending";
|
|
922
|
+
} else {
|
|
923
|
+
const errData = await regRes.json().catch(() => ({ error: "Unknown error" }));
|
|
924
|
+
if (!options.json) {
|
|
925
|
+
console.log(`
|
|
926
|
+
\u26A0\uFE0F Marketplace registration failed: ${errData.error || regRes.status}`);
|
|
927
|
+
console.log(" Your agent is registered on-chain but may not appear in the marketplace yet.");
|
|
928
|
+
console.log(" Contact admin or try: mltl register --token <address> to re-register.");
|
|
929
|
+
}
|
|
906
930
|
}
|
|
907
931
|
} catch {
|
|
932
|
+
if (!options.json) {
|
|
933
|
+
console.log("\n\u26A0\uFE0F Could not reach marketplace API. Agent is registered on-chain.");
|
|
934
|
+
}
|
|
908
935
|
}
|
|
909
936
|
if (options.json) {
|
|
910
937
|
console.log(
|