arc402-cli 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +245 -0
- package/dist/abis.d.ts +19 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +177 -0
- package/dist/abis.js.map +1 -0
- package/dist/bundler.d.ts +65 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +181 -0
- package/dist/bundler.js.map +1 -0
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +24 -0
- package/dist/client.js.map +1 -0
- package/dist/coinbase-smart-wallet.d.ts +28 -0
- package/dist/coinbase-smart-wallet.d.ts.map +1 -0
- package/dist/coinbase-smart-wallet.js +38 -0
- package/dist/coinbase-smart-wallet.js.map +1 -0
- package/dist/commands/accept.d.ts +3 -0
- package/dist/commands/accept.d.ts.map +1 -0
- package/dist/commands/accept.js +26 -0
- package/dist/commands/accept.js.map +1 -0
- package/dist/commands/agent-handshake.d.ts +3 -0
- package/dist/commands/agent-handshake.d.ts.map +1 -0
- package/dist/commands/agent-handshake.js +61 -0
- package/dist/commands/agent-handshake.js.map +1 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +417 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/agreements.d.ts +3 -0
- package/dist/commands/agreements.d.ts.map +1 -0
- package/dist/commands/agreements.js +344 -0
- package/dist/commands/agreements.js.map +1 -0
- package/dist/commands/arbitrator.d.ts +3 -0
- package/dist/commands/arbitrator.d.ts.map +1 -0
- package/dist/commands/arbitrator.js +157 -0
- package/dist/commands/arbitrator.js.map +1 -0
- package/dist/commands/arena-handshake.d.ts +3 -0
- package/dist/commands/arena-handshake.d.ts.map +1 -0
- package/dist/commands/arena-handshake.js +187 -0
- package/dist/commands/arena-handshake.js.map +1 -0
- package/dist/commands/cancel.d.ts +3 -0
- package/dist/commands/cancel.d.ts.map +1 -0
- package/dist/commands/cancel.js +30 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/channel.d.ts +3 -0
- package/dist/commands/channel.d.ts.map +1 -0
- package/dist/commands/channel.js +238 -0
- package/dist/commands/channel.js.map +1 -0
- package/dist/commands/coldstart.d.ts +3 -0
- package/dist/commands/coldstart.d.ts.map +1 -0
- package/dist/commands/coldstart.js +148 -0
- package/dist/commands/coldstart.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +40 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contract-interaction.d.ts +3 -0
- package/dist/commands/contract-interaction.d.ts.map +1 -0
- package/dist/commands/contract-interaction.js +165 -0
- package/dist/commands/contract-interaction.js.map +1 -0
- package/dist/commands/daemon.d.ts +3 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +891 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/deliver.d.ts +3 -0
- package/dist/commands/deliver.d.ts.map +1 -0
- package/dist/commands/deliver.js +156 -0
- package/dist/commands/deliver.js.map +1 -0
- package/dist/commands/discover.d.ts +3 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +224 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/dispute.d.ts +3 -0
- package/dist/commands/dispute.d.ts.map +1 -0
- package/dist/commands/dispute.js +348 -0
- package/dist/commands/dispute.js.map +1 -0
- package/dist/commands/endpoint.d.ts +3 -0
- package/dist/commands/endpoint.d.ts.map +1 -0
- package/dist/commands/endpoint.js +604 -0
- package/dist/commands/endpoint.js.map +1 -0
- package/dist/commands/hire.d.ts +3 -0
- package/dist/commands/hire.d.ts.map +1 -0
- package/dist/commands/hire.js +189 -0
- package/dist/commands/hire.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +163 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/negotiate.d.ts +3 -0
- package/dist/commands/negotiate.d.ts.map +1 -0
- package/dist/commands/negotiate.js +247 -0
- package/dist/commands/negotiate.js.map +1 -0
- package/dist/commands/openshell.d.ts +3 -0
- package/dist/commands/openshell.d.ts.map +1 -0
- package/dist/commands/openshell.js +952 -0
- package/dist/commands/openshell.js.map +1 -0
- package/dist/commands/owner.d.ts +3 -0
- package/dist/commands/owner.d.ts.map +1 -0
- package/dist/commands/owner.js +32 -0
- package/dist/commands/owner.js.map +1 -0
- package/dist/commands/policy.d.ts +4 -0
- package/dist/commands/policy.d.ts.map +1 -0
- package/dist/commands/policy.js +248 -0
- package/dist/commands/policy.js.map +1 -0
- package/dist/commands/relay.d.ts +3 -0
- package/dist/commands/relay.d.ts.map +1 -0
- package/dist/commands/relay.js +279 -0
- package/dist/commands/relay.js.map +1 -0
- package/dist/commands/remediate.d.ts +3 -0
- package/dist/commands/remediate.d.ts.map +1 -0
- package/dist/commands/remediate.js +42 -0
- package/dist/commands/remediate.js.map +1 -0
- package/dist/commands/reputation.d.ts +4 -0
- package/dist/commands/reputation.d.ts.map +1 -0
- package/dist/commands/reputation.js +72 -0
- package/dist/commands/reputation.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +332 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/trust.d.ts +3 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +23 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +88 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/wallet.d.ts +3 -0
- package/dist/commands/wallet.d.ts.map +1 -0
- package/dist/commands/wallet.js +2520 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/commands/watchtower.d.ts +3 -0
- package/dist/commands/watchtower.d.ts.map +1 -0
- package/dist/commands/watchtower.js +238 -0
- package/dist/commands/watchtower.js.map +1 -0
- package/dist/commands/workroom.d.ts +3 -0
- package/dist/commands/workroom.d.ts.map +1 -0
- package/dist/commands/workroom.js +855 -0
- package/dist/commands/workroom.js.map +1 -0
- package/dist/config.d.ts +62 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +141 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon/config.d.ts +74 -0
- package/dist/daemon/config.d.ts.map +1 -0
- package/dist/daemon/config.js +271 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/hire-listener.d.ts +31 -0
- package/dist/daemon/hire-listener.d.ts.map +1 -0
- package/dist/daemon/hire-listener.js +207 -0
- package/dist/daemon/hire-listener.js.map +1 -0
- package/dist/daemon/index.d.ts +29 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +535 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/job-lifecycle.d.ts +62 -0
- package/dist/daemon/job-lifecycle.d.ts.map +1 -0
- package/dist/daemon/job-lifecycle.js +201 -0
- package/dist/daemon/job-lifecycle.js.map +1 -0
- package/dist/daemon/notify.d.ts +22 -0
- package/dist/daemon/notify.d.ts.map +1 -0
- package/dist/daemon/notify.js +148 -0
- package/dist/daemon/notify.js.map +1 -0
- package/dist/daemon/token-metering.d.ts +42 -0
- package/dist/daemon/token-metering.d.ts.map +1 -0
- package/dist/daemon/token-metering.js +178 -0
- package/dist/daemon/token-metering.js.map +1 -0
- package/dist/daemon/userops.d.ts +21 -0
- package/dist/daemon/userops.d.ts.map +1 -0
- package/dist/daemon/userops.js +88 -0
- package/dist/daemon/userops.js.map +1 -0
- package/dist/daemon/wallet-monitor.d.ts +16 -0
- package/dist/daemon/wallet-monitor.d.ts.map +1 -0
- package/dist/daemon/wallet-monitor.js +57 -0
- package/dist/daemon/wallet-monitor.js.map +1 -0
- package/dist/drain-v4.d.ts +2 -0
- package/dist/drain-v4.d.ts.map +1 -0
- package/dist/drain-v4.js +167 -0
- package/dist/drain-v4.js.map +1 -0
- package/dist/endpoint-config.d.ts +36 -0
- package/dist/endpoint-config.d.ts.map +1 -0
- package/dist/endpoint-config.js +96 -0
- package/dist/endpoint-config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/openshell-runtime.d.ts +55 -0
- package/dist/openshell-runtime.d.ts.map +1 -0
- package/dist/openshell-runtime.js +268 -0
- package/dist/openshell-runtime.js.map +1 -0
- package/dist/signing.d.ts +2 -0
- package/dist/signing.d.ts.map +1 -0
- package/dist/signing.js +23 -0
- package/dist/signing.js.map +1 -0
- package/dist/telegram-notify.d.ts +23 -0
- package/dist/telegram-notify.d.ts.map +1 -0
- package/dist/telegram-notify.js +106 -0
- package/dist/telegram-notify.js.map +1 -0
- package/dist/ui/banner.d.ts +7 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +37 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/colors.d.ts +14 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +29 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/format.d.ts +26 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +77 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/spinner.d.ts +8 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +43 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/utils/format.d.ts +10 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +61 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +43 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/time.d.ts +3 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +21 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/wallet-router.d.ts +25 -0
- package/dist/wallet-router.d.ts.map +1 -0
- package/dist/wallet-router.js +153 -0
- package/dist/wallet-router.js.map +1 -0
- package/dist/walletconnect-session.d.ts +12 -0
- package/dist/walletconnect-session.d.ts.map +1 -0
- package/dist/walletconnect-session.js +26 -0
- package/dist/walletconnect-session.js.map +1 -0
- package/dist/walletconnect.d.ts +46 -0
- package/dist/walletconnect.d.ts.map +1 -0
- package/dist/walletconnect.js +267 -0
- package/dist/walletconnect.js.map +1 -0
- package/package.json +38 -0
- package/scripts/authorize-machine-key.ts +43 -0
- package/scripts/drain-wallet.ts +149 -0
- package/scripts/execute-spend-only.ts +81 -0
- package/scripts/register-agent-userop.ts +186 -0
- package/src/abis.ts +187 -0
- package/src/bundler.ts +235 -0
- package/src/client.ts +34 -0
- package/src/coinbase-smart-wallet.ts +51 -0
- package/src/commands/accept.ts +25 -0
- package/src/commands/agent-handshake.ts +67 -0
- package/src/commands/agent.ts +458 -0
- package/src/commands/agreements.ts +324 -0
- package/src/commands/arbitrator.ts +129 -0
- package/src/commands/arena-handshake.ts +217 -0
- package/src/commands/cancel.ts +26 -0
- package/src/commands/channel.ts +208 -0
- package/src/commands/coldstart.ts +156 -0
- package/src/commands/config.ts +35 -0
- package/src/commands/contract-interaction.ts +166 -0
- package/src/commands/daemon.ts +971 -0
- package/src/commands/deliver.ts +116 -0
- package/src/commands/discover.ts +295 -0
- package/src/commands/dispute.ts +373 -0
- package/src/commands/endpoint.ts +619 -0
- package/src/commands/hire.ts +200 -0
- package/src/commands/migrate.ts +175 -0
- package/src/commands/negotiate.ts +270 -0
- package/src/commands/openshell.ts +1053 -0
- package/src/commands/owner.ts +30 -0
- package/src/commands/policy.ts +252 -0
- package/src/commands/relay.ts +272 -0
- package/src/commands/remediate.ts +22 -0
- package/src/commands/reputation.ts +71 -0
- package/src/commands/setup.ts +343 -0
- package/src/commands/trust.ts +15 -0
- package/src/commands/verify.ts +88 -0
- package/src/commands/wallet.ts +2892 -0
- package/src/commands/watchtower.ts +232 -0
- package/src/commands/workroom.ts +889 -0
- package/src/config.ts +153 -0
- package/src/daemon/config.ts +308 -0
- package/src/daemon/hire-listener.ts +226 -0
- package/src/daemon/index.ts +609 -0
- package/src/daemon/job-lifecycle.ts +215 -0
- package/src/daemon/notify.ts +157 -0
- package/src/daemon/token-metering.ts +183 -0
- package/src/daemon/userops.ts +119 -0
- package/src/daemon/wallet-monitor.ts +90 -0
- package/src/drain-v4.ts +159 -0
- package/src/endpoint-config.ts +83 -0
- package/src/index.ts +75 -0
- package/src/openshell-runtime.ts +277 -0
- package/src/signing.ts +28 -0
- package/src/telegram-notify.ts +88 -0
- package/src/ui/banner.ts +41 -0
- package/src/ui/colors.ts +30 -0
- package/src/ui/format.ts +77 -0
- package/src/ui/spinner.ts +46 -0
- package/src/utils/format.ts +48 -0
- package/src/utils/hash.ts +5 -0
- package/src/utils/time.ts +15 -0
- package/src/wallet-router.ts +178 -0
- package/src/walletconnect-session.ts +27 -0
- package/src/walletconnect.ts +294 -0
- package/test/time.test.js +11 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerDisputeCommand = registerDisputeCommand;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
9
|
+
const sdk_1 = require("@arc402/sdk");
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
const client_1 = require("../client");
|
|
12
|
+
const hash_1 = require("../utils/hash");
|
|
13
|
+
const wallet_router_1 = require("../wallet-router");
|
|
14
|
+
const abis_1 = require("../abis");
|
|
15
|
+
function registerDisputeCommand(program) {
|
|
16
|
+
const dispute = program.command("dispute").description("Formal dispute workflow; remediation-first by default, with narrow hard-fail direct-dispute exceptions");
|
|
17
|
+
// Fee quote (requires DisputeArbitration configured) — read-only, no wallet routing needed
|
|
18
|
+
dispute.command("fee-quote <agreementId>")
|
|
19
|
+
.description("Get dispute fee quote for an agreement")
|
|
20
|
+
.requiredOption("--price <price>", "Agreement price in wei/token units")
|
|
21
|
+
.requiredOption("--token <token>", "Token address (0x0 for ETH)")
|
|
22
|
+
.requiredOption("--mode <mode>", "unilateral|mutual")
|
|
23
|
+
.requiredOption("--class <class>", "hard-failure|ambiguity|high-sensitivity")
|
|
24
|
+
.action(async (agreementId, opts) => {
|
|
25
|
+
const config = (0, config_1.loadConfig)();
|
|
26
|
+
if (!config.disputeArbitrationAddress)
|
|
27
|
+
throw new Error("disputeArbitrationAddress missing in config");
|
|
28
|
+
const { provider } = await (0, client_1.getClient)(config);
|
|
29
|
+
const client = new sdk_1.DisputeArbitrationClient(config.disputeArbitrationAddress, provider);
|
|
30
|
+
const modeMap = { unilateral: sdk_1.DisputeMode.UNILATERAL, mutual: sdk_1.DisputeMode.MUTUAL };
|
|
31
|
+
const classMap = {
|
|
32
|
+
'hard-failure': sdk_1.DisputeClass.HARD_FAILURE,
|
|
33
|
+
'ambiguity': sdk_1.DisputeClass.AMBIGUITY_QUALITY,
|
|
34
|
+
'high-sensitivity': sdk_1.DisputeClass.HIGH_SENSITIVITY,
|
|
35
|
+
};
|
|
36
|
+
const mode = modeMap[String(opts.mode).toLowerCase()];
|
|
37
|
+
const disputeClass = classMap[String(opts.class).toLowerCase()];
|
|
38
|
+
if (!mode || !disputeClass)
|
|
39
|
+
throw new Error("Invalid --mode or --class");
|
|
40
|
+
const feeInTokens = await client.getFeeQuote(BigInt(opts.price), opts.token, mode, disputeClass);
|
|
41
|
+
console.log(`Fee quote for agreement ${agreementId}: ${feeInTokens.toString()} tokens`);
|
|
42
|
+
});
|
|
43
|
+
// Open with explicit mode/class
|
|
44
|
+
dispute.command("open-with-mode <agreementId>")
|
|
45
|
+
.description("Open dispute with specific mode and class (requires fee in msg.value for ETH)")
|
|
46
|
+
.requiredOption("--mode <mode>", "unilateral|mutual")
|
|
47
|
+
.requiredOption("--class <class>", "hard-failure|ambiguity|high-sensitivity")
|
|
48
|
+
.requiredOption("--reason <reason>")
|
|
49
|
+
.option("--fee <fee>", "Fee in wei (for ETH agreements)", "0")
|
|
50
|
+
.action(async (agreementId, opts) => {
|
|
51
|
+
const config = (0, config_1.loadConfig)();
|
|
52
|
+
if (!config.serviceAgreementAddress)
|
|
53
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
54
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
55
|
+
const modeMap = { unilateral: sdk_1.DisputeMode.UNILATERAL, mutual: sdk_1.DisputeMode.MUTUAL };
|
|
56
|
+
const classMap = {
|
|
57
|
+
'hard-failure': sdk_1.DisputeClass.HARD_FAILURE,
|
|
58
|
+
'ambiguity': sdk_1.DisputeClass.AMBIGUITY_QUALITY,
|
|
59
|
+
'high-sensitivity': sdk_1.DisputeClass.HIGH_SENSITIVITY,
|
|
60
|
+
};
|
|
61
|
+
const mode = modeMap[String(opts.mode).toLowerCase()];
|
|
62
|
+
const disputeClass = classMap[String(opts.class).toLowerCase()];
|
|
63
|
+
if (!mode || !disputeClass)
|
|
64
|
+
throw new Error("Invalid --mode or --class");
|
|
65
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
66
|
+
if (config.walletContractAddress) {
|
|
67
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "openDisputeWithMode", [BigInt(agreementId), mode, disputeClass, opts.reason], BigInt(opts.fee));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
71
|
+
await client.openDisputeWithMode(BigInt(agreementId), mode, disputeClass, opts.reason, BigInt(opts.fee));
|
|
72
|
+
}
|
|
73
|
+
console.log(`dispute opened for ${agreementId} (${opts.mode} / ${opts.class})`);
|
|
74
|
+
});
|
|
75
|
+
// Join mutual dispute (respondent pays their half) — DisputeArbitration contract, no wallet routing
|
|
76
|
+
dispute.command("join <agreementId>")
|
|
77
|
+
.description("Join a mutual dispute as respondent (pays half the fee)")
|
|
78
|
+
.option("--fee <fee>", "Half-fee in wei (for ETH agreements)", "0")
|
|
79
|
+
.action(async (agreementId, opts) => {
|
|
80
|
+
const config = (0, config_1.loadConfig)();
|
|
81
|
+
if (!config.disputeArbitrationAddress)
|
|
82
|
+
throw new Error("disputeArbitrationAddress missing in config");
|
|
83
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
84
|
+
const client = new sdk_1.DisputeArbitrationClient(config.disputeArbitrationAddress, signer);
|
|
85
|
+
await client.joinMutualDispute(BigInt(agreementId), BigInt(opts.fee));
|
|
86
|
+
console.log(`joined mutual dispute ${agreementId}`);
|
|
87
|
+
});
|
|
88
|
+
dispute.command("open <id>")
|
|
89
|
+
.requiredOption("--reason <reason>")
|
|
90
|
+
.option("--escalated", "Use escalateToDispute after remediation", false)
|
|
91
|
+
.option("--direct <type>", "Direct-dispute hard-fail reason: no-delivery|deadline-breach|invalid-deliverable|safety-critical")
|
|
92
|
+
.action(async (id, opts) => {
|
|
93
|
+
const config = (0, config_1.loadConfig)();
|
|
94
|
+
if (!config.serviceAgreementAddress)
|
|
95
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
96
|
+
// Pre-flight: check disputeModule is configured (J4-01)
|
|
97
|
+
{
|
|
98
|
+
const { provider: dpProvider } = await (0, client_1.getClient)(config);
|
|
99
|
+
const saCheck = new ethers_1.ethers.Contract(config.serviceAgreementAddress, ["function disputeModule() external view returns (address)"], dpProvider);
|
|
100
|
+
let disputeModuleAddr = ethers_1.ethers.ZeroAddress;
|
|
101
|
+
try {
|
|
102
|
+
disputeModuleAddr = await saCheck.disputeModule();
|
|
103
|
+
}
|
|
104
|
+
catch { /* assume not configured */ }
|
|
105
|
+
if (disputeModuleAddr === ethers_1.ethers.ZeroAddress) {
|
|
106
|
+
console.error(`No dispute module configured on this ServiceAgreement.`);
|
|
107
|
+
console.error(`Disputes require a DisputeModule to be set by the SA owner.`);
|
|
108
|
+
console.error(`This protocol deployment may not support formal disputes.`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Pre-flight: read dispute fee and prompt user (J4-02)
|
|
113
|
+
if (config.disputeArbitrationAddress) {
|
|
114
|
+
const { provider: feeProvider } = await (0, client_1.getClient)(config);
|
|
115
|
+
const daCheck = new ethers_1.ethers.Contract(config.disputeArbitrationAddress, ["function getDisputeFee() external view returns (uint256)"], feeProvider);
|
|
116
|
+
let feeWei = 0n;
|
|
117
|
+
try {
|
|
118
|
+
feeWei = await daCheck.getDisputeFee();
|
|
119
|
+
}
|
|
120
|
+
catch { /* fee getter may not exist — assume 0 */ }
|
|
121
|
+
if (feeWei > 0n) {
|
|
122
|
+
const feeEth = ethers_1.ethers.formatEther(feeWei);
|
|
123
|
+
console.log(`\nDispute fee: ${feeEth} ETH. This will be deducted from your wallet.`);
|
|
124
|
+
const { proceed } = await (0, prompts_1.default)({
|
|
125
|
+
type: "confirm",
|
|
126
|
+
name: "proceed",
|
|
127
|
+
message: "Continue?",
|
|
128
|
+
initial: true,
|
|
129
|
+
});
|
|
130
|
+
if (!proceed) {
|
|
131
|
+
console.log("Aborted.");
|
|
132
|
+
process.exit(0);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
137
|
+
const directMap = {
|
|
138
|
+
'no-delivery': sdk_1.DirectDisputeReason.NO_DELIVERY,
|
|
139
|
+
'deadline-breach': sdk_1.DirectDisputeReason.HARD_DEADLINE_BREACH,
|
|
140
|
+
'invalid-deliverable': sdk_1.DirectDisputeReason.INVALID_OR_FRAUDULENT_DELIVERABLE,
|
|
141
|
+
'safety-critical': sdk_1.DirectDisputeReason.SAFETY_CRITICAL_VIOLATION,
|
|
142
|
+
};
|
|
143
|
+
if (opts.escalated && opts.direct)
|
|
144
|
+
throw new Error('Choose either --escalated or --direct, not both');
|
|
145
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
146
|
+
if (config.walletContractAddress) {
|
|
147
|
+
if (opts.direct) {
|
|
148
|
+
const directReason = directMap[String(opts.direct).toLowerCase()];
|
|
149
|
+
if (directReason === undefined)
|
|
150
|
+
throw new Error('Unsupported --direct reason');
|
|
151
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "directDispute", [BigInt(id), directReason, opts.reason]);
|
|
152
|
+
}
|
|
153
|
+
else if (opts.escalated) {
|
|
154
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "escalateToDispute", [BigInt(id), opts.reason]);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "dispute", [BigInt(id), opts.reason]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
162
|
+
if (opts.direct) {
|
|
163
|
+
const directReason = directMap[String(opts.direct).toLowerCase()];
|
|
164
|
+
if (directReason === undefined)
|
|
165
|
+
throw new Error('Unsupported --direct reason');
|
|
166
|
+
await client.directDispute(BigInt(id), directReason, opts.reason);
|
|
167
|
+
}
|
|
168
|
+
else if (opts.escalated) {
|
|
169
|
+
await client.escalateToDispute(BigInt(id), opts.reason);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
await client.dispute(BigInt(id), opts.reason);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
console.log(`dispute opened for ${id}`);
|
|
176
|
+
// J4-04: Display arbitration selection window deadline
|
|
177
|
+
try {
|
|
178
|
+
const { provider: dpAW } = await (0, client_1.getClient)(config);
|
|
179
|
+
const saAW = new ethers_1.ethers.Contract(config.serviceAgreementAddress, ["function ARBITRATION_SELECTION_WINDOW() external view returns (uint256)"], dpAW);
|
|
180
|
+
const selectionWindow = await saAW.ARBITRATION_SELECTION_WINDOW();
|
|
181
|
+
const deadlineDate = new Date(Date.now() + Number(selectionWindow) * 1000);
|
|
182
|
+
console.log(`Arbitration selection window closes: ${deadlineDate.toLocaleString()}. An arbitrator must be assigned before then.`);
|
|
183
|
+
}
|
|
184
|
+
catch { /* not available on this deployment */ }
|
|
185
|
+
});
|
|
186
|
+
dispute.command("evidence <id>").requiredOption("--type <type>", "transcript|deliverable|acceptance|communication|external|other").option("--file <path>").option("--text <text>").option("--uri <uri>", "External evidence URI", "").action(async (id, opts) => {
|
|
187
|
+
const config = (0, config_1.loadConfig)();
|
|
188
|
+
if (!config.serviceAgreementAddress)
|
|
189
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
190
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
191
|
+
const mapping = { transcript: sdk_1.EvidenceType.TRANSCRIPT, deliverable: sdk_1.EvidenceType.DELIVERABLE, acceptance: sdk_1.EvidenceType.ACCEPTANCE_CRITERIA, communication: sdk_1.EvidenceType.COMMUNICATION, external: sdk_1.EvidenceType.EXTERNAL_REFERENCE, other: sdk_1.EvidenceType.OTHER };
|
|
192
|
+
const hash = opts.file ? (0, hash_1.hashFile)(opts.file) : (0, hash_1.hashString)(opts.text ?? opts.uri ?? `evidence:${id}`);
|
|
193
|
+
const evidenceType = mapping[String(opts.type).toLowerCase()] ?? sdk_1.EvidenceType.OTHER;
|
|
194
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
195
|
+
if (config.walletContractAddress) {
|
|
196
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "submitDisputeEvidence", [BigInt(id), evidenceType, hash, opts.uri]);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
200
|
+
await client.submitDisputeEvidence(BigInt(id), evidenceType, hash, opts.uri);
|
|
201
|
+
}
|
|
202
|
+
console.log(`evidence submitted for ${id} hash=${hash}`);
|
|
203
|
+
});
|
|
204
|
+
// status — read-only, no wallet routing needed
|
|
205
|
+
dispute.command("status <id>").option("--json").action(async (id, opts) => {
|
|
206
|
+
const config = (0, config_1.loadConfig)();
|
|
207
|
+
if (!config.serviceAgreementAddress)
|
|
208
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
209
|
+
const { provider } = await (0, client_1.getClient)(config);
|
|
210
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, provider);
|
|
211
|
+
const result = {
|
|
212
|
+
case: await client.getDisputeCase(BigInt(id)),
|
|
213
|
+
arbitration: await client.getArbitrationCase(BigInt(id)),
|
|
214
|
+
evidence: await client.getDisputeEvidenceAll(BigInt(id)),
|
|
215
|
+
};
|
|
216
|
+
console.log(JSON.stringify(result, (_k, value) => typeof value === 'bigint' ? value.toString() : value, opts.json ? 2 : 2));
|
|
217
|
+
});
|
|
218
|
+
dispute.command("nominate <id>")
|
|
219
|
+
.description("Nominate an arbitrator during the on-chain arbitration phase")
|
|
220
|
+
.requiredOption("--arbitrator <address>")
|
|
221
|
+
.action(async (id, opts) => {
|
|
222
|
+
const config = (0, config_1.loadConfig)();
|
|
223
|
+
if (!config.serviceAgreementAddress)
|
|
224
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
225
|
+
// Pre-flight: check arbitrator is approved (J4-03)
|
|
226
|
+
if (config.disputeArbitrationAddress) {
|
|
227
|
+
const { provider: arbProvider } = await (0, client_1.getClient)(config);
|
|
228
|
+
const daCheck = new ethers_1.ethers.Contract(config.disputeArbitrationAddress, ["function isApprovedArbitrator(address arbitrator) external view returns (bool)"], arbProvider);
|
|
229
|
+
let isApproved = true;
|
|
230
|
+
try {
|
|
231
|
+
isApproved = await daCheck.isApprovedArbitrator(opts.arbitrator);
|
|
232
|
+
}
|
|
233
|
+
catch { /* assume approved if read fails */ }
|
|
234
|
+
if (!isApproved) {
|
|
235
|
+
console.error(`Arbitrator ${opts.arbitrator} is not approved.`);
|
|
236
|
+
console.error(`Use \`arc402 dispute list-arbitrators\` to see approved arbitrators.`);
|
|
237
|
+
process.exit(1);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
241
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
242
|
+
if (config.walletContractAddress) {
|
|
243
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "nominateArbitrator", [BigInt(id), opts.arbitrator]);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
247
|
+
await client.nominateArbitrator(BigInt(id), opts.arbitrator);
|
|
248
|
+
}
|
|
249
|
+
console.log(`arbitrator nominated for ${id}: ${opts.arbitrator}`);
|
|
250
|
+
});
|
|
251
|
+
dispute.command("vote <id>")
|
|
252
|
+
.description("Cast an arbitration vote on-chain")
|
|
253
|
+
.requiredOption("--vote <vote>", "provider|refund|split|human-review")
|
|
254
|
+
.option("--provider-award <amount>", "Wei/token units", "0")
|
|
255
|
+
.option("--client-award <amount>", "Wei/token units", "0")
|
|
256
|
+
.action(async (id, opts) => {
|
|
257
|
+
const config = (0, config_1.loadConfig)();
|
|
258
|
+
if (!config.serviceAgreementAddress)
|
|
259
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
260
|
+
const { signer, address: voterAddress, provider: voteProvider } = await (0, client_1.requireSigner)(config);
|
|
261
|
+
// J4-05: Pre-flight — verify caller is on the arbitration panel
|
|
262
|
+
try {
|
|
263
|
+
const saClient = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, voteProvider);
|
|
264
|
+
const arbCase = await saClient.getArbitrationCase(BigInt(id));
|
|
265
|
+
const onPanel = arbCase.arbitrators.map((a) => a.toLowerCase()).includes(voterAddress.toLowerCase());
|
|
266
|
+
if (!onPanel) {
|
|
267
|
+
console.error(`You are not on the arbitration panel for agreement ${id}. Only assigned arbitrators can vote.`);
|
|
268
|
+
process.exit(1);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch (e) {
|
|
272
|
+
if (e?.code === 'ERR_USE_AFTER_CLOSE' || String(e).includes('process.exit'))
|
|
273
|
+
throw e;
|
|
274
|
+
// If read fails, skip the check and let the transaction reveal the error
|
|
275
|
+
}
|
|
276
|
+
const mapping = {
|
|
277
|
+
provider: sdk_1.ArbitrationVote.PROVIDER_WINS,
|
|
278
|
+
refund: sdk_1.ArbitrationVote.CLIENT_REFUND,
|
|
279
|
+
split: sdk_1.ArbitrationVote.SPLIT,
|
|
280
|
+
'human-review': sdk_1.ArbitrationVote.HUMAN_REVIEW_REQUIRED,
|
|
281
|
+
};
|
|
282
|
+
const vote = mapping[String(opts.vote).toLowerCase()];
|
|
283
|
+
if (vote === undefined)
|
|
284
|
+
throw new Error('Unsupported --vote value');
|
|
285
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
286
|
+
if (config.walletContractAddress) {
|
|
287
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "castArbitrationVote", [BigInt(id), vote, BigInt(opts.providerAward), BigInt(opts.clientAward)]);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
291
|
+
await client.castArbitrationVote(BigInt(id), vote, BigInt(opts.providerAward), BigInt(opts.clientAward));
|
|
292
|
+
}
|
|
293
|
+
console.log(`arbitration vote recorded for ${id}`);
|
|
294
|
+
});
|
|
295
|
+
dispute.command("human <id>")
|
|
296
|
+
.description("Request human escalation when arbitration stalls or requires human backstop")
|
|
297
|
+
.requiredOption("--reason <reason>")
|
|
298
|
+
.action(async (id, opts) => {
|
|
299
|
+
const config = (0, config_1.loadConfig)();
|
|
300
|
+
if (!config.serviceAgreementAddress)
|
|
301
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
302
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
303
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
304
|
+
if (config.walletContractAddress) {
|
|
305
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "requestHumanEscalation", [BigInt(id), opts.reason]);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
309
|
+
await client.requestHumanEscalation(BigInt(id), opts.reason);
|
|
310
|
+
}
|
|
311
|
+
console.log(`human escalation requested for ${id}`);
|
|
312
|
+
});
|
|
313
|
+
dispute.command("resolve <id>").description("Owner-only admin path if you are operating the dispute contract").requiredOption("--outcome <outcome>", "provider|refund|partial-provider|partial-client|mutual-cancel|human-review").option("--provider-award <amount>", "Wei/token units", "0").option("--client-award <amount>", "Wei/token units", "0").action(async (id, opts) => {
|
|
314
|
+
const config = (0, config_1.loadConfig)();
|
|
315
|
+
if (!config.serviceAgreementAddress)
|
|
316
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
317
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
318
|
+
const mapping = { provider: sdk_1.DisputeOutcome.PROVIDER_WINS, refund: sdk_1.DisputeOutcome.CLIENT_REFUND, 'partial-provider': sdk_1.DisputeOutcome.PARTIAL_PROVIDER, 'partial-client': sdk_1.DisputeOutcome.PARTIAL_CLIENT, 'mutual-cancel': sdk_1.DisputeOutcome.MUTUAL_CANCEL, 'human-review': sdk_1.DisputeOutcome.HUMAN_REVIEW_REQUIRED };
|
|
319
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
320
|
+
if (config.walletContractAddress) {
|
|
321
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "resolveDisputeDetailed", [BigInt(id), mapping[String(opts.outcome)], BigInt(opts.providerAward), BigInt(opts.clientAward)]);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
325
|
+
await client.resolveDisputeDetailed(BigInt(id), mapping[String(opts.outcome)], BigInt(opts.providerAward), BigInt(opts.clientAward));
|
|
326
|
+
}
|
|
327
|
+
console.log(`resolved ${id}`);
|
|
328
|
+
});
|
|
329
|
+
dispute.command("owner-resolve <agreementId>")
|
|
330
|
+
.description("Owner-only: resolve a dispute directly in favor of provider or client. Requires DISPUTED or ESCALATED_TO_HUMAN status.")
|
|
331
|
+
.option("--favor-provider", "Resolve in favor of the provider (default: false = favor client)", false)
|
|
332
|
+
.action(async (agreementId, opts) => {
|
|
333
|
+
const config = (0, config_1.loadConfig)();
|
|
334
|
+
if (!config.serviceAgreementAddress)
|
|
335
|
+
throw new Error("serviceAgreementAddress missing in config");
|
|
336
|
+
const { signer } = await (0, client_1.requireSigner)(config);
|
|
337
|
+
(0, wallet_router_1.printSenderInfo)(config);
|
|
338
|
+
if (config.walletContractAddress) {
|
|
339
|
+
await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "ownerResolveDispute", [BigInt(agreementId), !!opts.favorProvider]);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
const client = new sdk_1.ServiceAgreementClient(config.serviceAgreementAddress, signer);
|
|
343
|
+
await client.ownerResolveDispute(BigInt(agreementId), !!opts.favorProvider);
|
|
344
|
+
}
|
|
345
|
+
console.log(`owner resolved agreement ${agreementId} — favor provider: ${!!opts.favorProvider}`);
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=dispute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispute.js","sourceRoot":"","sources":["../../src/commands/dispute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/commands/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwbpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkL/D"}
|