moltycash 2.4.2 → 3.1.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 +34 -24
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +20 -18
- package/dist/cli.js.map +1 -1
- package/dist/gig.js +3 -3
- package/dist/gig.js.map +1 -1
- package/dist/human.d.ts +2 -0
- package/dist/human.d.ts.map +1 -0
- package/dist/human.js +345 -0
- package/dist/human.js.map +1 -0
- package/package.json +1 -1
- package/dist/send.d.ts +0 -2
- package/dist/send.d.ts.map +0 -1
- package/dist/send.js +0 -278
- package/dist/send.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
# moltycash
|
|
2
2
|
|
|
3
|
-
CLI for [molty.cash](https://molty.cash) — send USDC
|
|
3
|
+
CLI for [molty.cash](https://molty.cash) — send USDC tips, hire humans, and manage gigs on Base and Solana via [x402](https://x402.org).
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
export EVM_PRIVATE_KEY="0x..."
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
npx moltycash
|
|
10
|
+
# Tip someone
|
|
11
|
+
npx moltycash human tip 0xmesuthere 50¢
|
|
12
12
|
|
|
13
|
-
#
|
|
13
|
+
# Hire someone
|
|
14
14
|
export MOLTY_IDENTITY_TOKEN="your_token"
|
|
15
|
-
npx moltycash
|
|
15
|
+
npx moltycash human hire 0xmesuthere "Write an X Article about molty.cash" --amount 1
|
|
16
|
+
|
|
17
|
+
# Create a gig
|
|
18
|
+
npx moltycash gig create "Tweet a banger about molty.cash" --price 1 --quantity 100
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
## Install
|
|
@@ -25,28 +28,32 @@ npx moltycash --help
|
|
|
25
28
|
npm install -g moltycash
|
|
26
29
|
```
|
|
27
30
|
|
|
28
|
-
##
|
|
31
|
+
## Human Commands
|
|
32
|
+
|
|
33
|
+
### Tip
|
|
34
|
+
|
|
35
|
+
Send USDC to any user on molty.cash. If the user hasn't signed up yet, you'll get an X intent URL to invite them.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx moltycash human tip <username> <amount> [--network <base|solana>]
|
|
39
|
+
```
|
|
29
40
|
|
|
30
41
|
```bash
|
|
31
|
-
npx moltycash
|
|
42
|
+
npx moltycash human tip 0xmesuthere 50¢
|
|
43
|
+
npx moltycash human tip 0xmesuthere 100¢ --network solana
|
|
32
44
|
```
|
|
33
45
|
|
|
34
|
-
###
|
|
46
|
+
### Hire
|
|
35
47
|
|
|
36
|
-
|
|
37
|
-
|--------|---------|-------------|
|
|
38
|
-
| `x/USERNAME` | `x/nikitabier` | Send to an X (Twitter) user |
|
|
39
|
-
| `moltbook/USERNAME` | `moltbook/KarpathyMolty` | Send to a Moltbook user |
|
|
48
|
+
Hire a specific person to complete a task. Payment is escrowed via x402 and released after proof is submitted and reviewed.
|
|
40
49
|
|
|
41
50
|
```bash
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# Send to a Moltbook user
|
|
46
|
-
npx moltycash send moltbook/KarpathyMolty 1¢
|
|
51
|
+
npx moltycash human hire <username> "<description>" --amount <USDC> [--network <base|solana>]
|
|
52
|
+
```
|
|
47
53
|
|
|
48
|
-
|
|
49
|
-
npx moltycash
|
|
54
|
+
```bash
|
|
55
|
+
npx moltycash human hire 0xmesuthere "Write an X Article about molty.cash" --amount 1
|
|
56
|
+
npx moltycash human hire 0xmesuthere "Roast our landing page like only you can" --amount 5 --network solana
|
|
50
57
|
```
|
|
51
58
|
|
|
52
59
|
### Amount Formats
|
|
@@ -63,7 +70,10 @@ npx moltycash send x/nikitabier 100¢ --network solana
|
|
|
63
70
|
|
|
64
71
|
```bash
|
|
65
72
|
# Create a gig — earners get paid per completed task
|
|
66
|
-
npx moltycash gig create "
|
|
73
|
+
npx moltycash gig create "Tweet a banger about molty.cash" --price 1 --quantity 100
|
|
74
|
+
|
|
75
|
+
# With eligibility requirements
|
|
76
|
+
npx moltycash gig create "Review our product" --price 2 --quantity 10 --min-followers 500 --require-premium
|
|
67
77
|
|
|
68
78
|
# List your created gigs
|
|
69
79
|
npx moltycash gig created
|
|
@@ -99,11 +109,11 @@ npx moltycash gig dispute <gig_id> <assignment_id> "I completed the gig correctl
|
|
|
99
109
|
|
|
100
110
|
| Variable | Description |
|
|
101
111
|
|----------|-------------|
|
|
102
|
-
| `EVM_PRIVATE_KEY` | Base wallet private key (`0x...`) —
|
|
103
|
-
| `SVM_PRIVATE_KEY` | Solana wallet private key (base58) —
|
|
104
|
-
| `MOLTY_IDENTITY_TOKEN` | Identity token (required for all gig commands) |
|
|
112
|
+
| `EVM_PRIVATE_KEY` | Base wallet private key (`0x...`) — for `tip`, `hire`, and `gig create` |
|
|
113
|
+
| `SVM_PRIVATE_KEY` | Solana wallet private key (base58) — for `tip`, `hire`, and `gig create` |
|
|
114
|
+
| `MOLTY_IDENTITY_TOKEN` | Identity token (required for `hire` and all gig commands) |
|
|
105
115
|
|
|
106
|
-
Wallet keys are only needed for commands that move money (`
|
|
116
|
+
Wallet keys are only needed for commands that move money (`tip`, `hire`, `gig create`). Earner commands (`list`, `pick`, `submit`, `picked`, `dispute`) only need the identity token. If only one wallet key is set, that network is used automatically. If both are set, use `--network`.
|
|
107
117
|
|
|
108
118
|
## Links
|
|
109
119
|
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* molty.cash CLI
|
|
4
|
-
* Send USDC payments via molty.cash API
|
|
4
|
+
* Send USDC payments, hire humans, and manage gigs via molty.cash API
|
|
5
5
|
*/
|
|
6
6
|
import { spawn } from "child_process";
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
@@ -24,20 +24,15 @@ function showHelp() {
|
|
|
24
24
|
║ molty.cash CLI ║
|
|
25
25
|
╚════════════════════════════════════════════════════════════╝
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
USDC payments, hiring, and gigs via molty.cash API
|
|
28
28
|
|
|
29
29
|
COMMANDS:
|
|
30
|
-
|
|
31
|
-
gig
|
|
30
|
+
human <tip|hire>
|
|
31
|
+
gig <subcommand>
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
SEND EXAMPLES:
|
|
38
|
-
moltycash send moltbook/KarpathyMolty 1¢
|
|
39
|
-
moltycash send x/nikitabier 50¢
|
|
40
|
-
moltycash send x/nikitabier 100¢ --network solana
|
|
33
|
+
HUMAN SUBCOMMANDS:
|
|
34
|
+
human tip <username> <amount> [--network <base|solana>]
|
|
35
|
+
human hire <username> "<description>" --amount <USDC> [--network <base|solana>]
|
|
41
36
|
|
|
42
37
|
GIG SUBCOMMANDS:
|
|
43
38
|
gig create "<description>" --price <USDC> [--quantity <n>] [--network <base|solana>] [--min-followers <n>] [--require-premium] [--min-account-age <days>]
|
|
@@ -50,11 +45,18 @@ GIG SUBCOMMANDS:
|
|
|
50
45
|
gig picked List gigs you've picked
|
|
51
46
|
gig dispute <gig_id> <assignment_id> ["reason"]
|
|
52
47
|
|
|
48
|
+
HUMAN TIP EXAMPLES:
|
|
49
|
+
moltycash human tip 0xmesuthere 50¢
|
|
50
|
+
moltycash human tip 0xmesuthere 100¢ --network solana
|
|
51
|
+
|
|
52
|
+
HUMAN HIRE EXAMPLES:
|
|
53
|
+
moltycash human hire 0xmesuthere "Write an X Article about molty.cash" --amount 1
|
|
54
|
+
moltycash human hire 0xmesuthere "Review our landing page" --amount 5
|
|
55
|
+
|
|
53
56
|
GIG EXAMPLES:
|
|
54
57
|
moltycash gig create "Post about molty.cash" --price 0.1 --quantity 5
|
|
55
|
-
moltycash gig
|
|
56
|
-
moltycash gig
|
|
57
|
-
moltycash gig get ppp_123
|
|
58
|
+
moltycash gig list
|
|
59
|
+
moltycash gig pick ppp_123
|
|
58
60
|
|
|
59
61
|
AMOUNT FORMATS:
|
|
60
62
|
1¢ Cents notation (recommended)
|
|
@@ -69,7 +71,7 @@ OPTIONS:
|
|
|
69
71
|
ENVIRONMENT VARIABLES:
|
|
70
72
|
SVM_PRIVATE_KEY Your Solana private key
|
|
71
73
|
EVM_PRIVATE_KEY Your Base/EVM private key
|
|
72
|
-
MOLTY_IDENTITY_TOKEN Identity token (required for gig commands)
|
|
74
|
+
MOLTY_IDENTITY_TOKEN Identity token (required for gig and hire commands)
|
|
73
75
|
|
|
74
76
|
If only one key is set, that network is used automatically.
|
|
75
77
|
If both are set, you must specify --network.
|
|
@@ -104,9 +106,9 @@ function main() {
|
|
|
104
106
|
process.exit(0);
|
|
105
107
|
}
|
|
106
108
|
const command = args[0];
|
|
107
|
-
if (command === "
|
|
109
|
+
if (command === "human") {
|
|
108
110
|
const commandArgs = args.slice(1);
|
|
109
|
-
runCommand("
|
|
111
|
+
runCommand("human.js", commandArgs);
|
|
110
112
|
}
|
|
111
113
|
else if (command === "gig") {
|
|
112
114
|
const commandArgs = args.slice(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE9C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
package/dist/gig.js
CHANGED
|
@@ -176,7 +176,7 @@ async function handleCreate(args) {
|
|
|
176
176
|
console.log();
|
|
177
177
|
// Phase 1: Get payment requirements
|
|
178
178
|
console.log("\ud83d\udcb3 Phase 1: Requesting payment requirements...");
|
|
179
|
-
const phase1Result = await a2aCall("gig.create", {
|
|
179
|
+
const phase1Result = await a2aCall("gig.create", { price: perPostPrice, quantity: totalSlots, description, ...eligibilityParams }, { "X-A2A-Extensions": X402_EXTENSION_URI });
|
|
180
180
|
if (!phase1Result.id) {
|
|
181
181
|
throw new Error("Missing task ID in response");
|
|
182
182
|
}
|
|
@@ -189,8 +189,8 @@ async function handleCreate(args) {
|
|
|
189
189
|
const signedPayment = await client.createPaymentPayload(paymentRequired);
|
|
190
190
|
console.log("\ud83d\udce4 Submitting signed payment...\n");
|
|
191
191
|
const phase2Result = await a2aCall("gig.create", {
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
price: perPostPrice,
|
|
193
|
+
quantity: totalSlots,
|
|
194
194
|
description,
|
|
195
195
|
...eligibilityParams,
|
|
196
196
|
taskId: phase1Result.id,
|
package/dist/gig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gig.js","sourceRoot":"","sources":["../gig.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAsB,CAAC;AACtD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAC;AAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,wBAAwB,CAAC;AAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAA0C,CAAC;AAE7E,MAAM,kBAAkB,GAAG,6CAA6C,CAAC;AAEzE,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;;GAKG;AACH,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,GAAG,GAAG,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,sDAAsD,KAAK,YAAY,CACvG,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,MAA+B,EAC/B,YAAqC;IAErC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,aAAa,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC;QACjE,GAAG,YAAY;KAChB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,OAAO,MAAM,EAChB;QACE,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,YAAY,EAAE;QAClB,MAAM;QACN,MAAM;KACP,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;IAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,oBAAoB,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED,gCAAgC;AAEhC,KAAK,UAAU,YAAY,CAAC,IAAyB;IACnD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1G,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,4KAA4K,CAAC,CAAC;QAC5L,OAAO,CAAC,KAAK,CAAC,mHAAmH,CAAC,CAAC;QACnI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,YAAY,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACpF,MAAM,GAAG,YAAY,GAAG,GAAG,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,CAAC,MAAM,8BAA8B,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;IAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC;IAClC,IAAI,SAAkB,CAAC;IAEvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;QACpD,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAEhC,IAAI,SAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,eAAe,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,iCAAiC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,sBAAsB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,sBAAsB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAA4B,EAAE,CAAC;IACtD,IAAI,YAAY,KAAK,SAAS;QAAE,iBAAiB,CAAC,aAAa,GAAG,YAAY,CAAC;IAC/E,IAAI,cAAc;QAAE,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7D,IAAI,aAAa,KAAK,SAAS;QAAE,iBAAiB,CAAC,oBAAoB,GAAG,aAAa,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,eAAe,YAAY,sBAAsB,MAAM,QAAQ,CAAC,CAAC;IACvH,OAAO,CAAC,GAAG,CAAC,eAAe,SAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;IAC9C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACjF,IAAI,cAAc;QAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC3D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,aAAa,OAAO,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,OAAO,CAChC,YAAY,EACZ,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,EAC3E,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAC3C,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC;IAC1F,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,OAAO,CAChC,YAAY,EACZ;QACE,MAAM;QACN,cAAc,EAAE,YAAY;QAC5B,WAAW;QACX,GAAG,iBAAiB;QACpB,MAAM,EAAE,YAAY,CAAC,EAAE;QACvB,OAAO,EAAE,aAAa;KACvB,EACD,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAC3C,CAAC;IAEF,oDAAoD;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,cAAc,OAAO,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;IAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK;QAC7C,EAAE,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACtC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACvB,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,cAAc,iBAAiB,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC;QACvH,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAyB;IAChD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,OAAO,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnH,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,cAAc,YAAY,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,eAAe,gBAAgB,MAAM,CAAC,cAAc,eAAe,MAAM,CAAC,WAAW,QAAQ,CAAC,CAAC;IAC/H,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ;gBAC9C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ;oBACpC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,cAAc;wBAChD,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc;4BAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ;gCACpC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ;oCAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc;wCAC1C,CAAC,CAAC,QAAQ,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC;YACpF,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAyB;IACnD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAClG,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAEtC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,qDAAqD,MAAM,GAAG,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,YAAY,WAAW,KAAK,KAAK,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE;QACzC,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,YAAY;QAC3B,MAAM;QACN,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,iCAAiC;AAEjC,KAAK,UAAU,UAAU;IACvB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,qBAAqB,CAAC,CAAC,eAAe,eAAe,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAyB;IACjD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAyB;IACnD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,2CAA2C,KAAK,OAAO,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,YAAY,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ;YAC9C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACpC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,cAAc;oBAChD,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc;wBAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ;4BACpC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ;gCAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc;oCAC1C,CAAC,CAAC,QAAQ,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAyB;IAC1D,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,wCAAwC,YAAY,WAAW,KAAK,OAAO,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3G,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,mBAAmB;AAEnB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACnB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7B,IAAI,CAAC,UAAU,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;IAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,UAAU,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,YAAY,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;gBAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;QAClG,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"gig.js","sourceRoot":"","sources":["../gig.ts"],"names":[],"mappings":"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"}
|
package/dist/human.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human.d.ts","sourceRoot":"","sources":["../human.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
package/dist/human.js
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
2
|
+
import minimist from "minimist";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
5
|
+
import { x402Client } from "@x402/core/client";
|
|
6
|
+
import { registerExactEvmScheme } from "@x402/evm/exact/client";
|
|
7
|
+
import { registerExactSvmScheme } from "@x402/svm/exact/client";
|
|
8
|
+
import { createKeyPairSignerFromBytes } from "@solana/kit";
|
|
9
|
+
import bs58 from "bs58";
|
|
10
|
+
const privateKey = process.env.EVM_PRIVATE_KEY;
|
|
11
|
+
const svmPrivateKey = process.env.SVM_PRIVATE_KEY;
|
|
12
|
+
const baseURL = process.env.RESOURCE_SERVER_URL || "https://api.molty.cash";
|
|
13
|
+
const identityToken = process.env.MOLTY_IDENTITY_TOKEN;
|
|
14
|
+
const X402_EXTENSION_URI = "https://github.com/google-a2a/a2a-x402/v0.1";
|
|
15
|
+
// ─── Shared Utilities ────────────────────────────────────────
|
|
16
|
+
function parseAmount(amountStr) {
|
|
17
|
+
const trimmed = amountStr.trim();
|
|
18
|
+
if (trimmed.endsWith("¢")) {
|
|
19
|
+
const cents = parseFloat(trimmed.slice(0, -1));
|
|
20
|
+
if (isNaN(cents))
|
|
21
|
+
throw new Error(`Invalid cents amount: ${amountStr}`);
|
|
22
|
+
return cents / 100;
|
|
23
|
+
}
|
|
24
|
+
if (trimmed.startsWith("$")) {
|
|
25
|
+
const dollarPart = trimmed.slice(1);
|
|
26
|
+
if (/^\d+$/.test(dollarPart)) {
|
|
27
|
+
const dollars = parseInt(dollarPart, 10);
|
|
28
|
+
const cents = dollars * 100;
|
|
29
|
+
throw new Error(`Dollar amounts like $${dollars} can be interpreted as shell variables. Please use ${cents}¢ instead.`);
|
|
30
|
+
}
|
|
31
|
+
const dollars = parseFloat(dollarPart);
|
|
32
|
+
if (isNaN(dollars))
|
|
33
|
+
throw new Error(`Invalid dollar amount: ${amountStr}`);
|
|
34
|
+
return dollars;
|
|
35
|
+
}
|
|
36
|
+
const amount = parseFloat(trimmed);
|
|
37
|
+
if (isNaN(amount))
|
|
38
|
+
throw new Error(`Invalid amount: ${amountStr}`);
|
|
39
|
+
return amount;
|
|
40
|
+
}
|
|
41
|
+
async function setupNetwork(args) {
|
|
42
|
+
const hasEvmKey = !!privateKey;
|
|
43
|
+
const hasSvmKey = !!svmPrivateKey;
|
|
44
|
+
let useSolana;
|
|
45
|
+
if (args.network) {
|
|
46
|
+
if (!["base", "solana"].includes(args.network.toLowerCase())) {
|
|
47
|
+
console.error("Network must be either 'base' or 'solana'");
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
useSolana = args.network.toLowerCase() === "solana";
|
|
51
|
+
if (useSolana && !hasSvmKey) {
|
|
52
|
+
console.error("❌ Missing SVM_PRIVATE_KEY environment variable (needed for --network solana)");
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
if (!useSolana && !hasEvmKey) {
|
|
56
|
+
console.error("❌ Missing EVM_PRIVATE_KEY environment variable (needed for --network base)");
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if (hasEvmKey && hasSvmKey) {
|
|
62
|
+
console.error("❌ Both EVM_PRIVATE_KEY and SVM_PRIVATE_KEY are set");
|
|
63
|
+
console.error(" Please specify which network to use with --network <base|solana>");
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
else if (hasSvmKey) {
|
|
67
|
+
useSolana = true;
|
|
68
|
+
console.log("ℹ️ Auto-detected network: Solana");
|
|
69
|
+
}
|
|
70
|
+
else if (hasEvmKey) {
|
|
71
|
+
useSolana = false;
|
|
72
|
+
console.log("ℹ️ Auto-detected network: Base");
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.error("❌ No private keys found");
|
|
76
|
+
console.error(" Set EVM_PRIVATE_KEY (for Base) or SVM_PRIVATE_KEY (for Solana)");
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const client = new x402Client();
|
|
81
|
+
if (useSolana) {
|
|
82
|
+
console.log("\n🔧 Creating Solana signer...");
|
|
83
|
+
const privateKeyBytes = bs58.decode(svmPrivateKey);
|
|
84
|
+
const solanaSigner = await createKeyPairSignerFromBytes(privateKeyBytes);
|
|
85
|
+
console.log(`✅ Solana signer created: ${solanaSigner.address}`);
|
|
86
|
+
registerExactSvmScheme(client, { signer: solanaSigner });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log("\n🔧 Creating Base signer...");
|
|
90
|
+
if (!privateKey.startsWith("0x")) {
|
|
91
|
+
console.error("❌ EVM_PRIVATE_KEY must start with '0x'");
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
const account = privateKeyToAccount(privateKey);
|
|
95
|
+
console.log(`✅ Base signer created: ${account.address}`);
|
|
96
|
+
registerExactEvmScheme(client, { signer: account });
|
|
97
|
+
}
|
|
98
|
+
return { useSolana: useSolana, client };
|
|
99
|
+
}
|
|
100
|
+
// ─── Tip Subcommand ──────────────────────────────────────────
|
|
101
|
+
async function handleTip(args) {
|
|
102
|
+
if (args._.length < 3) {
|
|
103
|
+
console.error("Usage: moltycash human tip <username> <amount> [--network <base|solana>]");
|
|
104
|
+
console.error("\nExamples:");
|
|
105
|
+
console.error(" moltycash human tip 0xmesuthere 50¢");
|
|
106
|
+
console.error(" moltycash human tip 0xmesuthere 100¢ --network solana");
|
|
107
|
+
console.error("\nAmount formats: 100¢ (cents - recommended), 0.5 (decimal)");
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
const username = String(args._[1]);
|
|
111
|
+
let amount;
|
|
112
|
+
try {
|
|
113
|
+
amount = parseAmount(String(args._[2]));
|
|
114
|
+
if (amount <= 0)
|
|
115
|
+
throw new Error("Amount must be greater than 0");
|
|
116
|
+
if (amount > 10)
|
|
117
|
+
throw new Error("Amount must be 10 USDC or less");
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error(`❌ ${error.message}`);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
// Pre-flight: check if user has an agent on molty.cash
|
|
124
|
+
const agentCardUrl = `${baseURL}/${username}/.well-known/agent-card.json`;
|
|
125
|
+
try {
|
|
126
|
+
await axios.get(agentCardUrl);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error.response?.status === 404) {
|
|
130
|
+
console.error(`\n❌ @${username} is not on molty.cash yet.\n`);
|
|
131
|
+
console.error(`Invite them to join so you can tip them USDC:`);
|
|
132
|
+
const tweetText = encodeURIComponent(`Hey @${username}, someone wants to tip you USDC! Sign up at https://molty.cash @moltycash`);
|
|
133
|
+
console.error(`\n https://x.com/intent/tweet?text=${tweetText}\n`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
// Other errors (network, etc.) — continue and let the tip call fail with a better error
|
|
137
|
+
}
|
|
138
|
+
const { useSolana, client } = await setupNetwork(args);
|
|
139
|
+
const tipEndpoint = `${baseURL}/${username}/a2a`;
|
|
140
|
+
console.log(`\n💸 Tipping @${username} ${amount} USDC...`);
|
|
141
|
+
console.log(` API: ${tipEndpoint}`);
|
|
142
|
+
console.log(` Network: ${useSolana ? "Solana" : "Base"}`);
|
|
143
|
+
if (identityToken)
|
|
144
|
+
console.log(` 🔐 Sending as verified sender`);
|
|
145
|
+
console.log();
|
|
146
|
+
const headers = {
|
|
147
|
+
"Content-Type": "application/json",
|
|
148
|
+
"X-A2A-Extensions": X402_EXTENSION_URI,
|
|
149
|
+
...(identityToken && { "X-Molty-Identity-Token": identityToken }),
|
|
150
|
+
};
|
|
151
|
+
const tipParams = { amount };
|
|
152
|
+
// Phase 1: Get payment requirements
|
|
153
|
+
console.log("💳 Phase 1: Requesting payment requirements...");
|
|
154
|
+
const phase1Response = await axios.post(tipEndpoint, { jsonrpc: "2.0", id: 1, method: "tip", params: tipParams }, { headers });
|
|
155
|
+
if (phase1Response.data.error) {
|
|
156
|
+
throw new Error(phase1Response.data.error.message || "A2A request failed");
|
|
157
|
+
}
|
|
158
|
+
const phase1Result = phase1Response.data.result;
|
|
159
|
+
if (!phase1Result.id)
|
|
160
|
+
throw new Error("Missing task ID in response");
|
|
161
|
+
const paymentRequired = phase1Result.status?.message?.metadata?.["x402.payment.required"];
|
|
162
|
+
if (!paymentRequired)
|
|
163
|
+
throw new Error("No payment requirements found in response");
|
|
164
|
+
// Phase 2: Sign and submit payment
|
|
165
|
+
console.log("🔐 Phase 2: Signing payment...");
|
|
166
|
+
const signedPayment = await client.createPaymentPayload(paymentRequired);
|
|
167
|
+
console.log("📤 Submitting signed payment...\n");
|
|
168
|
+
const phase2Response = await axios.post(tipEndpoint, {
|
|
169
|
+
jsonrpc: "2.0",
|
|
170
|
+
id: 2,
|
|
171
|
+
method: "tip",
|
|
172
|
+
params: { ...tipParams, taskId: phase1Result.id, payment: signedPayment },
|
|
173
|
+
}, { headers });
|
|
174
|
+
if (phase2Response.data.error) {
|
|
175
|
+
throw new Error(phase2Response.data.error.message || "Payment failed");
|
|
176
|
+
}
|
|
177
|
+
const result = phase2Response.data.result;
|
|
178
|
+
const artifacts = result.artifacts || [];
|
|
179
|
+
for (const artifact of artifacts) {
|
|
180
|
+
if (artifact.data) {
|
|
181
|
+
try {
|
|
182
|
+
const data = JSON.parse(Buffer.from(artifact.data, "base64").toString());
|
|
183
|
+
console.log(`✅ ${data.amount || amount} USDC sent to @${username}`);
|
|
184
|
+
if (data.txn_id)
|
|
185
|
+
console.log(`🔗 TXN: ${data.txn_id}`);
|
|
186
|
+
if (data.network)
|
|
187
|
+
console.log(`💳 Network: ${data.network}`);
|
|
188
|
+
if (data.receipt)
|
|
189
|
+
console.log(`📄 Receipt: ${data.receipt}`);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// ignore parse errors
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const msg = result.status?.message?.parts
|
|
198
|
+
?.filter((p) => p.kind === "text")
|
|
199
|
+
.map((p) => p.text)
|
|
200
|
+
.join("\n");
|
|
201
|
+
console.log(`✅ ${msg || `${amount} USDC sent to @${username}`}`);
|
|
202
|
+
}
|
|
203
|
+
// ─── Hire Subcommand ─────────────────────────────────────────
|
|
204
|
+
async function handleHire(args) {
|
|
205
|
+
if (args._.length < 3 || !args.amount) {
|
|
206
|
+
console.error('Usage: moltycash human hire <username> "<description>" --amount <USDC> [--network <base|solana>]');
|
|
207
|
+
console.error("\nExamples:");
|
|
208
|
+
console.error(' moltycash human hire 0xmesuthere "Write an X Article about molty.cash" --amount 1');
|
|
209
|
+
console.error(' moltycash human hire 0xmesuthere "Review our landing page" --amount 5 --network solana');
|
|
210
|
+
process.exit(1);
|
|
211
|
+
}
|
|
212
|
+
const username = String(args._[1]);
|
|
213
|
+
const description = args._.slice(2).join(" ").trim();
|
|
214
|
+
let amount;
|
|
215
|
+
try {
|
|
216
|
+
amount = parseAmount(String(args.amount));
|
|
217
|
+
if (amount <= 0)
|
|
218
|
+
throw new Error("Amount must be greater than 0");
|
|
219
|
+
if (amount > 10)
|
|
220
|
+
throw new Error("Amount must be 10 USDC or less");
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
console.error(`❌ ${error.message}`);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
}
|
|
226
|
+
if (!description) {
|
|
227
|
+
console.error("❌ Description is required");
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
if (description.length > 500) {
|
|
231
|
+
console.error(`❌ Description too long (${description.length} chars). Max 500 characters.`);
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
const { useSolana, client } = await setupNetwork(args);
|
|
235
|
+
const hireEndpoint = `${baseURL}/${username}/a2a`;
|
|
236
|
+
console.log(`\n🎯 Hiring @${username} for ${amount} USDC...`);
|
|
237
|
+
console.log(` API: ${hireEndpoint}`);
|
|
238
|
+
console.log(` Network: ${useSolana ? "Solana" : "Base"}`);
|
|
239
|
+
console.log(` Task: ${description}`);
|
|
240
|
+
console.log();
|
|
241
|
+
const headers = {
|
|
242
|
+
"Content-Type": "application/json",
|
|
243
|
+
"X-A2A-Extensions": X402_EXTENSION_URI,
|
|
244
|
+
...(identityToken && { "X-Molty-Identity-Token": identityToken }),
|
|
245
|
+
};
|
|
246
|
+
const hireParams = { description, amount };
|
|
247
|
+
// Phase 1: Get payment requirements
|
|
248
|
+
console.log("💳 Phase 1: Requesting payment requirements...");
|
|
249
|
+
const phase1Response = await axios.post(hireEndpoint, { jsonrpc: "2.0", id: 1, method: "hire", params: hireParams }, { headers });
|
|
250
|
+
if (phase1Response.data.error) {
|
|
251
|
+
throw new Error(phase1Response.data.error.message || "A2A request failed");
|
|
252
|
+
}
|
|
253
|
+
const phase1Result = phase1Response.data.result;
|
|
254
|
+
if (!phase1Result.id)
|
|
255
|
+
throw new Error("Missing task ID in response");
|
|
256
|
+
const paymentRequired = phase1Result.status?.message?.metadata?.["x402.payment.required"];
|
|
257
|
+
if (!paymentRequired)
|
|
258
|
+
throw new Error("No payment requirements found in response");
|
|
259
|
+
// Phase 2: Sign and submit payment
|
|
260
|
+
console.log("🔐 Phase 2: Signing payment...");
|
|
261
|
+
const signedPayment = await client.createPaymentPayload(paymentRequired);
|
|
262
|
+
console.log("📤 Submitting signed payment...\n");
|
|
263
|
+
const phase2Response = await axios.post(hireEndpoint, {
|
|
264
|
+
jsonrpc: "2.0",
|
|
265
|
+
id: 2,
|
|
266
|
+
method: "hire",
|
|
267
|
+
params: { ...hireParams, taskId: phase1Result.id, payment: signedPayment },
|
|
268
|
+
}, { headers });
|
|
269
|
+
if (phase2Response.data.error) {
|
|
270
|
+
throw new Error(phase2Response.data.error.message || "Hire failed");
|
|
271
|
+
}
|
|
272
|
+
const result = phase2Response.data.result;
|
|
273
|
+
// Try to extract details from artifacts
|
|
274
|
+
const artifacts = result.artifacts || [];
|
|
275
|
+
for (const artifact of artifacts) {
|
|
276
|
+
if (artifact.data) {
|
|
277
|
+
try {
|
|
278
|
+
const data = JSON.parse(Buffer.from(artifact.data, "base64").toString());
|
|
279
|
+
console.log(`✅ @${username} hired!`);
|
|
280
|
+
if (data.gig_id)
|
|
281
|
+
console.log(` Gig: ${data.gig_id}`);
|
|
282
|
+
if (data.assignment_id)
|
|
283
|
+
console.log(` Assignment: ${data.assignment_id}`);
|
|
284
|
+
console.log(` Profile: https://molty.cash/${username}`);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
// ignore
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Fallback: check for direct result fields
|
|
293
|
+
if (result.gig_id) {
|
|
294
|
+
console.log(`✅ @${username} hired!`);
|
|
295
|
+
console.log(` Gig: ${result.gig_id}`);
|
|
296
|
+
if (result.assignment_id)
|
|
297
|
+
console.log(` Assignment: ${result.assignment_id}`);
|
|
298
|
+
console.log(` Profile: https://molty.cash/${username}`);
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const msg = result.status?.message?.parts
|
|
302
|
+
?.filter((p) => p.kind === "text")
|
|
303
|
+
.map((p) => p.text)
|
|
304
|
+
.join("\n");
|
|
305
|
+
console.log(`✅ ${msg || `@${username} hired`}`);
|
|
306
|
+
}
|
|
307
|
+
// ─── Main ────────────────────────────────────────────────────
|
|
308
|
+
const args = minimist(process.argv.slice(2));
|
|
309
|
+
const subcommand = args._[0];
|
|
310
|
+
if (!subcommand) {
|
|
311
|
+
console.error("Usage: moltycash human <tip|hire>");
|
|
312
|
+
console.error("\nSubcommands:");
|
|
313
|
+
console.error(" tip <username> <amount> Tip USDC to a user");
|
|
314
|
+
console.error(' hire <username> "<description>" --amount <USDC> Hire a user for a task');
|
|
315
|
+
console.error("\nExamples:");
|
|
316
|
+
console.error(" moltycash human tip 0xmesuthere 50¢");
|
|
317
|
+
console.error(' moltycash human hire 0xmesuthere "Write an X Article about molty.cash" --amount 1');
|
|
318
|
+
process.exit(1);
|
|
319
|
+
}
|
|
320
|
+
async function main() {
|
|
321
|
+
try {
|
|
322
|
+
switch (subcommand) {
|
|
323
|
+
case "tip":
|
|
324
|
+
await handleTip(args);
|
|
325
|
+
break;
|
|
326
|
+
case "hire":
|
|
327
|
+
await handleHire(args);
|
|
328
|
+
break;
|
|
329
|
+
default:
|
|
330
|
+
console.error(`❌ Unknown subcommand: ${subcommand}`);
|
|
331
|
+
console.error("Available: tip, hire");
|
|
332
|
+
process.exit(1);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
const errMsg = error.response?.data?.error?.message || error.response?.data?.msg || error.message;
|
|
337
|
+
console.error(`❌ ${errMsg || "Command failed"}`);
|
|
338
|
+
if (error.response) {
|
|
339
|
+
console.error(" Status:", error.response.status);
|
|
340
|
+
}
|
|
341
|
+
process.exit(1);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
main();
|
|
345
|
+
//# sourceMappingURL=human.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"human.js","sourceRoot":"","sources":["../human.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/send.d.ts
DELETED
package/dist/send.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../send.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
package/dist/send.js
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
import minimist from "minimist";
|
|
3
|
-
import axios from "axios";
|
|
4
|
-
import { privateKeyToAccount } from "viem/accounts";
|
|
5
|
-
import { x402Client } from "@x402/core/client";
|
|
6
|
-
import { registerExactEvmScheme } from "@x402/evm/exact/client";
|
|
7
|
-
import { registerExactSvmScheme } from "@x402/svm/exact/client";
|
|
8
|
-
import { createKeyPairSignerFromBytes } from "@solana/kit";
|
|
9
|
-
import bs58 from "bs58";
|
|
10
|
-
const privateKey = process.env.EVM_PRIVATE_KEY;
|
|
11
|
-
const svmPrivateKey = process.env.SVM_PRIVATE_KEY;
|
|
12
|
-
const baseURL = process.env.RESOURCE_SERVER_URL || "https://api.molty.cash";
|
|
13
|
-
const identityToken = process.env.MOLTY_IDENTITY_TOKEN;
|
|
14
|
-
const X402_EXTENSION_URI = "https://github.com/google-a2a/a2a-x402/v0.1";
|
|
15
|
-
/**
|
|
16
|
-
* Parse amount from various formats:
|
|
17
|
-
* - "50¢" -> 0.50
|
|
18
|
-
* - "$0.5" or "$0.50" -> 0.50
|
|
19
|
-
* - "0.5" -> 0.50
|
|
20
|
-
*/
|
|
21
|
-
function parseAmount(amountStr) {
|
|
22
|
-
const trimmed = amountStr.trim();
|
|
23
|
-
// Handle cents notation (50¢)
|
|
24
|
-
if (trimmed.endsWith("¢")) {
|
|
25
|
-
const cents = parseFloat(trimmed.slice(0, -1));
|
|
26
|
-
if (isNaN(cents)) {
|
|
27
|
-
throw new Error(`Invalid cents amount: ${amountStr}`);
|
|
28
|
-
}
|
|
29
|
-
return cents / 100;
|
|
30
|
-
}
|
|
31
|
-
// Handle dollar notation ($0.5 or $0.50)
|
|
32
|
-
if (trimmed.startsWith("$")) {
|
|
33
|
-
const dollarPart = trimmed.slice(1);
|
|
34
|
-
// Check if it looks like a shell positional parameter ($1, $2, $10, etc.)
|
|
35
|
-
if (/^\d+$/.test(dollarPart)) {
|
|
36
|
-
const dollars = parseInt(dollarPart, 10);
|
|
37
|
-
const cents = dollars * 100;
|
|
38
|
-
throw new Error(`Dollar amounts like $${dollars} can be interpreted as shell variables. Please use ${cents}¢ instead.`);
|
|
39
|
-
}
|
|
40
|
-
const dollars = parseFloat(dollarPart);
|
|
41
|
-
if (isNaN(dollars)) {
|
|
42
|
-
throw new Error(`Invalid dollar amount: ${amountStr}`);
|
|
43
|
-
}
|
|
44
|
-
return dollars;
|
|
45
|
-
}
|
|
46
|
-
// Handle plain decimal (0.5)
|
|
47
|
-
const amount = parseFloat(trimmed);
|
|
48
|
-
if (isNaN(amount)) {
|
|
49
|
-
throw new Error(`Invalid amount: ${amountStr}`);
|
|
50
|
-
}
|
|
51
|
-
return amount;
|
|
52
|
-
}
|
|
53
|
-
function parseRecipient(input) {
|
|
54
|
-
const slashIndex = input.indexOf("/");
|
|
55
|
-
if (slashIndex === -1) {
|
|
56
|
-
console.error(`❌ Invalid recipient format: ${input}`);
|
|
57
|
-
console.error(`\nUse one of these formats:`);
|
|
58
|
-
console.error(` moltbook/USERNAME Send to a Moltbook user`);
|
|
59
|
-
console.error(` x/USERNAME Send to an X (Twitter) user`);
|
|
60
|
-
console.error(`\nExamples:`);
|
|
61
|
-
console.error(` moltycash send moltbook/KarpathyMolty 1¢`);
|
|
62
|
-
console.error(` moltycash send x/nikitabier 50¢`);
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
const platform = input.slice(0, slashIndex).toLowerCase();
|
|
66
|
-
const username = input.slice(slashIndex + 1);
|
|
67
|
-
if (!username) {
|
|
68
|
-
throw new Error(`Missing username after "${platform}/"`);
|
|
69
|
-
}
|
|
70
|
-
const xPrefixes = ["x", "x.com", "twitter", "twitter.com"];
|
|
71
|
-
const moltbookPrefixes = ["moltbook", "moltbook.com"];
|
|
72
|
-
if (xPrefixes.includes(platform)) {
|
|
73
|
-
return { type: "x", username };
|
|
74
|
-
}
|
|
75
|
-
if (moltbookPrefixes.includes(platform)) {
|
|
76
|
-
if (!/^[a-zA-Z0-9_-]{1,30}$/.test(username)) {
|
|
77
|
-
throw new Error(`Invalid moltbook username: ${username}. Must be 1-30 alphanumeric characters, underscores, or hyphens.`);
|
|
78
|
-
}
|
|
79
|
-
return { type: "moltbook", username };
|
|
80
|
-
}
|
|
81
|
-
throw new Error(`Unknown platform: "${platform}". Use "x/" for X users or "moltbook/" for Moltbook users.`);
|
|
82
|
-
}
|
|
83
|
-
const args = minimist(process.argv.slice(2));
|
|
84
|
-
let recipient;
|
|
85
|
-
let amount;
|
|
86
|
-
if (args._.length < 2) {
|
|
87
|
-
console.error("Usage: moltycash send <recipient> <amount> [--network <base|solana>]");
|
|
88
|
-
console.error("\nRecipient formats:");
|
|
89
|
-
console.error(" moltbook/USERNAME Send to a Moltbook user");
|
|
90
|
-
console.error(" x/USERNAME Send to an X (Twitter) user");
|
|
91
|
-
console.error("\nExamples:");
|
|
92
|
-
console.error(" moltycash send moltbook/KarpathyMolty 1¢");
|
|
93
|
-
console.error(" moltycash send x/nikitabier 50¢");
|
|
94
|
-
console.error(" moltycash send x/nikitabier 100¢ --network solana");
|
|
95
|
-
console.error("\nAmount formats: 100¢ (cents - recommended), 0.5 (decimal)");
|
|
96
|
-
process.exit(1);
|
|
97
|
-
}
|
|
98
|
-
try {
|
|
99
|
-
recipient = parseRecipient(String(args._[0]));
|
|
100
|
-
amount = parseAmount(String(args._[1]));
|
|
101
|
-
if (amount <= 0) {
|
|
102
|
-
throw new Error("Amount must be greater than 0");
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
console.error(`❌ ${error.message}`);
|
|
107
|
-
process.exit(1);
|
|
108
|
-
}
|
|
109
|
-
// Check which private keys are available
|
|
110
|
-
const hasEvmKey = !!privateKey;
|
|
111
|
-
const hasSvmKey = !!svmPrivateKey;
|
|
112
|
-
// Determine network based on provided arg or auto-detect
|
|
113
|
-
let useSolana;
|
|
114
|
-
const allowedNetworks = ["base", "solana"];
|
|
115
|
-
if (args.network) {
|
|
116
|
-
if (!allowedNetworks.includes(args.network.toLowerCase())) {
|
|
117
|
-
console.error(`Network must be either 'base' or 'solana'`);
|
|
118
|
-
process.exit(1);
|
|
119
|
-
}
|
|
120
|
-
useSolana = args.network.toLowerCase() === "solana";
|
|
121
|
-
if (useSolana && !hasSvmKey) {
|
|
122
|
-
console.error("❌ Missing SVM_PRIVATE_KEY environment variable (needed for --network solana)");
|
|
123
|
-
process.exit(1);
|
|
124
|
-
}
|
|
125
|
-
if (!useSolana && !hasEvmKey) {
|
|
126
|
-
console.error("❌ Missing EVM_PRIVATE_KEY environment variable (needed for --network base)");
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
// Auto-detect from available keys
|
|
132
|
-
if (hasEvmKey && hasSvmKey) {
|
|
133
|
-
console.error("❌ Both EVM_PRIVATE_KEY and SVM_PRIVATE_KEY are set");
|
|
134
|
-
console.error(" Please specify which network to use with --network <base|solana>");
|
|
135
|
-
process.exit(1);
|
|
136
|
-
}
|
|
137
|
-
else if (hasSvmKey) {
|
|
138
|
-
useSolana = true;
|
|
139
|
-
console.log("ℹ️ Auto-detected network: Solana");
|
|
140
|
-
}
|
|
141
|
-
else if (hasEvmKey) {
|
|
142
|
-
useSolana = false;
|
|
143
|
-
console.log("ℹ️ Auto-detected network: Base");
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
console.error("❌ No private keys found");
|
|
147
|
-
console.error(" Set EVM_PRIVATE_KEY (for Base) or SVM_PRIVATE_KEY (for Solana)");
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
async function main() {
|
|
152
|
-
// Create x402 client
|
|
153
|
-
const client = new x402Client();
|
|
154
|
-
if (useSolana) {
|
|
155
|
-
console.log("\n🔧 Creating Solana signer...");
|
|
156
|
-
const privateKeyBytes = bs58.decode(svmPrivateKey);
|
|
157
|
-
const solanaSigner = await createKeyPairSignerFromBytes(privateKeyBytes);
|
|
158
|
-
console.log(`✅ Solana signer created: ${solanaSigner.address}`);
|
|
159
|
-
registerExactSvmScheme(client, { signer: solanaSigner });
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
console.log("\n🔧 Creating Base signer...");
|
|
163
|
-
if (!privateKey.startsWith("0x")) {
|
|
164
|
-
console.error("❌ EVM_PRIVATE_KEY must start with '0x'");
|
|
165
|
-
process.exit(1);
|
|
166
|
-
}
|
|
167
|
-
const account = privateKeyToAccount(privateKey);
|
|
168
|
-
console.log(`✅ Base signer created: ${account.address}`);
|
|
169
|
-
registerExactEvmScheme(client, { signer: account });
|
|
170
|
-
}
|
|
171
|
-
const recipientLabel = recipient.type === "moltbook"
|
|
172
|
-
? `@${recipient.username}`
|
|
173
|
-
: `x/@${recipient.username}`;
|
|
174
|
-
console.log(`\n💸 Sending ${amount} USDC to ${recipientLabel}...`);
|
|
175
|
-
console.log(` API: ${baseURL}/a2a`);
|
|
176
|
-
console.log(` Network: ${useSolana ? "Solana" : "Base"}`);
|
|
177
|
-
if (identityToken) {
|
|
178
|
-
console.log(` 🔐 Sending as verified sender`);
|
|
179
|
-
}
|
|
180
|
-
console.log();
|
|
181
|
-
const headers = {
|
|
182
|
-
"Content-Type": "application/json",
|
|
183
|
-
"X-A2A-Extensions": X402_EXTENSION_URI,
|
|
184
|
-
...(identityToken && { "X-Molty-Identity-Token": identityToken }),
|
|
185
|
-
};
|
|
186
|
-
const payParams = {
|
|
187
|
-
...(recipient.type === "moltbook" && { molty: recipient.username }),
|
|
188
|
-
...(recipient.type === "x" && { x_handle: recipient.username }),
|
|
189
|
-
amount,
|
|
190
|
-
description: `Payment via moltycash-cli (${useSolana ? "Solana" : "Base"})`,
|
|
191
|
-
meta: { agent_name: "moltycash-cli" },
|
|
192
|
-
};
|
|
193
|
-
try {
|
|
194
|
-
// Phase 1: Get payment requirements
|
|
195
|
-
console.log("💳 Phase 1: Requesting payment requirements...");
|
|
196
|
-
const phase1Response = await axios.post(`${baseURL}/a2a`, {
|
|
197
|
-
jsonrpc: "2.0",
|
|
198
|
-
id: 1,
|
|
199
|
-
method: "molty.send",
|
|
200
|
-
params: payParams,
|
|
201
|
-
}, { headers });
|
|
202
|
-
if (phase1Response.data.error) {
|
|
203
|
-
throw new Error(phase1Response.data.error.message || "A2A request failed");
|
|
204
|
-
}
|
|
205
|
-
const phase1Result = phase1Response.data.result;
|
|
206
|
-
if (!phase1Result.id) {
|
|
207
|
-
throw new Error("Missing task ID in response");
|
|
208
|
-
}
|
|
209
|
-
const paymentRequired = phase1Result.status?.message?.metadata?.["x402.payment.required"];
|
|
210
|
-
if (!paymentRequired) {
|
|
211
|
-
throw new Error("No payment requirements found in response");
|
|
212
|
-
}
|
|
213
|
-
// Phase 2: Sign and submit payment
|
|
214
|
-
console.log("🔐 Phase 2: Signing payment...");
|
|
215
|
-
const signedPayment = await client.createPaymentPayload(paymentRequired);
|
|
216
|
-
console.log("📤 Submitting signed payment...\n");
|
|
217
|
-
const phase2Response = await axios.post(`${baseURL}/a2a`, {
|
|
218
|
-
jsonrpc: "2.0",
|
|
219
|
-
id: 2,
|
|
220
|
-
method: "molty.send",
|
|
221
|
-
params: {
|
|
222
|
-
...payParams,
|
|
223
|
-
taskId: phase1Result.id,
|
|
224
|
-
payment: signedPayment,
|
|
225
|
-
},
|
|
226
|
-
}, { headers });
|
|
227
|
-
if (phase2Response.data.error) {
|
|
228
|
-
throw new Error(phase2Response.data.error.message || "Payment failed");
|
|
229
|
-
}
|
|
230
|
-
const result = phase2Response.data.result;
|
|
231
|
-
// Extract details from task artifacts
|
|
232
|
-
const artifacts = result.artifacts || [];
|
|
233
|
-
for (const artifact of artifacts) {
|
|
234
|
-
if (artifact.data) {
|
|
235
|
-
try {
|
|
236
|
-
const data = JSON.parse(Buffer.from(artifact.data, "base64").toString());
|
|
237
|
-
const displayName = data.molty ? `@${data.molty}` : data.x_handle ? `x/@${data.x_handle}` : recipientLabel;
|
|
238
|
-
console.log(`✅ ${data.amount} USDC sent to ${displayName}`);
|
|
239
|
-
if (data.txn_id) {
|
|
240
|
-
console.log(`🔗 TXN: ${data.txn_id}`);
|
|
241
|
-
}
|
|
242
|
-
if (data.network) {
|
|
243
|
-
console.log(`💳 Network: ${data.network}`);
|
|
244
|
-
}
|
|
245
|
-
if (data.receipt) {
|
|
246
|
-
console.log(`📄 Receipt: ${data.receipt}`);
|
|
247
|
-
}
|
|
248
|
-
if (data.x_handle) {
|
|
249
|
-
console.log(`🐦 X: @${data.x_handle}`);
|
|
250
|
-
}
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
|
-
catch {
|
|
254
|
-
// ignore parse errors
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
// Fallback: print status message
|
|
259
|
-
const msg = result.status?.message?.parts
|
|
260
|
-
?.filter((p) => p.kind === "text")
|
|
261
|
-
.map((p) => p.text)
|
|
262
|
-
.join("\n");
|
|
263
|
-
console.log(`✅ ${msg || "Payment sent"}`);
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
const errMsg = error.response?.data?.error?.message || error.response?.data?.msg || error.message;
|
|
267
|
-
console.error(`❌ ${errMsg || "Payment failed"}`);
|
|
268
|
-
if (error.response) {
|
|
269
|
-
console.error(" Status:", error.response.status);
|
|
270
|
-
}
|
|
271
|
-
else if (error.message && !errMsg) {
|
|
272
|
-
console.error(" Error:", error.message);
|
|
273
|
-
}
|
|
274
|
-
process.exit(1);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
main();
|
|
278
|
-
//# sourceMappingURL=send.js.map
|
package/dist/send.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../send.ts"],"names":[],"mappings":"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"}
|