arc402-cli 1.3.5 → 1.3.7
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/dist/commands/hire.d.ts.map +1 -1
- package/dist/commands/hire.js +4 -7
- package/dist/commands/hire.js.map +1 -1
- package/dist/wallet-router.d.ts +12 -0
- package/dist/wallet-router.d.ts.map +1 -1
- package/dist/wallet-router.js +43 -0
- package/dist/wallet-router.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hire.d.ts","sourceRoot":"","sources":["../../src/commands/hire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"hire.d.ts","sourceRoot":"","sources":["../../src/commands/hire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiO1D"}
|
package/dist/commands/hire.js
CHANGED
|
@@ -134,27 +134,24 @@ function registerHireCommand(program) {
|
|
|
134
134
|
let agreementId;
|
|
135
135
|
const hireSpinner = (0, spinner_1.startSpinner)('Submitting agreement...');
|
|
136
136
|
if (config.walletContractAddress) {
|
|
137
|
-
// Smart wallet path —
|
|
138
|
-
|
|
139
|
-
useUsdc ? token : ethers_1.ethers.ZeroAddress,
|
|
140
|
-
useUsdc ? price : 0n);
|
|
137
|
+
// Smart wallet path — executeContractCall is a governance op (onlyEntryPointOrOwner).
|
|
138
|
+
// Hiring requires owner WalletConnect approval — machine key cannot autonomously propose.
|
|
139
|
+
const tx = await (0, wallet_router_1.executeContractWriteViaWallet)(config.walletContractAddress, signer, config.serviceAgreementAddress, abis_1.SERVICE_AGREEMENT_ABI, "propose", [opts.agent, opts.serviceType, opts.task, price, token, deadlineSeconds, deliverablesHash], useUsdc ? 0n : price, useUsdc ? token : ethers_1.ethers.ZeroAddress, useUsdc ? price : 0n);
|
|
141
140
|
const receipt = await tx.wait();
|
|
142
141
|
const saInterface = new ethers_1.ethers.Interface(abis_1.SERVICE_AGREEMENT_ABI);
|
|
143
|
-
let found = false;
|
|
144
142
|
for (const log of receipt.logs) {
|
|
145
143
|
if (log.address.toLowerCase() === config.serviceAgreementAddress.toLowerCase()) {
|
|
146
144
|
try {
|
|
147
145
|
const parsed = saInterface.parseLog(log);
|
|
148
146
|
if (parsed?.name === "AgreementProposed") {
|
|
149
147
|
agreementId = parsed.args[0];
|
|
150
|
-
found = true;
|
|
151
148
|
break;
|
|
152
149
|
}
|
|
153
150
|
}
|
|
154
151
|
catch { /* skip unparseable logs */ }
|
|
155
152
|
}
|
|
156
153
|
}
|
|
157
|
-
if (
|
|
154
|
+
if (agreementId === undefined)
|
|
158
155
|
throw new Error("AgreementProposed event not found in transaction receipt");
|
|
159
156
|
}
|
|
160
157
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hire.js","sourceRoot":"","sources":["../../src/commands/hire.ts"],"names":[],"mappings":";;AAkBA,
|
|
1
|
+
{"version":3,"file":"hire.js","sourceRoot":"","sources":["../../src/commands/hire.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet-router.d.ts
CHANGED
|
@@ -21,5 +21,17 @@ export declare function printSenderInfo(config: Arc402Config): void;
|
|
|
21
21
|
* Route a write transaction through the ARC402Wallet's executeContractCall when deployed,
|
|
22
22
|
* otherwise encode calldata directly against the target contract using the provided ABI.
|
|
23
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* Route a write through the ARC402Wallet via ERC-4337 UserOp (machine key path).
|
|
26
|
+
* Used when the signer is a machine key — executeContractCall requires onlyEntryPointOrOwner,
|
|
27
|
+
* so machine keys must go via UserOp with signature: "0x" (policy-auto-approved for protocol ops).
|
|
28
|
+
* Returns the transaction hash once the UserOp is included.
|
|
29
|
+
*/
|
|
30
|
+
export declare function executeContractWriteViaUserOp(walletContractAddress: string, machineKeySigner: ethers.Wallet, targetAddress: string, contractAbi: readonly string[], functionName: string, args: unknown[], value?: bigint, approvalToken?: string, maxApprovalAmount?: bigint, config?: Arc402Config): Promise<{
|
|
31
|
+
hash: string;
|
|
32
|
+
wait: () => Promise<{
|
|
33
|
+
hash: string;
|
|
34
|
+
}>;
|
|
35
|
+
}>;
|
|
24
36
|
export declare function executeContractWriteViaWallet(walletContractAddress: string, signer: ethers.Wallet, targetAddress: string, contractAbi: readonly string[], functionName: string, args: unknown[], value?: bigint, approvalToken?: string, maxApprovalAmount?: bigint): Promise<ethers.ContractTransactionResponse>;
|
|
25
37
|
//# sourceMappingURL=wallet-router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-router.d.ts","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"wallet-router.d.ts","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA+CxC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAyCnD;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAMnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAS1D;AAED;;;GAGG;AACH;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,qBAAqB,EAAE,MAAM,EAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAC/B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,GAAE,MAAW,EAClB,aAAa,GAAE,MAA2B,EAC1C,iBAAiB,GAAE,MAAW,EAC9B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4ClE;AAED,wBAAsB,6BAA6B,CACjD,qBAAqB,EAAE,MAAM,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,GAAE,MAAW,EAClB,aAAa,GAAE,MAA2B,EAC1C,iBAAiB,GAAE,MAAW,GAC7B,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAoB7C"}
|
package/dist/wallet-router.js
CHANGED
|
@@ -4,9 +4,11 @@ exports.handleWalletError = handleWalletError;
|
|
|
4
4
|
exports.decodeWalletError = decodeWalletError;
|
|
5
5
|
exports.getEffectiveSender = getEffectiveSender;
|
|
6
6
|
exports.printSenderInfo = printSenderInfo;
|
|
7
|
+
exports.executeContractWriteViaUserOp = executeContractWriteViaUserOp;
|
|
7
8
|
exports.executeContractWriteViaWallet = executeContractWriteViaWallet;
|
|
8
9
|
const ethers_1 = require("ethers");
|
|
9
10
|
const abis_1 = require("./abis");
|
|
11
|
+
const bundler_1 = require("./bundler");
|
|
10
12
|
// ─── ARC402Wallet custom error decoder ─────────────────────────────────────
|
|
11
13
|
const WALLET_CUSTOM_ERROR_IFACE = new ethers_1.ethers.Interface([
|
|
12
14
|
"error WVel()",
|
|
@@ -132,6 +134,47 @@ function printSenderInfo(config) {
|
|
|
132
134
|
* Route a write transaction through the ARC402Wallet's executeContractCall when deployed,
|
|
133
135
|
* otherwise encode calldata directly against the target contract using the provided ABI.
|
|
134
136
|
*/
|
|
137
|
+
/**
|
|
138
|
+
* Route a write through the ARC402Wallet via ERC-4337 UserOp (machine key path).
|
|
139
|
+
* Used when the signer is a machine key — executeContractCall requires onlyEntryPointOrOwner,
|
|
140
|
+
* so machine keys must go via UserOp with signature: "0x" (policy-auto-approved for protocol ops).
|
|
141
|
+
* Returns the transaction hash once the UserOp is included.
|
|
142
|
+
*/
|
|
143
|
+
async function executeContractWriteViaUserOp(walletContractAddress, machineKeySigner, targetAddress, contractAbi, functionName, args, value = 0n, approvalToken = ethers_1.ethers.ZeroAddress, maxApprovalAmount = 0n, config) {
|
|
144
|
+
const iface = new ethers_1.ethers.Interface(contractAbi);
|
|
145
|
+
const innerData = iface.encodeFunctionData(functionName, args);
|
|
146
|
+
const walletIface = new ethers_1.ethers.Interface(abis_1.ARC402_WALLET_EXECUTE_ABI);
|
|
147
|
+
const callData = walletIface.encodeFunctionData("executeContractCall", [{
|
|
148
|
+
target: targetAddress,
|
|
149
|
+
data: innerData,
|
|
150
|
+
value,
|
|
151
|
+
minReturnValue: 0n,
|
|
152
|
+
maxApprovalAmount,
|
|
153
|
+
approvalToken,
|
|
154
|
+
}]);
|
|
155
|
+
const rpcUrl = config?.rpcUrl ?? "https://mainnet.base.org";
|
|
156
|
+
const bundlerUrl = bundler_1.DEFAULT_BUNDLER_URL;
|
|
157
|
+
const entryPoint = bundler_1.DEFAULT_ENTRY_POINT;
|
|
158
|
+
const chainId = 8453; // Base mainnet
|
|
159
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(rpcUrl);
|
|
160
|
+
const entryPointContract = new ethers_1.ethers.Contract(entryPoint, ["function getNonce(address sender, uint192 key) external view returns (uint256)"], provider);
|
|
161
|
+
const nonce = await entryPointContract.getNonce(walletContractAddress, 0);
|
|
162
|
+
const userOp = await (0, bundler_1.buildUserOp)(callData, walletContractAddress, nonce, config ?? { rpcUrl });
|
|
163
|
+
// Machine key ops use empty signature — PolicyEngine auto-approves protocol ops
|
|
164
|
+
userOp.signature = "0x";
|
|
165
|
+
const bundler = new bundler_1.BundlerClient(bundlerUrl, entryPoint, chainId);
|
|
166
|
+
const userOpHash = await bundler.sendUserOperation(userOp);
|
|
167
|
+
// Poll for inclusion
|
|
168
|
+
const receipt = await bundler.getUserOperationReceipt(userOpHash);
|
|
169
|
+
if (!receipt.success) {
|
|
170
|
+
throw new Error(`UserOp ${userOpHash} failed on-chain`);
|
|
171
|
+
}
|
|
172
|
+
const txHash = receipt.receipt.transactionHash;
|
|
173
|
+
return {
|
|
174
|
+
hash: txHash,
|
|
175
|
+
wait: async () => ({ hash: txHash }),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
135
178
|
async function executeContractWriteViaWallet(walletContractAddress, signer, targetAddress, contractAbi, functionName, args, value = 0n, approvalToken = ethers_1.ethers.ZeroAddress, maxApprovalAmount = 0n) {
|
|
136
179
|
const iface = new ethers_1.ethers.Interface(contractAbi);
|
|
137
180
|
const data = iface.encodeFunctionData(functionName, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-router.js","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"wallet-router.js","sourceRoot":"","sources":["../src/wallet-router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arc402-cli",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "ARC-402 CLI for discovery, negotiation payloads, hire/remediation/dispute workflows, and network reads",
|
|
5
5
|
"bin": {
|
|
6
6
|
"arc402": "./dist/index.js"
|
|
@@ -43,4 +43,4 @@
|
|
|
43
43
|
"@types/qrcode-terminal": "^0.12.2",
|
|
44
44
|
"typescript": "^5.4.5"
|
|
45
45
|
}
|
|
46
|
-
}
|
|
46
|
+
}
|