arc402-cli 0.7.5 → 0.9.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/INK6-UX-SPEC.md +446 -0
- package/MIGRATION-SPEC.md +108 -0
- package/dist/abis.js +14 -17
- package/dist/abis.js.map +1 -1
- package/dist/bundler.d.ts +1 -1
- package/dist/bundler.d.ts.map +1 -1
- package/dist/bundler.js +27 -61
- package/dist/bundler.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -9
- package/dist/client.js.map +1 -1
- package/dist/coinbase-smart-wallet.js +1 -4
- package/dist/coinbase-smart-wallet.js.map +1 -1
- package/dist/commands/accept.js +25 -28
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/agent-handshake.js +15 -18
- package/dist/commands/agent-handshake.js.map +1 -1
- package/dist/commands/agent.js +98 -104
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/agreements.js +62 -98
- package/dist/commands/agreements.js.map +1 -1
- package/dist/commands/arbitrator.js +45 -81
- package/dist/commands/arbitrator.js.map +1 -1
- package/dist/commands/arena-handshake.js +27 -30
- package/dist/commands/arena-handshake.js.map +1 -1
- package/dist/commands/arena.js +12 -18
- package/dist/commands/arena.js.map +1 -1
- package/dist/commands/backup.js +30 -36
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/cancel.js +15 -18
- package/dist/commands/cancel.js.map +1 -1
- package/dist/commands/channel.js +45 -81
- package/dist/commands/channel.js.map +1 -1
- package/dist/commands/coldstart.js +31 -34
- package/dist/commands/coldstart.js.map +1 -1
- package/dist/commands/config.js +23 -29
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contract-interaction.js +12 -15
- package/dist/commands/contract-interaction.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +98 -135
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/deliver.js +37 -76
- package/dist/commands/deliver.js.map +1 -1
- package/dist/commands/discover.js +24 -27
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/dispute.js +104 -110
- package/dist/commands/dispute.js.map +1 -1
- package/dist/commands/doctor.js +16 -55
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/endpoint.js +56 -95
- package/dist/commands/endpoint.js.map +1 -1
- package/dist/commands/feed.js +11 -18
- package/dist/commands/feed.js.map +1 -1
- package/dist/commands/hire.js +37 -40
- package/dist/commands/hire.js.map +1 -1
- package/dist/commands/migrate.js +30 -33
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/negotiate.d.ts.map +1 -1
- package/dist/commands/negotiate.js +34 -36
- package/dist/commands/negotiate.js.map +1 -1
- package/dist/commands/openshell.js +68 -104
- package/dist/commands/openshell.js.map +1 -1
- package/dist/commands/owner.js +17 -20
- package/dist/commands/owner.js.map +1 -1
- package/dist/commands/policy.js +41 -43
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/relay.d.ts.map +1 -1
- package/dist/commands/relay.js +18 -51
- package/dist/commands/relay.js.map +1 -1
- package/dist/commands/remediate.js +20 -23
- package/dist/commands/remediate.js.map +1 -1
- package/dist/commands/reputation.js +25 -27
- package/dist/commands/reputation.js.map +1 -1
- package/dist/commands/setup.js +65 -104
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/trust.js +17 -20
- package/dist/commands/trust.js.map +1 -1
- package/dist/commands/verify.js +18 -21
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/wallet.js +619 -625
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/watch.js +33 -36
- package/dist/commands/watch.js.map +1 -1
- package/dist/commands/watchtower.js +37 -73
- package/dist/commands/watchtower.js.map +1 -1
- package/dist/commands/workroom.d.ts.map +1 -1
- package/dist/commands/workroom.js +138 -171
- package/dist/commands/workroom.js.map +1 -1
- package/dist/config.js +21 -65
- package/dist/config.js.map +1 -1
- package/dist/daemon/config.d.ts.map +1 -1
- package/dist/daemon/config.js +16 -53
- package/dist/daemon/config.js.map +1 -1
- package/dist/daemon/hire-listener.d.ts +3 -3
- package/dist/daemon/hire-listener.d.ts.map +1 -1
- package/dist/daemon/hire-listener.js +13 -47
- package/dist/daemon/hire-listener.js.map +1 -1
- package/dist/daemon/index.d.ts +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +50 -88
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/job-lifecycle.d.ts +1 -1
- package/dist/daemon/job-lifecycle.d.ts.map +1 -1
- package/dist/daemon/job-lifecycle.js +11 -51
- package/dist/daemon/job-lifecycle.js.map +1 -1
- package/dist/daemon/notify.d.ts +1 -1
- package/dist/daemon/notify.d.ts.map +1 -1
- package/dist/daemon/notify.js +19 -53
- package/dist/daemon/notify.js.map +1 -1
- package/dist/daemon/token-metering.js +8 -47
- package/dist/daemon/token-metering.js.map +1 -1
- package/dist/daemon/userops.d.ts +2 -2
- package/dist/daemon/userops.d.ts.map +1 -1
- package/dist/daemon/userops.js +23 -27
- package/dist/daemon/userops.js.map +1 -1
- package/dist/daemon/wallet-monitor.d.ts +1 -1
- package/dist/daemon/wallet-monitor.d.ts.map +1 -1
- package/dist/daemon/wallet-monitor.js +8 -12
- package/dist/daemon/wallet-monitor.js.map +1 -1
- package/dist/drain-v4.js +26 -64
- package/dist/drain-v4.js.map +1 -1
- package/dist/endpoint-config.js +20 -63
- package/dist/endpoint-config.js.map +1 -1
- package/dist/endpoint-notify.js +9 -48
- package/dist/endpoint-notify.js.map +1 -1
- package/dist/index.js +16 -50
- package/dist/index.js.map +1 -1
- package/dist/openshell-runtime.d.ts.map +1 -1
- package/dist/openshell-runtime.js +38 -82
- package/dist/openshell-runtime.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +77 -83
- package/dist/program.js.map +1 -1
- package/dist/repl.js +25 -31
- package/dist/repl.js.map +1 -1
- package/dist/signing.js +3 -6
- package/dist/signing.js.map +1 -1
- package/dist/telegram-notify.js +3 -40
- package/dist/telegram-notify.js.map +1 -1
- package/dist/tui/App.d.ts +1 -9
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +87 -65
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Footer.js +4 -7
- package/dist/tui/Footer.js.map +1 -1
- package/dist/tui/Header.d.ts +1 -2
- package/dist/tui/Header.d.ts.map +1 -1
- package/dist/tui/Header.js +9 -14
- package/dist/tui/Header.js.map +1 -1
- package/dist/tui/InputLine.d.ts +1 -2
- package/dist/tui/InputLine.d.ts.map +1 -1
- package/dist/tui/InputLine.js +92 -46
- package/dist/tui/InputLine.js.map +1 -1
- package/dist/tui/Viewport.d.ts +5 -4
- package/dist/tui/Viewport.d.ts.map +1 -1
- package/dist/tui/Viewport.js +20 -13
- package/dist/tui/Viewport.js.map +1 -1
- package/dist/tui/WalletConnectPairing.d.ts +23 -0
- package/dist/tui/WalletConnectPairing.d.ts.map +1 -0
- package/dist/tui/WalletConnectPairing.js +75 -0
- package/dist/tui/WalletConnectPairing.js.map +1 -0
- package/dist/tui/components/Button.d.ts +7 -0
- package/dist/tui/components/Button.d.ts.map +1 -0
- package/dist/tui/components/Button.js +18 -0
- package/dist/tui/components/Button.js.map +1 -0
- package/dist/tui/components/CeremonyView.d.ts +13 -0
- package/dist/tui/components/CeremonyView.d.ts.map +1 -0
- package/dist/tui/components/CeremonyView.js +7 -0
- package/dist/tui/components/CeremonyView.js.map +1 -0
- package/dist/tui/components/CompletionDropdown.d.ts +7 -0
- package/dist/tui/components/CompletionDropdown.d.ts.map +1 -0
- package/dist/tui/components/CompletionDropdown.js +20 -0
- package/dist/tui/components/CompletionDropdown.js.map +1 -0
- package/dist/tui/components/ConfirmPrompt.d.ts +9 -0
- package/dist/tui/components/ConfirmPrompt.d.ts.map +1 -0
- package/dist/tui/components/ConfirmPrompt.js +7 -0
- package/dist/tui/components/ConfirmPrompt.js.map +1 -0
- package/dist/tui/components/InteractiveTable.d.ts +14 -0
- package/dist/tui/components/InteractiveTable.d.ts.map +1 -0
- package/dist/tui/components/InteractiveTable.js +58 -0
- package/dist/tui/components/InteractiveTable.js.map +1 -0
- package/dist/tui/components/StepSpinner.d.ts +11 -0
- package/dist/tui/components/StepSpinner.d.ts.map +1 -0
- package/dist/tui/components/StepSpinner.js +29 -0
- package/dist/tui/components/StepSpinner.js.map +1 -0
- package/dist/tui/components/Toast.d.ts +18 -0
- package/dist/tui/components/Toast.d.ts.map +1 -0
- package/dist/tui/components/Toast.js +25 -0
- package/dist/tui/components/Toast.js.map +1 -0
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +28 -21
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/useChat.js +13 -19
- package/dist/tui/useChat.js.map +1 -1
- package/dist/tui/useCommand.d.ts +2 -7
- package/dist/tui/useCommand.d.ts.map +1 -1
- package/dist/tui/useCommand.js +77 -165
- package/dist/tui/useCommand.js.map +1 -1
- package/dist/tui/useNotifications.d.ts +9 -0
- package/dist/tui/useNotifications.d.ts.map +1 -0
- package/dist/tui/useNotifications.js +14 -0
- package/dist/tui/useNotifications.js.map +1 -0
- package/dist/tui/useScroll.js +9 -12
- package/dist/tui/useScroll.js.map +1 -1
- package/dist/ui/banner.d.ts +12 -0
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +35 -19
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/colors.js +13 -19
- package/dist/ui/colors.js.map +1 -1
- package/dist/ui/format.js +6 -14
- package/dist/ui/format.js.map +1 -1
- package/dist/ui/spinner.js +6 -12
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/tree.js +3 -6
- package/dist/ui/tree.js.map +1 -1
- package/dist/utils/format.js +27 -41
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/hash.js +4 -42
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/time.js +2 -6
- package/dist/utils/time.js.map +1 -1
- package/dist/wallet-router.d.ts +1 -1
- package/dist/wallet-router.d.ts.map +1 -1
- package/dist/wallet-router.js +12 -19
- package/dist/wallet-router.js.map +1 -1
- package/dist/walletconnect-session.d.ts +1 -1
- package/dist/walletconnect-session.d.ts.map +1 -1
- package/dist/walletconnect-session.js +6 -11
- package/dist/walletconnect-session.js.map +1 -1
- package/dist/walletconnect.d.ts +6 -1
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +32 -35
- package/dist/walletconnect.js.map +1 -1
- package/package.json +7 -6
- package/src/bundler.ts +1 -1
- package/src/client.ts +1 -1
- package/src/commands/accept.ts +7 -7
- package/src/commands/agent-handshake.ts +4 -4
- package/src/commands/agent.ts +9 -9
- package/src/commands/agreements.ts +8 -8
- package/src/commands/arbitrator.ts +5 -5
- package/src/commands/arena-handshake.ts +6 -6
- package/src/commands/arena.ts +2 -2
- package/src/commands/backup.ts +1 -1
- package/src/commands/cancel.ts +6 -6
- package/src/commands/channel.ts +6 -6
- package/src/commands/coldstart.ts +5 -5
- package/src/commands/config.ts +2 -2
- package/src/commands/contract-interaction.ts +2 -2
- package/src/commands/daemon.ts +14 -11
- package/src/commands/deliver.ts +9 -9
- package/src/commands/discover.ts +5 -5
- package/src/commands/dispute.ts +7 -7
- package/src/commands/doctor.ts +2 -2
- package/src/commands/endpoint.ts +6 -6
- package/src/commands/feed.ts +1 -1
- package/src/commands/hire.ts +10 -10
- package/src/commands/migrate.ts +7 -7
- package/src/commands/negotiate.ts +6 -5
- package/src/commands/openshell.ts +4 -4
- package/src/commands/owner.ts +5 -5
- package/src/commands/policy.ts +5 -5
- package/src/commands/relay.ts +5 -1
- package/src/commands/remediate.ts +5 -5
- package/src/commands/reputation.ts +6 -6
- package/src/commands/setup.ts +1 -1
- package/src/commands/trust.ts +6 -6
- package/src/commands/verify.ts +6 -6
- package/src/commands/wallet.ts +15 -15
- package/src/commands/watch.ts +3 -3
- package/src/commands/watchtower.ts +6 -6
- package/src/commands/workroom.ts +14 -10
- package/src/daemon/config.ts +2 -1
- package/src/daemon/hire-listener.ts +3 -3
- package/src/daemon/index.ts +10 -9
- package/src/daemon/job-lifecycle.ts +1 -1
- package/src/daemon/notify.ts +4 -4
- package/src/daemon/userops.ts +4 -4
- package/src/daemon/wallet-monitor.ts +2 -2
- package/src/endpoint-notify.ts +1 -1
- package/src/index.ts +8 -7
- package/src/openshell-runtime.ts +5 -1
- package/src/program.ts +36 -36
- package/src/repl.ts +3 -3
- package/src/tui/App.tsx +75 -52
- package/src/tui/Header.tsx +26 -12
- package/src/tui/InputLine.tsx +108 -33
- package/src/tui/Viewport.tsx +22 -18
- package/src/tui/WalletConnectPairing.tsx +131 -0
- package/src/tui/components/Button.tsx +38 -0
- package/src/tui/components/CeremonyView.tsx +39 -0
- package/src/tui/components/CompletionDropdown.tsx +59 -0
- package/src/tui/components/ConfirmPrompt.tsx +36 -0
- package/src/tui/components/InteractiveTable.tsx +112 -0
- package/src/tui/components/StepSpinner.tsx +84 -0
- package/src/tui/components/Toast.tsx +59 -0
- package/src/tui/index.tsx +27 -9
- package/src/tui/useChat.ts +1 -1
- package/src/tui/useCommand.ts +86 -183
- package/src/tui/useNotifications.ts +28 -0
- package/src/ui/banner.ts +29 -2
- package/src/ui/tree.ts +1 -1
- package/src/wallet-router.ts +2 -2
- package/src/walletconnect-session.ts +1 -1
- package/src/walletconnect.ts +20 -5
- package/tsconfig.json +16 -7
package/dist/commands/channel.js
CHANGED
|
@@ -1,49 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.registerChannelCommands = registerChannelCommands;
|
|
37
|
-
const config_1 = require("../config");
|
|
38
|
-
const client_1 = require("../client");
|
|
39
|
-
const sdk_1 = require("@arc402/sdk");
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const os = __importStar(require("os"));
|
|
43
|
-
const colors_1 = require("../ui/colors");
|
|
44
|
-
const spinner_1 = require("../ui/spinner");
|
|
45
|
-
const tree_1 = require("../ui/tree");
|
|
46
|
-
const format_1 = require("../ui/format");
|
|
1
|
+
import { loadConfig } from "../config.js";
|
|
2
|
+
import { requireSigner, getClient } from "../client.js";
|
|
3
|
+
import { ChannelClient } from "@arc402/sdk";
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import * as os from "os";
|
|
7
|
+
import { c } from '../ui/colors.js';
|
|
8
|
+
import { startSpinner } from '../ui/spinner.js';
|
|
9
|
+
import { renderTree } from '../ui/tree.js';
|
|
10
|
+
import { formatAddress } from '../ui/format.js';
|
|
47
11
|
const CHANNEL_STATES_DIR = path.join(os.homedir(), ".arc402", "channel-states");
|
|
48
12
|
function loadStateFile(path) {
|
|
49
13
|
const raw = fs.readFileSync(path, "utf-8");
|
|
@@ -53,7 +17,7 @@ function loadStateFile(path) {
|
|
|
53
17
|
cumulativePayment: BigInt(obj.cumulativePayment),
|
|
54
18
|
};
|
|
55
19
|
}
|
|
56
|
-
function registerChannelCommands(program) {
|
|
20
|
+
export function registerChannelCommands(program) {
|
|
57
21
|
const channel = program.command("channel").description("Session channel management — open, close, challenge, reclaim");
|
|
58
22
|
channel.command("open <provider>")
|
|
59
23
|
.description("Open a session channel with a provider")
|
|
@@ -63,12 +27,12 @@ function registerChannelCommands(program) {
|
|
|
63
27
|
.requiredOption("--deadline <timestamp>", "Channel expiry unix timestamp")
|
|
64
28
|
.option("--json", "JSON output")
|
|
65
29
|
.action(async (provider, opts) => {
|
|
66
|
-
const config =
|
|
30
|
+
const config = loadConfig();
|
|
67
31
|
if (!config.serviceAgreementAddress)
|
|
68
32
|
throw new Error("serviceAgreementAddress missing in config");
|
|
69
|
-
const { signer } = await
|
|
70
|
-
const client = new
|
|
71
|
-
const spinner =
|
|
33
|
+
const { signer } = await requireSigner(config);
|
|
34
|
+
const client = new ChannelClient(config.serviceAgreementAddress, signer);
|
|
35
|
+
const spinner = startSpinner('Opening session channel…');
|
|
72
36
|
const result = await client.openSessionChannel(provider, opts.token, BigInt(opts.max), BigInt(opts.rate), Number(opts.deadline));
|
|
73
37
|
if (opts.json || program.opts().json) {
|
|
74
38
|
spinner.stop();
|
|
@@ -76,7 +40,7 @@ function registerChannelCommands(program) {
|
|
|
76
40
|
}
|
|
77
41
|
else {
|
|
78
42
|
spinner.succeed(' Opened — channel ' + result.channelId);
|
|
79
|
-
|
|
43
|
+
renderTree([
|
|
80
44
|
{ label: 'Channel', value: result.channelId },
|
|
81
45
|
{ label: 'Tx', value: result.txHash, last: true },
|
|
82
46
|
]);
|
|
@@ -86,21 +50,21 @@ function registerChannelCommands(program) {
|
|
|
86
50
|
.description("Get channel status")
|
|
87
51
|
.option("--json", "JSON output")
|
|
88
52
|
.action(async (channelId, opts) => {
|
|
89
|
-
const config =
|
|
53
|
+
const config = loadConfig();
|
|
90
54
|
if (!config.serviceAgreementAddress)
|
|
91
55
|
throw new Error("serviceAgreementAddress missing in config");
|
|
92
|
-
const { provider } = await
|
|
93
|
-
const client = new
|
|
56
|
+
const { provider } = await getClient(config);
|
|
57
|
+
const client = new ChannelClient(config.serviceAgreementAddress, provider);
|
|
94
58
|
const ch = await client.getChannelStatus(channelId);
|
|
95
59
|
if (opts.json || program.opts().json) {
|
|
96
60
|
console.log(JSON.stringify(ch, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
|
|
97
61
|
}
|
|
98
62
|
else {
|
|
99
|
-
console.log('\n ' +
|
|
100
|
-
|
|
63
|
+
console.log('\n ' + c.mark + c.white(` Channel ${channelId}`));
|
|
64
|
+
renderTree([
|
|
101
65
|
{ label: 'Status', value: ch.status },
|
|
102
|
-
{ label: 'Client', value:
|
|
103
|
-
{ label: 'Provider', value:
|
|
66
|
+
{ label: 'Client', value: formatAddress(ch.client) },
|
|
67
|
+
{ label: 'Provider', value: formatAddress(ch.provider) },
|
|
104
68
|
{ label: 'Deposit', value: ch.depositAmount.toString() },
|
|
105
69
|
{ label: 'Settled', value: ch.settledAmount.toString() },
|
|
106
70
|
{ label: 'Seq', value: ch.lastSequenceNumber.toString(), last: true },
|
|
@@ -111,11 +75,11 @@ function registerChannelCommands(program) {
|
|
|
111
75
|
.description("List open channels for a wallet (client or provider)")
|
|
112
76
|
.option("--json", "JSON output")
|
|
113
77
|
.action(async (wallet, opts) => {
|
|
114
|
-
const config =
|
|
78
|
+
const config = loadConfig();
|
|
115
79
|
if (!config.serviceAgreementAddress)
|
|
116
80
|
throw new Error("serviceAgreementAddress missing in config");
|
|
117
|
-
const { provider } = await
|
|
118
|
-
const client = new
|
|
81
|
+
const { provider } = await getClient(config);
|
|
82
|
+
const client = new ChannelClient(config.serviceAgreementAddress, provider);
|
|
119
83
|
const channels = await client.getOpenChannels(wallet);
|
|
120
84
|
if (opts.json || program.opts().json) {
|
|
121
85
|
console.log(JSON.stringify(channels, (_k, v) => typeof v === "bigint" ? v.toString() : v, 2));
|
|
@@ -136,19 +100,19 @@ function registerChannelCommands(program) {
|
|
|
136
100
|
.requiredOption("--state <path>", "Path to signed state JSON file")
|
|
137
101
|
.option("--json", "JSON output")
|
|
138
102
|
.action(async (channelId, opts) => {
|
|
139
|
-
const config =
|
|
103
|
+
const config = loadConfig();
|
|
140
104
|
if (!config.serviceAgreementAddress)
|
|
141
105
|
throw new Error("serviceAgreementAddress missing in config");
|
|
142
|
-
const { signer } = await
|
|
143
|
-
const client = new
|
|
106
|
+
const { signer } = await requireSigner(config);
|
|
107
|
+
const client = new ChannelClient(config.serviceAgreementAddress, signer);
|
|
144
108
|
const state = loadStateFile(opts.state);
|
|
145
109
|
const result = await client.closeChannel(channelId, state);
|
|
146
110
|
if (opts.json || program.opts().json) {
|
|
147
111
|
console.log(JSON.stringify(result, null, 2));
|
|
148
112
|
}
|
|
149
113
|
else {
|
|
150
|
-
console.log(' ' +
|
|
151
|
-
console.log(' ' +
|
|
114
|
+
console.log(' ' + c.success + c.white(` Close submitted — ${result.txHash}`));
|
|
115
|
+
console.log(' ' + c.dim('Challenge window open (24h)'));
|
|
152
116
|
}
|
|
153
117
|
});
|
|
154
118
|
channel.command("challenge <channelId>")
|
|
@@ -156,52 +120,52 @@ function registerChannelCommands(program) {
|
|
|
156
120
|
.requiredOption("--state <path>", "Path to signed state JSON file with higher sequenceNumber")
|
|
157
121
|
.option("--json", "JSON output")
|
|
158
122
|
.action(async (channelId, opts) => {
|
|
159
|
-
const config =
|
|
123
|
+
const config = loadConfig();
|
|
160
124
|
if (!config.serviceAgreementAddress)
|
|
161
125
|
throw new Error("serviceAgreementAddress missing in config");
|
|
162
|
-
const { signer } = await
|
|
163
|
-
const client = new
|
|
126
|
+
const { signer } = await requireSigner(config);
|
|
127
|
+
const client = new ChannelClient(config.serviceAgreementAddress, signer);
|
|
164
128
|
const state = loadStateFile(opts.state);
|
|
165
129
|
const result = await client.challengeChannel(channelId, state);
|
|
166
130
|
if (opts.json || program.opts().json) {
|
|
167
131
|
console.log(JSON.stringify(result, null, 2));
|
|
168
132
|
}
|
|
169
133
|
else {
|
|
170
|
-
console.log(' ' +
|
|
134
|
+
console.log(' ' + c.success + c.white(` Challenge submitted — ${result.txHash}`));
|
|
171
135
|
}
|
|
172
136
|
});
|
|
173
137
|
channel.command("finalise <channelId>")
|
|
174
138
|
.description("Finalise a close after the challenge window expires")
|
|
175
139
|
.option("--json", "JSON output")
|
|
176
140
|
.action(async (channelId, opts) => {
|
|
177
|
-
const config =
|
|
141
|
+
const config = loadConfig();
|
|
178
142
|
if (!config.serviceAgreementAddress)
|
|
179
143
|
throw new Error("serviceAgreementAddress missing in config");
|
|
180
|
-
const { signer } = await
|
|
181
|
-
const client = new
|
|
144
|
+
const { signer } = await requireSigner(config);
|
|
145
|
+
const client = new ChannelClient(config.serviceAgreementAddress, signer);
|
|
182
146
|
const result = await client.finaliseChallenge(channelId);
|
|
183
147
|
if (opts.json || program.opts().json) {
|
|
184
148
|
console.log(JSON.stringify(result, null, 2));
|
|
185
149
|
}
|
|
186
150
|
else {
|
|
187
|
-
console.log(' ' +
|
|
151
|
+
console.log(' ' + c.success + c.white(` Finalised — ${result.txHash}`));
|
|
188
152
|
}
|
|
189
153
|
});
|
|
190
154
|
channel.command("reclaim <channelId>")
|
|
191
155
|
.description("Client: reclaim deposit from expired channel")
|
|
192
156
|
.option("--json", "JSON output")
|
|
193
157
|
.action(async (channelId, opts) => {
|
|
194
|
-
const config =
|
|
158
|
+
const config = loadConfig();
|
|
195
159
|
if (!config.serviceAgreementAddress)
|
|
196
160
|
throw new Error("serviceAgreementAddress missing in config");
|
|
197
|
-
const { signer } = await
|
|
198
|
-
const client = new
|
|
161
|
+
const { signer } = await requireSigner(config);
|
|
162
|
+
const client = new ChannelClient(config.serviceAgreementAddress, signer);
|
|
199
163
|
const result = await client.reclaimExpiredChannel(channelId);
|
|
200
164
|
if (opts.json || program.opts().json) {
|
|
201
165
|
console.log(JSON.stringify(result, null, 2));
|
|
202
166
|
}
|
|
203
167
|
else {
|
|
204
|
-
console.log(' ' +
|
|
168
|
+
console.log(' ' + c.success + c.white(` Reclaimed — ${result.txHash}`));
|
|
205
169
|
}
|
|
206
170
|
});
|
|
207
171
|
channel.command("store-state <channelId> <statePath>")
|
|
@@ -240,8 +204,8 @@ function registerChannelCommands(program) {
|
|
|
240
204
|
console.log(JSON.stringify({ stored: true, channelId, path: dest }));
|
|
241
205
|
}
|
|
242
206
|
else {
|
|
243
|
-
console.log(' ' +
|
|
244
|
-
console.log(' ' +
|
|
207
|
+
console.log(' ' + c.success + c.white(` State stored — ${dest}`));
|
|
208
|
+
console.log(' ' + c.dim(`seq: ${state.sequenceNumber}`));
|
|
245
209
|
}
|
|
246
210
|
});
|
|
247
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const colors_1 = require("../ui/colors");
|
|
8
|
-
const spinner_1 = require("../ui/spinner");
|
|
9
|
-
const tree_1 = require("../ui/tree");
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { loadConfig } from "../config.js";
|
|
3
|
+
import { getClient, requireSigner } from "../client.js";
|
|
4
|
+
import { c } from '../ui/colors.js';
|
|
5
|
+
import { startSpinner } from '../ui/spinner.js';
|
|
6
|
+
import { renderTree } from '../ui/tree.js';
|
|
10
7
|
const VOUCHING_REGISTRY_ABI = [
|
|
11
8
|
"function vouch(address newAgent, uint256 stakeAmount) external payable",
|
|
12
9
|
"function getVouchedBoost(address agent) external view returns (uint256)",
|
|
@@ -17,9 +14,9 @@ const TRUST_REGISTRY_BOND_ABI = [
|
|
|
17
14
|
"function claimBond() external",
|
|
18
15
|
"function getBondInfo(address agent) external view returns (uint256 amount, uint256 postedAt, bool active)",
|
|
19
16
|
];
|
|
20
|
-
const BOND_DEFAULT_AMOUNT =
|
|
17
|
+
const BOND_DEFAULT_AMOUNT = ethers.parseEther("0.01");
|
|
21
18
|
const BOND_LOCK_SECONDS = 90 * 24 * 60 * 60; // 90 days
|
|
22
|
-
function registerColdStartCommands(program) {
|
|
19
|
+
export function registerColdStartCommands(program) {
|
|
23
20
|
// ─── vouch ─────────────────────────────────────────────────────────────────
|
|
24
21
|
program
|
|
25
22
|
.command("vouch <address>")
|
|
@@ -28,18 +25,18 @@ function registerColdStartCommands(program) {
|
|
|
28
25
|
.option("--signer <key>", "Private key override (hex, 0x-prefixed)")
|
|
29
26
|
.option("--json")
|
|
30
27
|
.action(async (address, opts) => {
|
|
31
|
-
const config =
|
|
28
|
+
const config = loadConfig();
|
|
32
29
|
if (!config.vouchingRegistryAddress) {
|
|
33
30
|
console.error("vouchingRegistryAddress not configured. Run `arc402 config set vouchingRegistryAddress <address>`.");
|
|
34
31
|
process.exit(1);
|
|
35
32
|
}
|
|
36
|
-
let { signer, provider } = await
|
|
33
|
+
let { signer, provider } = await requireSigner(config);
|
|
37
34
|
if (opts.signer) {
|
|
38
|
-
signer = new
|
|
35
|
+
signer = new ethers.Wallet(opts.signer, provider);
|
|
39
36
|
}
|
|
40
37
|
const stakeAmount = opts.stake ? BigInt(opts.stake) : 0n;
|
|
41
|
-
const contract = new
|
|
42
|
-
const spinner =
|
|
38
|
+
const contract = new ethers.Contract(config.vouchingRegistryAddress, VOUCHING_REGISTRY_ABI, signer);
|
|
39
|
+
const spinner = startSpinner(`Vouching for ${address}…`);
|
|
43
40
|
const tx = await contract.vouch(address, stakeAmount);
|
|
44
41
|
const receipt = await tx.wait();
|
|
45
42
|
const boost = await contract.getVouchedBoost(address);
|
|
@@ -54,9 +51,9 @@ function registerColdStartCommands(program) {
|
|
|
54
51
|
return console.log(JSON.stringify(payload, null, 2));
|
|
55
52
|
}
|
|
56
53
|
spinner.succeed(` Vouched — ${address}`);
|
|
57
|
-
|
|
54
|
+
renderTree([
|
|
58
55
|
{ label: 'New Agent', value: address },
|
|
59
|
-
{ label: 'Stake', value: stakeAmount > 0n ? `${
|
|
56
|
+
{ label: 'Stake', value: stakeAmount > 0n ? `${ethers.formatEther(stakeAmount)} ETH` : '0' },
|
|
60
57
|
{ label: 'Boost', value: `+${boost} trust points` },
|
|
61
58
|
{ label: 'Tx', value: receipt.hash, last: true },
|
|
62
59
|
]);
|
|
@@ -69,13 +66,13 @@ function registerColdStartCommands(program) {
|
|
|
69
66
|
.option("--claim", "Claim bond after 90-day lock period")
|
|
70
67
|
.option("--json")
|
|
71
68
|
.action(async (opts) => {
|
|
72
|
-
const config =
|
|
69
|
+
const config = loadConfig();
|
|
73
70
|
if (!config.trustRegistryAddress) {
|
|
74
71
|
console.error("trustRegistryAddress not configured.");
|
|
75
72
|
process.exit(1);
|
|
76
73
|
}
|
|
77
|
-
const { signer } = await
|
|
78
|
-
const contract = new
|
|
74
|
+
const { signer } = await requireSigner(config);
|
|
75
|
+
const contract = new ethers.Contract(config.trustRegistryAddress, TRUST_REGISTRY_BOND_ABI, signer);
|
|
79
76
|
if (opts.claim) {
|
|
80
77
|
const tx = await contract.claimBond();
|
|
81
78
|
const receipt = await tx.wait();
|
|
@@ -87,7 +84,7 @@ function registerColdStartCommands(program) {
|
|
|
87
84
|
return;
|
|
88
85
|
}
|
|
89
86
|
const amount = opts.amount ? BigInt(opts.amount) : BOND_DEFAULT_AMOUNT;
|
|
90
|
-
const bondSpinner =
|
|
87
|
+
const bondSpinner = startSpinner('Posting bond…');
|
|
91
88
|
const tx = await contract.postBond({ value: amount });
|
|
92
89
|
const receipt = await tx.wait();
|
|
93
90
|
const payload = { bonded: true, amount: amount.toString(), txHash: receipt.hash };
|
|
@@ -95,9 +92,9 @@ function registerColdStartCommands(program) {
|
|
|
95
92
|
bondSpinner.stop();
|
|
96
93
|
return console.log(JSON.stringify(payload, null, 2));
|
|
97
94
|
}
|
|
98
|
-
bondSpinner.succeed(` Bond posted — ${
|
|
99
|
-
|
|
100
|
-
{ label: 'Amount', value: `${
|
|
95
|
+
bondSpinner.succeed(` Bond posted — ${ethers.formatEther(amount)} ETH`);
|
|
96
|
+
renderTree([
|
|
97
|
+
{ label: 'Amount', value: `${ethers.formatEther(amount)} ETH` },
|
|
101
98
|
{ label: 'Tx', value: receipt.hash },
|
|
102
99
|
{ label: 'Note', value: 'Claimable after 90 days of clean operation', last: true },
|
|
103
100
|
]);
|
|
@@ -108,13 +105,13 @@ function registerColdStartCommands(program) {
|
|
|
108
105
|
.description("Show active bond and time remaining for an address")
|
|
109
106
|
.option("--json")
|
|
110
107
|
.action(async (address, opts) => {
|
|
111
|
-
const config =
|
|
108
|
+
const config = loadConfig();
|
|
112
109
|
if (!config.trustRegistryAddress) {
|
|
113
110
|
console.error("trustRegistryAddress not configured.");
|
|
114
111
|
process.exit(1);
|
|
115
112
|
}
|
|
116
|
-
const { provider } = await
|
|
117
|
-
const contract = new
|
|
113
|
+
const { provider } = await getClient(config);
|
|
114
|
+
const contract = new ethers.Contract(config.trustRegistryAddress, TRUST_REGISTRY_BOND_ABI, provider);
|
|
118
115
|
let amount, postedAt, active;
|
|
119
116
|
try {
|
|
120
117
|
const result = await contract.getBondInfo(address);
|
|
@@ -126,8 +123,8 @@ function registerColdStartCommands(program) {
|
|
|
126
123
|
const payload = { address, bonded: false };
|
|
127
124
|
if (opts.json)
|
|
128
125
|
return console.log(JSON.stringify(payload, null, 2));
|
|
129
|
-
console.log('\n ' +
|
|
130
|
-
|
|
126
|
+
console.log('\n ' + c.mark + c.white(` Bond Status — ${address}`));
|
|
127
|
+
renderTree([{ label: 'Status', value: 'No active bond', last: true }]);
|
|
131
128
|
return;
|
|
132
129
|
}
|
|
133
130
|
const now = Math.floor(Date.now() / 1000);
|
|
@@ -144,13 +141,13 @@ function registerColdStartCommands(program) {
|
|
|
144
141
|
};
|
|
145
142
|
if (opts.json)
|
|
146
143
|
return console.log(JSON.stringify(payload, null, 2));
|
|
147
|
-
console.log('\n ' +
|
|
144
|
+
console.log('\n ' + c.mark + c.white(` Bond Status — ${address}`));
|
|
148
145
|
if (!active) {
|
|
149
|
-
|
|
146
|
+
renderTree([{ label: 'Status', value: 'No active bond', last: true }]);
|
|
150
147
|
return;
|
|
151
148
|
}
|
|
152
|
-
|
|
153
|
-
{ label: 'Amount', value: `${
|
|
149
|
+
renderTree([
|
|
150
|
+
{ label: 'Amount', value: `${ethers.formatEther(amount)} ETH` },
|
|
154
151
|
{ label: 'Posted', value: new Date(Number(postedAt) * 1000).toISOString() },
|
|
155
152
|
{ label: 'Claimable', value: daysRemaining > 0 ? `in ${daysRemaining} days` : 'now', last: true },
|
|
156
153
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coldstart.js","sourceRoot":"","sources":["../../src/commands/coldstart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coldstart.js","sourceRoot":"","sources":["../../src/commands/coldstart.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
exports.registerConfigCommands = registerConfigCommands;
|
|
7
|
-
const prompts_1 = __importDefault(require("prompts"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const config_1 = require("../config");
|
|
10
|
-
const colors_1 = require("../ui/colors");
|
|
11
|
-
function registerConfigCommands(program) {
|
|
1
|
+
import prompts from "prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { NETWORK_DEFAULTS, configExists, loadConfig, saveConfig, getSubdomainApi, getWcProjectId } from "../config.js";
|
|
4
|
+
import { c } from '../ui/colors.js';
|
|
5
|
+
export function registerConfigCommands(program) {
|
|
12
6
|
const config = program.command("config").description("Manage ARC-402 CLI configuration");
|
|
13
7
|
config.command("init").description("Interactive setup for ~/.arc402/config.json").action(async () => {
|
|
14
|
-
const existing =
|
|
15
|
-
const answers = await (
|
|
8
|
+
const existing = configExists() ? loadConfig() : {};
|
|
9
|
+
const answers = await prompts([
|
|
16
10
|
{ type: "select", name: "network", message: "Network", choices: [{ title: "Base Mainnet", value: "base-mainnet" }, { title: "Base Sepolia (testnet)", value: "base-sepolia" }], initial: existing.network === "base-sepolia" ? 1 : 0 },
|
|
17
11
|
]);
|
|
18
12
|
if (!answers.network) {
|
|
19
|
-
console.log(
|
|
13
|
+
console.log(chalk.red("✗ Setup cancelled"));
|
|
20
14
|
return;
|
|
21
15
|
}
|
|
22
|
-
const defaults =
|
|
16
|
+
const defaults = NETWORK_DEFAULTS[answers.network] ?? {};
|
|
23
17
|
const cfg = {
|
|
24
18
|
network: answers.network,
|
|
25
|
-
walletConnectProjectId:
|
|
19
|
+
walletConnectProjectId: getWcProjectId(),
|
|
26
20
|
rpcUrl: defaults.rpcUrl ?? "https://mainnet.base.org",
|
|
27
21
|
trustRegistryAddress: defaults.trustRegistryAddress ?? "",
|
|
28
22
|
agentRegistryAddress: defaults.agentRegistryV2Address ?? defaults.agentRegistryAddress,
|
|
@@ -38,36 +32,36 @@ function registerConfigCommands(program) {
|
|
|
38
32
|
...(existing.telegramThreadId ? { telegramThreadId: existing.telegramThreadId } : {}),
|
|
39
33
|
...(existing.walletContractAddress ? { walletContractAddress: existing.walletContractAddress } : {}),
|
|
40
34
|
};
|
|
41
|
-
|
|
35
|
+
saveConfig(cfg);
|
|
42
36
|
console.log();
|
|
43
|
-
console.log(' ' +
|
|
37
|
+
console.log(' ' + c.success + c.white(' Config saved'));
|
|
44
38
|
console.log();
|
|
45
|
-
console.log(
|
|
46
|
-
console.log(
|
|
47
|
-
console.log(
|
|
39
|
+
console.log(chalk.dim(" Network ") + chalk.white(answers.network === "base-mainnet" ? "Base Mainnet" : "Base Sepolia"));
|
|
40
|
+
console.log(chalk.dim(" RPC ") + chalk.white(cfg.rpcUrl));
|
|
41
|
+
console.log(chalk.dim(" Contracts ") + chalk.white("All protocol addresses loaded"));
|
|
48
42
|
console.log();
|
|
49
|
-
console.log(
|
|
43
|
+
console.log(chalk.dim(" Next: ") + chalk.white("arc402 wallet deploy"));
|
|
50
44
|
console.log();
|
|
51
45
|
});
|
|
52
46
|
config.command("show").description("Print current config").action(() => {
|
|
53
|
-
const cfg =
|
|
54
|
-
console.log(JSON.stringify({ ...cfg, privateKey: cfg.privateKey ? "***" : undefined, subdomainApi:
|
|
47
|
+
const cfg = loadConfig();
|
|
48
|
+
console.log(JSON.stringify({ ...cfg, privateKey: cfg.privateKey ? "***" : undefined, subdomainApi: getSubdomainApi(cfg) }, null, 2));
|
|
55
49
|
});
|
|
56
50
|
config.command("set <key> <value>").description("Set a config value: arc402 config set <key> <value>").action((key, value) => {
|
|
57
51
|
const BLOCKED_KEYS = ["privateKey", "guardianPrivateKey", "cdpPrivateKey", "machineKey"];
|
|
58
52
|
const ALLOWED_KEYS = ["network", "rpcUrl", "walletContractAddress", "ownerAddress", "walletConnectProjectId", "subdomainApi", "telegramBotToken", "telegramChatId", "telegramThreadId"];
|
|
59
53
|
if (BLOCKED_KEYS.includes(key)) {
|
|
60
|
-
console.error(
|
|
54
|
+
console.error(chalk.red("Cannot set sensitive keys via config set. Edit ~/.arc402/config.json directly."));
|
|
61
55
|
process.exit(1);
|
|
62
56
|
}
|
|
63
57
|
if (!ALLOWED_KEYS.includes(key)) {
|
|
64
|
-
console.error(
|
|
58
|
+
console.error(chalk.red(`Unknown config key: ${key}. Allowed keys: ${ALLOWED_KEYS.join(", ")}`));
|
|
65
59
|
process.exit(1);
|
|
66
60
|
}
|
|
67
|
-
const cfg =
|
|
61
|
+
const cfg = loadConfig();
|
|
68
62
|
cfg[key] = value;
|
|
69
|
-
|
|
70
|
-
console.log(' ' +
|
|
63
|
+
saveConfig(cfg);
|
|
64
|
+
console.log(' ' + c.success + c.white(` ${key} = ${value}`));
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
67
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|