agentcard 0.0.26 → 0.0.27
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/bin/agentcard.js +9 -0
- package/dist/bin/agentcard.js.map +1 -1
- package/dist/src/commands/mail/get.js +5 -1
- package/dist/src/commands/mail/get.js.map +1 -1
- package/dist/src/commands/setup.js +25 -9
- package/dist/src/commands/setup.js.map +1 -1
- package/dist/src/lib/privy.js +2 -2
- package/dist/src/lib/privy.js.map +1 -1
- package/dist/src/lib/smart-wallet.js +86 -30
- package/dist/src/lib/smart-wallet.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/agentcard.js
CHANGED
|
@@ -2,10 +2,19 @@
|
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
3
|
import { program } from "../src/index.js";
|
|
4
4
|
import { checkForUpdate } from "../src/lib/update-check.js";
|
|
5
|
+
const MIN_NODE_MAJOR = 20;
|
|
6
|
+
function warnIfUnsupportedNode() {
|
|
7
|
+
const major = Number(process.versions.node.split(".")[0]);
|
|
8
|
+
if (Number.isFinite(major) && major >= MIN_NODE_MAJOR)
|
|
9
|
+
return;
|
|
10
|
+
console.warn(`Warning: agentcard is tested on Node.js ${MIN_NODE_MAJOR} or newer. Current version: ${process.version}.`);
|
|
11
|
+
console.warn("If wallet setup or delegation fails, upgrade Node.js and retry.");
|
|
12
|
+
}
|
|
5
13
|
process.on("SIGINT", () => {
|
|
6
14
|
console.log("\nAborted.");
|
|
7
15
|
process.exit(0);
|
|
8
16
|
});
|
|
17
|
+
warnIfUnsupportedNode();
|
|
9
18
|
const updated = checkForUpdate();
|
|
10
19
|
if (updated) {
|
|
11
20
|
const result = spawnSync("agentcard", process.argv.slice(2), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentcard.js","sourceRoot":"","sources":["../../bin/agentcard.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AAEjC,IAAI,OAAO,EAAE,CAAC;IACZ,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3D,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE;KACpD,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"agentcard.js","sourceRoot":"","sources":["../../bin/agentcard.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,SAAS,qBAAqB;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,cAAc;QAAE,OAAO;IAE9D,OAAO,CAAC,IAAI,CACV,2CAA2C,cAAc,+BAA+B,OAAO,CAAC,OAAO,GAAG,CAC3G,CAAC;IACF,OAAO,CAAC,IAAI,CACV,iEAAiE,CAClE,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,qBAAqB,EAAE,CAAC;AAExB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AAEjC,IAAI,OAAO,EAAE,CAAC;IACZ,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3D,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE;KACpD,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -19,7 +19,11 @@ export async function mailGet(threadId) {
|
|
|
19
19
|
console.log(chalk.dim(`To: ${msg.to.join(", ")}`));
|
|
20
20
|
console.log(chalk.dim(`Date: ${date}`));
|
|
21
21
|
console.log("");
|
|
22
|
-
console.log(msg.extractedText ||
|
|
22
|
+
console.log(msg.extractedText ||
|
|
23
|
+
msg.text ||
|
|
24
|
+
msg.extractedHtml ||
|
|
25
|
+
msg.html ||
|
|
26
|
+
chalk.dim("(no text content)"));
|
|
23
27
|
console.log(chalk.dim("\u2500".repeat(60)));
|
|
24
28
|
console.log("");
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/mail/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/mail/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAqBvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAS,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,aAAa;YACf,GAAG,CAAC,IAAI;YACR,GAAG,CAAC,aAAa;YACjB,GAAG,CAAC,IAAI;YACR,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CACjC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,+BAA+B,MAAM,CAAC,QAAQ,sBAAsB,CACrE,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -9,17 +9,26 @@ const PM_TIMEOUT = 5 * 60 * 1000;
|
|
|
9
9
|
const E164 = /^\+[1-9]\d{1,14}$/;
|
|
10
10
|
async function provisionWallet() {
|
|
11
11
|
const spinner = ora("Setting up wallet on Base...").start();
|
|
12
|
+
let res;
|
|
13
|
+
try {
|
|
14
|
+
res = await post("/api/wallet/setup");
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
spinner.fail(`Couldn't set up wallet: ${err instanceof Error ? err.message : "Unknown error"}. Re-run \`agentcard setup\` to retry.`);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
// 7702-delegate immediately so x402's sign-only flow has 1271 code at the
|
|
21
|
+
// address (the merchant's facilitator submits, never our wallet, so this
|
|
22
|
+
// is the only chance we get to put code there). Idempotent — short-circuits
|
|
23
|
+
// if already delegated.
|
|
12
24
|
try {
|
|
13
|
-
const res = await post("/api/wallet/setup");
|
|
14
|
-
// 7702-delegate immediately so x402's sign-only flow has 1271 code at the
|
|
15
|
-
// address (the merchant's facilitator submits, never our wallet, so this
|
|
16
|
-
// is the only chance we get to put code there). Idempotent — short-circuits
|
|
17
|
-
// if already delegated.
|
|
18
25
|
await ensureDelegated();
|
|
19
26
|
spinner.succeed(chalk.green(`Wallet ready: ${res.address}`));
|
|
27
|
+
return true;
|
|
20
28
|
}
|
|
21
29
|
catch (err) {
|
|
22
|
-
spinner.warn(`
|
|
30
|
+
spinner.warn(`Wallet ready (${res.address}), but setup could not confirm x402 delegation: ${err instanceof Error ? err.message : "Unknown error"}. Re-run \`agentcard setup\` to retry.`);
|
|
31
|
+
return false;
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
34
|
async function provisionAgentEmail() {
|
|
@@ -130,7 +139,12 @@ export async function setup(opts) {
|
|
|
130
139
|
!!me.agentEmail &&
|
|
131
140
|
!!me.walletAddress;
|
|
132
141
|
if (fullyConfigured && noFlagsGiven && !opts.reset) {
|
|
133
|
-
console.log(chalk.
|
|
142
|
+
console.log(chalk.bold("\nWallet"));
|
|
143
|
+
const walletReady = await provisionWallet();
|
|
144
|
+
console.log("");
|
|
145
|
+
console.log(walletReady
|
|
146
|
+
? chalk.green(`You're all set. Spend limit: $${(me.spendLimitCents / 100).toFixed(2)}.`)
|
|
147
|
+
: chalk.yellow(`Profile is set up. Re-run \`agentcard setup\` to retry wallet delegation.`));
|
|
134
148
|
printHints({ includeReset: true });
|
|
135
149
|
return;
|
|
136
150
|
}
|
|
@@ -185,9 +199,11 @@ export async function setup(opts) {
|
|
|
185
199
|
await provisionAgentEmail();
|
|
186
200
|
}
|
|
187
201
|
console.log(chalk.bold("\nWallet"));
|
|
188
|
-
await provisionWallet();
|
|
202
|
+
const walletReady = await provisionWallet();
|
|
189
203
|
console.log("");
|
|
190
|
-
console.log(
|
|
204
|
+
console.log(walletReady
|
|
205
|
+
? chalk.green(`Setup complete. Spend limit: $${(me.spendLimitCents / 100).toFixed(2)}.`)
|
|
206
|
+
: chalk.yellow("Setup saved, but wallet delegation did not finish. Re-run `agentcard setup` to retry."));
|
|
191
207
|
printHints({ includeReset: false });
|
|
192
208
|
}
|
|
193
209
|
function printHints(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACjC,MAAM,IAAI,GAAG,mBAAmB,CAAC;AAcjC,KAAK,UAAU,eAAe;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/privy.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
// backend cosigns + forwards to Privy with App auth). No Alchemy or x402
|
|
4
4
|
// concerns here — those live in smart-wallet.ts.
|
|
5
5
|
import canonicalize from "canonicalize";
|
|
6
|
-
import { CipherSuite, DhkemP256HkdfSha256, HkdfSha256
|
|
6
|
+
import { CipherSuite, DhkemP256HkdfSha256, HkdfSha256 } from "@hpke/core";
|
|
7
7
|
import { Chacha20Poly1305 } from "@hpke/chacha20poly1305";
|
|
8
8
|
import { createSign } from "node:crypto";
|
|
9
9
|
import { toAccount } from "viem/accounts";
|
|
10
|
-
import { hashMessage
|
|
10
|
+
import { hashMessage } from "viem";
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
import { get, post } from "./api.js";
|
|
13
13
|
import { lookupUserOp, serializeUserOp, getCurrentTypedDataIntent, } from "./policy-intent.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privy.js","sourceRoot":"","sources":["../../../src/lib/privy.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,iDAAiD;AAEjD,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"privy.js","sourceRoot":"","sources":["../../../src/lib/privy.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,12 @@ import { requireAuthToken } from "./api.js";
|
|
|
7
7
|
import { getPrivyLocalAccount, getWalletConfig } from "./privy.js";
|
|
8
8
|
import { withPreparedUserOps, withTypedDataIntent, } from "./policy-intent.js";
|
|
9
9
|
import { publicClient } from "./usdc.js";
|
|
10
|
+
const DELEGATION_ATTEMPTS = 3;
|
|
11
|
+
const DELEGATION_RETRY_BASE_DELAY_MS = 2000;
|
|
12
|
+
const DELEGATION_CODE_POLL_ATTEMPTS = 6;
|
|
13
|
+
const DELEGATION_CODE_POLL_DELAY_MS = 2000;
|
|
14
|
+
const EIP_7702_DELEGATION_PREFIX = "0xef0100";
|
|
15
|
+
const ALCHEMY_MAV2_DELEGATION = "0x69007702764179f14F51cdce752f4f775d74E139";
|
|
10
16
|
// Talks to Alchemy via our backend proxy so the API key stays server-side.
|
|
11
17
|
// We pass `url` to override the default (api.g.alchemy.com/v2) and inject
|
|
12
18
|
// the CLI's session token via fetchOptions. We deliberately omit
|
|
@@ -27,9 +33,42 @@ export async function getSmartWalletClient() {
|
|
|
27
33
|
paymaster: cfg.gasPolicyId ? { policyId: cfg.gasPolicyId } : undefined,
|
|
28
34
|
});
|
|
29
35
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
37
|
+
function delegationTargetFromCode(code) {
|
|
38
|
+
if (!code || code === "0x")
|
|
39
|
+
return null;
|
|
40
|
+
const normalized = code.toLowerCase();
|
|
41
|
+
if (!normalized.startsWith(EIP_7702_DELEGATION_PREFIX)) {
|
|
42
|
+
throw new Error(`wallet has non-7702 code deployed: ${code.slice(0, 18)}...`);
|
|
43
|
+
}
|
|
44
|
+
if (normalized.length !== EIP_7702_DELEGATION_PREFIX.length + 40) {
|
|
45
|
+
throw new Error(`wallet has malformed 7702 delegation code: ${code}`);
|
|
46
|
+
}
|
|
47
|
+
return `0x${code.slice(EIP_7702_DELEGATION_PREFIX.length)}`;
|
|
48
|
+
}
|
|
49
|
+
async function hasExpectedDelegationCode(address) {
|
|
50
|
+
const code = await publicClient().getCode({ address });
|
|
51
|
+
const delegatedTo = delegationTargetFromCode(code);
|
|
52
|
+
if (!delegatedTo)
|
|
53
|
+
return false;
|
|
54
|
+
if (delegatedTo.toLowerCase() !== ALCHEMY_MAV2_DELEGATION.toLowerCase()) {
|
|
55
|
+
throw new Error(`wallet is delegated to ${delegatedTo}, expected ${ALCHEMY_MAV2_DELEGATION}`);
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
async function waitForDelegationCode(address) {
|
|
60
|
+
for (let attempt = 1; attempt <= DELEGATION_CODE_POLL_ATTEMPTS; attempt++) {
|
|
61
|
+
if (await hasExpectedDelegationCode(address))
|
|
62
|
+
return true;
|
|
63
|
+
if (attempt < DELEGATION_CODE_POLL_ATTEMPTS) {
|
|
64
|
+
await sleep(DELEGATION_CODE_POLL_DELAY_MS);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
// 7702-delegate the wallet if it has no code yet. Alchemy supports an empty
|
|
70
|
+
// call set for delegation-only upgrades, so we do not need to manufacture a
|
|
71
|
+
// zero-value dummy call just to get an authorization into the bundle.
|
|
33
72
|
//
|
|
34
73
|
// Idempotent — short-circuits via `eth_getCode` if the wallet is already
|
|
35
74
|
// delegated. Safe to call before any signing-only flow (x402, ReplaySafeHash
|
|
@@ -37,34 +76,51 @@ export async function getSmartWalletClient() {
|
|
|
37
76
|
export async function ensureDelegated() {
|
|
38
77
|
const client = await getSmartWalletClient();
|
|
39
78
|
const address = client.account.address;
|
|
40
|
-
|
|
41
|
-
if (code && code !== "0x")
|
|
79
|
+
if (await hasExpectedDelegationCode(address))
|
|
42
80
|
return;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
81
|
+
let lastError;
|
|
82
|
+
for (let attempt = 1; attempt <= DELEGATION_ATTEMPTS; attempt++) {
|
|
83
|
+
try {
|
|
84
|
+
const prepared = await client.prepareCalls({ calls: [] });
|
|
85
|
+
// Bootstrap commonly returns [authorization, userOp], but a pure
|
|
86
|
+
// delegation-only prepare can return just the authorization. Register any
|
|
87
|
+
// userOp that appears so our Privy bridge can attach policy intent while
|
|
88
|
+
// signing; authorization-only responses need no userOp intent.
|
|
89
|
+
const userOps = prepared.type === "user-operation-v070"
|
|
90
|
+
? [prepared.data]
|
|
91
|
+
: prepared.type === "authorization"
|
|
92
|
+
? []
|
|
93
|
+
: prepared.type === "array"
|
|
94
|
+
? prepared.data
|
|
95
|
+
.filter((item) => item.type === "user-operation-v070")
|
|
96
|
+
.map((item) => item.data)
|
|
97
|
+
: (() => {
|
|
98
|
+
throw new Error(`unexpected prepared.type: ${prepared.type}`);
|
|
99
|
+
})();
|
|
100
|
+
const sent = await withPreparedUserOps(userOps, async () => {
|
|
101
|
+
const signed = await client.signPreparedCalls(prepared);
|
|
102
|
+
return client.sendPreparedCalls(signed);
|
|
103
|
+
});
|
|
104
|
+
const result = await client.waitForCallsStatus({ id: sent.id });
|
|
105
|
+
if (result.status !== "success") {
|
|
106
|
+
throw new Error(`delegation failed with status: ${result.status}`);
|
|
107
|
+
}
|
|
108
|
+
if (await waitForDelegationCode(address))
|
|
109
|
+
return;
|
|
110
|
+
lastError = new Error("delegation transaction succeeded, but account code was not deployed");
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
lastError = err;
|
|
114
|
+
if (await hasExpectedDelegationCode(address))
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (attempt < DELEGATION_ATTEMPTS) {
|
|
118
|
+
await sleep(DELEGATION_RETRY_BASE_DELAY_MS * attempt);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
throw lastError instanceof Error
|
|
122
|
+
? lastError
|
|
123
|
+
: new Error("delegation did not complete");
|
|
68
124
|
}
|
|
69
125
|
export async function getX402Signer() {
|
|
70
126
|
const client = await getSmartWalletClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-wallet.js","sourceRoot":"","sources":["../../../src/lib/smart-wallet.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,qDAAqD;AAGrD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,2EAA2E;AAC3E,0EAA0E;AAC1E,iEAAiE;AACjE,0EAA0E;AAC1E,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC7C,OAAO,uBAAuB,CAAC;QAC7B,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,sBAAsB,CAAC;YAChC,GAAG,EAAE,GAAG,CAAC,YAAY;YACrB,YAAY,EAAE;gBACZ,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,gBAAgB,EAAE,EAAE,EAAE;aAC3D;SACF,CAAC;QACF,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC,CAAC;AACL,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"smart-wallet.js","sourceRoot":"","sources":["../../../src/lib/smart-wallet.ts"],"names":[],"mappings":"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"}
|