@xona-labs/xpay 0.2.14 → 0.2.16

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +29 -1
  3. package/dist/cli/index.js +22 -0
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/cli/trade.d.ts +22 -0
  6. package/dist/cli/trade.d.ts.map +1 -0
  7. package/dist/cli/trade.js +148 -0
  8. package/dist/cli/trade.js.map +1 -0
  9. package/dist/index.d.ts +32 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +8 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/profile/index.d.ts.map +1 -1
  14. package/dist/profile/index.js +11 -1
  15. package/dist/profile/index.js.map +1 -1
  16. package/dist/profile/types.d.ts +8 -0
  17. package/dist/profile/types.d.ts.map +1 -1
  18. package/dist/signers/raw-evm.d.ts.map +1 -1
  19. package/dist/signers/raw-evm.js +15 -0
  20. package/dist/signers/raw-evm.js.map +1 -1
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +74 -0
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/trading/discovery.d.ts +42 -0
  25. package/dist/trading/discovery.d.ts.map +1 -0
  26. package/dist/trading/discovery.js +109 -0
  27. package/dist/trading/discovery.js.map +1 -0
  28. package/dist/trading/index.d.ts +93 -0
  29. package/dist/trading/index.d.ts.map +1 -0
  30. package/dist/trading/index.js +348 -0
  31. package/dist/trading/index.js.map +1 -0
  32. package/dist/types.d.ts +23 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/use/index.d.ts.map +1 -1
  35. package/dist/use/index.js +37 -10
  36. package/dist/use/index.js.map +1 -1
  37. package/dist/wallet/index.d.ts.map +1 -1
  38. package/dist/wallet/index.js +2 -0
  39. package/dist/wallet/index.js.map +1 -1
  40. package/dist/x402/evm-payment.d.ts +51 -0
  41. package/dist/x402/evm-payment.d.ts.map +1 -0
  42. package/dist/x402/evm-payment.js +121 -0
  43. package/dist/x402/evm-payment.js.map +1 -0
  44. package/package.json +1 -1
@@ -0,0 +1,348 @@
1
+ /**
2
+ * Robinhood Chain token trading — direct Uniswap V3 (NOXA Fun launchpad).
3
+ *
4
+ * NOXA Fun tokens (fun.noxa.fi) launch straight into Uniswap V3 pools quoted
5
+ * in WETH, so trading them is plain V3: quote via QuoterV2, execute via
6
+ * SwapRouter02. No third-party API or key — everything is on-chain against the
7
+ * chain's own RPC. GMGN was ruled out (no chain-4663 support, gated API).
8
+ *
9
+ * Scope v1: ETH ⇄ token only (buy with native ETH, sell back to native ETH).
10
+ * The router auto-wraps ETH on buys; sells unwrap WETH → ETH via multicall.
11
+ *
12
+ * A trade is irreversible and risks wallet value, so — exactly like `swap` —
13
+ * it runs through the guardrail *before* signing.
14
+ */
15
+ import { Contract, MaxUint256, getAddress, isAddress } from "ethers";
16
+ import { tokenPriceUsd, resolveTokenBySymbol } from "./discovery.js";
17
+ export const ROBINHOOD_NETWORK = "robinhood";
18
+ /** Verified Robinhood Chain (chain 4663) contracts. */
19
+ export const RH_CONTRACTS = {
20
+ swapRouter02: "0xcaf681a66d020601342297493863e78c959e5cb2",
21
+ quoterV2: "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7",
22
+ factory: "0x1f7d7550b1b028f7571e69a784071f0205fd2efa",
23
+ weth: "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",
24
+ noxaLauncher: "0xD9eC2db5f3D1b236843925949fe5bd8a3836FCcB",
25
+ };
26
+ /** Fee tiers probed (in bps*100) when the pool fee isn't known up front. NOXA uses 10000 (1%). */
27
+ const FEE_TIERS = [10000, 3000, 500, 100];
28
+ const DEFAULT_SLIPPAGE_BPS = 100; // 1% — memecoin pools with a 1% fee move fast.
29
+ const MAX_SLIPPAGE_BPS = 5000; // 50% hard ceiling.
30
+ const QUOTER_ABI = [
31
+ "function quoteExactInputSingle((address tokenIn,address tokenOut,uint256 amountIn,uint24 fee,uint160 sqrtPriceLimitX96)) returns (uint256 amountOut,uint160 sqrtPriceX96After,uint32 initializedTicksCrossed,uint256 gasEstimate)",
32
+ ];
33
+ const ROUTER_ABI = [
34
+ "function exactInputSingle((address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) payable returns (uint256 amountOut)",
35
+ "function unwrapWETH9(uint256 amountMinimum,address recipient) payable",
36
+ "function multicall(bytes[] data) payable returns (bytes[])",
37
+ ];
38
+ const ERC20_ABI = [
39
+ "function decimals() view returns (uint8)",
40
+ "function symbol() view returns (string)",
41
+ "function balanceOf(address) view returns (uint256)",
42
+ "function allowance(address owner,address spender) view returns (uint256)",
43
+ "function approve(address spender,uint256 amount) returns (bool)",
44
+ ];
45
+ // NOXA Fun token surface — non-standard getters a plain ERC-20 lacks.
46
+ const NOXA_TOKEN_ABI = [
47
+ "function liquidityPool() view returns (address)",
48
+ "function pairToken() view returns (address)",
49
+ "function poolFee() view returns (uint24)",
50
+ "function restrictionEndBlock() view returns (uint256)",
51
+ "function maxWalletLimit() view returns (uint256)",
52
+ "function maxTxLimit() view returns (uint256)",
53
+ ];
54
+ // SwapRouter02 recipient constant: keep output in the router for a follow-up unwrap.
55
+ const ROUTER_ADDRESS_THIS = "0x0000000000000000000000000000000000000002";
56
+ const NATIVE_ETH = { symbol: "ETH", decimals: 18 };
57
+ /** Quote a trade without executing — no guardrail, no signing, no funds moved. */
58
+ export async function tradeQuote(args) {
59
+ return (await prepare(args)).quote;
60
+ }
61
+ /** Execute a trade on Robinhood Chain. Guardrail runs before signing. */
62
+ export async function trade(args) {
63
+ const { quote, ethersWallet, side, token } = await prepare(args);
64
+ // Guardrail *before* signing — same security boundary as swap/pay/transfer.
65
+ // Reuse the "swap" scheme so host-whitelist is skipped and the USD estimate
66
+ // is priced from `extra.usdEstimate` (see Guardrail.estimateUsd).
67
+ await args.guardrail.check({
68
+ resource: {
69
+ resource: `xpay://trade/robinhood/${quote.from.symbol}-${quote.to.symbol}`,
70
+ type: "swap",
71
+ method: "POST",
72
+ accepts: [
73
+ {
74
+ asset: quote.from.address,
75
+ payTo: quote.to.address,
76
+ amount: quote.inAtoms,
77
+ scheme: "swap",
78
+ network: "eip155:4663",
79
+ extra: {
80
+ usdEstimate: quote.usdValue,
81
+ fromSymbol: quote.from.symbol,
82
+ toSymbol: quote.to.symbol,
83
+ },
84
+ },
85
+ ],
86
+ },
87
+ requirement: {
88
+ asset: quote.from.address,
89
+ payTo: quote.to.address,
90
+ amount: quote.inAtoms,
91
+ scheme: "swap",
92
+ network: "eip155:4663",
93
+ extra: { usdEstimate: quote.usdValue },
94
+ },
95
+ });
96
+ const router = new Contract(RH_CONTRACTS.swapRouter02, ROUTER_ABI, ethersWallet);
97
+ const inAtoms = BigInt(quote.inAtoms);
98
+ const minOut = BigInt(quote.minOutAtoms);
99
+ let txHash;
100
+ if (side === "buy") {
101
+ // ETH → token: router auto-wraps the ETH we send as `value`.
102
+ const params = {
103
+ tokenIn: RH_CONTRACTS.weth,
104
+ tokenOut: token.address,
105
+ fee: quote.poolFee,
106
+ recipient: ethersWallet.address,
107
+ amountIn: inAtoms,
108
+ amountOutMinimum: minOut,
109
+ sqrtPriceLimitX96: 0n,
110
+ };
111
+ const tx = await router.exactInputSingle(params, { value: inAtoms });
112
+ const receipt = await tx.wait(1);
113
+ txHash = receipt?.hash ?? tx.hash;
114
+ }
115
+ else {
116
+ // token → ETH: ensure allowance, then swap-to-router + unwrap in one tx.
117
+ await ensureAllowance(ethersWallet, token.address, RH_CONTRACTS.swapRouter02, inAtoms);
118
+ const iface = router.interface;
119
+ const swapData = iface.encodeFunctionData("exactInputSingle", [
120
+ {
121
+ tokenIn: token.address,
122
+ tokenOut: RH_CONTRACTS.weth,
123
+ fee: quote.poolFee,
124
+ recipient: ROUTER_ADDRESS_THIS, // keep WETH in the router for the unwrap
125
+ amountIn: inAtoms,
126
+ amountOutMinimum: minOut,
127
+ sqrtPriceLimitX96: 0n,
128
+ },
129
+ ]);
130
+ const unwrapData = iface.encodeFunctionData("unwrapWETH9", [minOut, ethersWallet.address]);
131
+ const tx = await router.multicall([swapData, unwrapData]);
132
+ const receipt = await tx.wait(1);
133
+ txHash = receipt?.hash ?? tx.hash;
134
+ }
135
+ return { ...quote, txHash };
136
+ }
137
+ async function prepare(args) {
138
+ const network = args.network ?? ROBINHOOD_NETWORK;
139
+ if (network !== ROBINHOOD_NETWORK) {
140
+ throw new Error(`xpay.trade: only Robinhood Chain ("robinhood") is supported (got "${network}")`);
141
+ }
142
+ if (!args.wallet.has(ROBINHOOD_NETWORK)) {
143
+ throw new Error('xpay.trade: no "robinhood" signer configured — add it to your profile networks');
144
+ }
145
+ if (!Number.isFinite(args.amount) || args.amount <= 0) {
146
+ throw new Error("xpay.trade: amount must be a positive number");
147
+ }
148
+ const signer = args.wallet.signer(ROBINHOOD_NETWORK);
149
+ const ethersWallet = signer.getEvmWallet?.();
150
+ if (!ethersWallet) {
151
+ throw new Error("xpay.trade: the robinhood signer does not expose an EVM wallet");
152
+ }
153
+ const fromIsEth = isEth(args.from);
154
+ const toIsEth = isEth(args.to);
155
+ if (fromIsEth === toIsEth) {
156
+ throw new Error('xpay.trade: exactly one side must be native ETH (v1 supports ETH→token buys and token→ETH sells)');
157
+ }
158
+ const side = fromIsEth ? "buy" : "sell";
159
+ // Resolve the non-ETH token (address or trending symbol) + its metadata.
160
+ const tokenRef = fromIsEth ? args.to : args.from;
161
+ const token = await resolveToken(ethersWallet, tokenRef);
162
+ // Inspect NOXA-ness / pool fee / restrictions.
163
+ const meta = await inspectToken(ethersWallet, token.address);
164
+ const restriction = meta.restriction;
165
+ const inDecimals = fromIsEth ? NATIVE_ETH.decimals : token.decimals;
166
+ const outDecimals = toIsEth ? NATIVE_ETH.decimals : token.decimals;
167
+ const inAtoms = toAtoms(args.amount, inDecimals);
168
+ if (inAtoms === 0n) {
169
+ throw new Error(`xpay.trade: ${args.amount} is below the token's smallest unit (${inDecimals} decimals)`);
170
+ }
171
+ const tokenIn = fromIsEth ? RH_CONTRACTS.weth : token.address;
172
+ const tokenOut = toIsEth ? RH_CONTRACTS.weth : token.address;
173
+ // Quote across candidate fee tiers (prefer the token's declared NOXA fee).
174
+ const feeCandidates = meta.poolFee ? [meta.poolFee, ...FEE_TIERS.filter((f) => f !== meta.poolFee)] : FEE_TIERS;
175
+ const { outAtoms, poolFee } = await quoteBestFee(ethersWallet, tokenIn, tokenOut, inAtoms, feeCandidates);
176
+ const slippageBps = clampSlippage(args.slippageBps ?? args.config?.slippageBps ?? DEFAULT_SLIPPAGE_BPS);
177
+ const minOutAtoms = (outAtoms * BigInt(10_000 - slippageBps)) / 10000n;
178
+ // NOXA transfer caps. They only bind BUYS (max tokens received per tx, and a
179
+ // ceiling on the resulting wallet balance), so we only check the buy side.
180
+ // A buy that would breach a cap is failed up front with a clear message
181
+ // rather than reverting opaquely on-chain. The cap info is surfaced on the
182
+ // quote only when this trade is actually within striking distance of a cap
183
+ // (>25% of it) — established tokens leave a far-future endBlock set with wide
184
+ // caps, so reporting it unconditionally would be misleading noise.
185
+ let boundRestriction;
186
+ if (restriction && side === "buy") {
187
+ const maxTx = restriction.maxTxAtoms ? BigInt(restriction.maxTxAtoms) : undefined;
188
+ const maxWallet = restriction.maxWalletAtoms ? BigInt(restriction.maxWalletAtoms) : undefined;
189
+ if (maxTx !== undefined && outAtoms > maxTx) {
190
+ throw new Error(`xpay.trade: this buy (${fromAtoms(outAtoms, outDecimals)} ${token.symbol}) exceeds the token's ` +
191
+ `per-tx cap of ${fromAtoms(maxTx, token.decimals)}. Buy a smaller amount.`);
192
+ }
193
+ let resultingBalance;
194
+ if (maxWallet !== undefined) {
195
+ const current = await tokenBalanceOf(ethersWallet, token.address);
196
+ resultingBalance = current + outAtoms;
197
+ if (resultingBalance > maxWallet) {
198
+ throw new Error(`xpay.trade: this buy would push your ${token.symbol} balance past the token's ` +
199
+ `max-wallet cap of ${fromAtoms(maxWallet, token.decimals)}. Buy less.`);
200
+ }
201
+ }
202
+ const nearTx = maxTx !== undefined && outAtoms * 4n > maxTx;
203
+ const nearWallet = maxWallet !== undefined && resultingBalance !== undefined && resultingBalance * 4n > maxWallet;
204
+ if (nearTx || nearWallet)
205
+ boundRestriction = restriction;
206
+ }
207
+ // Input-side USD via GeckoTerminal spot (WETH price for buys, token for sells).
208
+ const usdValue = await priceInputUsd(fromIsEth ? RH_CONTRACTS.weth : token.address, args.amount);
209
+ const quote = {
210
+ network: "robinhood",
211
+ from: fromIsEth ? { ...NATIVE_ETH, address: "ETH" } : token,
212
+ to: toIsEth ? { ...NATIVE_ETH, address: "ETH" } : token,
213
+ inAmount: args.amount,
214
+ inAtoms: inAtoms.toString(),
215
+ outAmount: fromAtoms(outAtoms, outDecimals),
216
+ outAtoms: outAtoms.toString(),
217
+ minOutAtoms: minOutAtoms.toString(),
218
+ poolFee,
219
+ pool: meta.pool ?? "",
220
+ slippageBps,
221
+ usdValue,
222
+ unverified: !meta.isNoxa,
223
+ restriction: boundRestriction,
224
+ };
225
+ return { quote, ethersWallet, side, token };
226
+ }
227
+ function isEth(ref) {
228
+ const r = ref.trim().toLowerCase();
229
+ return r === "eth" || r === "native";
230
+ }
231
+ /** Resolve a token reference (address or trending symbol) to symbol/decimals. */
232
+ async function resolveToken(wallet, ref) {
233
+ let address = ref.trim();
234
+ if (!isAddress(address)) {
235
+ // Treat as a symbol — resolve via GeckoTerminal trending/new pools.
236
+ const found = await resolveTokenBySymbol(address);
237
+ address = found.address;
238
+ }
239
+ address = getAddress(address); // checksum
240
+ const erc20 = new Contract(address, ERC20_ABI, wallet);
241
+ const [decimals, symbol] = await Promise.all([
242
+ erc20.decimals().then((d) => Number(d)).catch(() => 18),
243
+ erc20.symbol().catch(() => address.slice(0, 6) + "…"),
244
+ ]);
245
+ return { address, symbol, decimals };
246
+ }
247
+ /** Probe a token's NOXA Fun surface — pool, fee tier, launch restrictions. */
248
+ async function inspectToken(wallet, address) {
249
+ const t = new Contract(address, NOXA_TOKEN_ABI, wallet);
250
+ try {
251
+ const [pool, pair, fee] = await Promise.all([
252
+ t.liquidityPool(),
253
+ t.pairToken(),
254
+ t.poolFee().then((f) => Number(f)),
255
+ ]);
256
+ // Confirm it's a WETH-paired NOXA launch.
257
+ const isNoxa = pair.toLowerCase() === RH_CONTRACTS.weth.toLowerCase();
258
+ const meta = { isNoxa, pool, poolFee: fee };
259
+ if (isNoxa) {
260
+ const [endBlockRaw, currentBlock] = await Promise.all([
261
+ t.restrictionEndBlock().then((b) => Number(b)).catch(() => 0),
262
+ wallet.provider.getBlockNumber(),
263
+ ]);
264
+ if (endBlockRaw > currentBlock) {
265
+ const [maxWallet, maxTx] = await Promise.all([
266
+ t.maxWalletLimit().then((v) => v.toString()).catch(() => undefined),
267
+ t.maxTxLimit().then((v) => v.toString()).catch(() => undefined),
268
+ ]);
269
+ meta.restriction = {
270
+ endBlock: endBlockRaw,
271
+ currentBlock,
272
+ maxWalletAtoms: maxWallet,
273
+ maxTxAtoms: maxTx,
274
+ };
275
+ }
276
+ }
277
+ return meta;
278
+ }
279
+ catch {
280
+ // Not a NOXA token (getters reverted) — still tradeable if a V3 pool exists.
281
+ return { isNoxa: false };
282
+ }
283
+ }
284
+ /** Quote across fee tiers; return the first that yields output. */
285
+ async function quoteBestFee(wallet, tokenIn, tokenOut, amountIn, fees) {
286
+ const quoter = new Contract(RH_CONTRACTS.quoterV2, QUOTER_ABI, wallet);
287
+ let lastErr;
288
+ for (const fee of fees) {
289
+ try {
290
+ // QuoterV2 quote fns are non-view (revert-to-return) — must use staticCall.
291
+ const res = await quoter.quoteExactInputSingle.staticCall({
292
+ tokenIn,
293
+ tokenOut,
294
+ amountIn,
295
+ fee,
296
+ sqrtPriceLimitX96: 0n,
297
+ });
298
+ const out = res[0];
299
+ if (out > 0n)
300
+ return { outAtoms: out, poolFee: fee };
301
+ }
302
+ catch (e) {
303
+ lastErr = e;
304
+ }
305
+ }
306
+ throw new Error(`xpay.trade: no Uniswap V3 pool with liquidity found for this pair on Robinhood Chain ` +
307
+ `(tried fee tiers ${fees.join(", ")}). ${lastErr instanceof Error ? lastErr.message : ""}`.trim());
308
+ }
309
+ /** Approve the router to spend `amount` of `token` if the allowance is short. */
310
+ async function ensureAllowance(wallet, token, spender, amount) {
311
+ const erc20 = new Contract(token, ERC20_ABI, wallet);
312
+ const current = (await erc20.allowance(wallet.address, spender));
313
+ if (current >= amount)
314
+ return;
315
+ const tx = await erc20.approve(spender, MaxUint256);
316
+ await tx.wait(1);
317
+ }
318
+ async function tokenBalanceOf(wallet, token) {
319
+ try {
320
+ const erc20 = new Contract(token, ERC20_ABI, wallet);
321
+ return (await erc20.balanceOf(wallet.address));
322
+ }
323
+ catch {
324
+ return 0n;
325
+ }
326
+ }
327
+ async function priceInputUsd(tokenAddress, amount) {
328
+ const price = await tokenPriceUsd(tokenAddress);
329
+ return price === undefined ? undefined : price * amount;
330
+ }
331
+ function toAtoms(amount, decimals) {
332
+ // Avoid float drift on high-decimals tokens: build the atomic string by hand.
333
+ const [whole, frac = ""] = amount.toString().split(".");
334
+ const fracPadded = (frac + "0".repeat(decimals)).slice(0, decimals);
335
+ return BigInt((whole ?? "0") + fracPadded);
336
+ }
337
+ function fromAtoms(atoms, decimals) {
338
+ const s = atoms.toString().padStart(decimals + 1, "0");
339
+ const whole = s.slice(0, s.length - decimals);
340
+ const frac = s.slice(s.length - decimals);
341
+ return Number(`${whole}.${frac}`);
342
+ }
343
+ function clampSlippage(bps) {
344
+ if (!Number.isFinite(bps) || bps < 0)
345
+ return DEFAULT_SLIPPAGE_BPS;
346
+ return Math.min(Math.round(bps), MAX_SLIPPAGE_BPS);
347
+ }
348
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trading/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -272,5 +272,28 @@ export interface Signer {
272
272
  * signing service.
273
273
  */
274
274
  getKitSigner?(): Promise<unknown>;
275
+ /**
276
+ * Optional (EVM signers): sign an EIP-712 typed-data payload and return the
277
+ * hex signature. When present, `use()` pays eip155 endpoints gaslessly via
278
+ * a signed EIP-3009 `transferWithAuthorization` (the facilitator broadcasts
279
+ * and covers gas — no native ETH needed); when absent, it falls back to the
280
+ * legacy `pay()` (broadcasts an ERC-20 transfer, wallet pays its own gas).
281
+ */
282
+ signEvmTypedData?(typedData: {
283
+ domain: Record<string, unknown>;
284
+ types: Record<string, Array<{
285
+ name: string;
286
+ type: string;
287
+ }>>;
288
+ message: Record<string, unknown>;
289
+ }): Promise<string>;
290
+ /**
291
+ * Optional (EVM signers): return the underlying ethers `Wallet` (connected to
292
+ * a provider) so higher-level flows like on-chain DEX trades can read chain
293
+ * state and broadcast arbitrary contract calls (swaps, approvals). Typed
294
+ * `unknown` to keep ethers out of the core type surface — callers cast it.
295
+ * Mirrors {@link Signer.getKitSigner}. Implemented by `rawEvmSigner`.
296
+ */
297
+ getEvmWallet?(): unknown;
275
298
  }
276
299
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8FAA8F;AAC9F,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE/F;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;IACnC,qDAAqD;;IAErD,yBAAyB;;IAEzB,sEAAsE;;IAEtE,wCAAwC;;IAExC,mFAAmF;;IAEnF,iDAAiD;;;;IAIjD,wEAAwE;;;;;;;;;;;;;;;;;;;;;;EAExE,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,cAAc;IACzB,sDAAsD;;IAEtD,6DAA6D;;IAE7D,6BAA6B;;IAE7B,6CAA6C;;IAE7C,oCAAoC;;QAnCpC,qDAAqD;;QAErD,yBAAyB;;QAEzB,sEAAsE;;QAEtE,wCAAwC;;QAExC,mFAAmF;;QAEnF,iDAAiD;;;;QAIjD,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BxE,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;IACd,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,oEAAoE;IACpE,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1C;;;;;;;;;;OAUG;IACH,YAAY,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,SAAS,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,OAAO,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAuB3D;AAgBD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAcrE;AA2LD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgElF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAuB3D;AAsBD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAcrE;AAmND;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgElF"}
package/dist/use/index.js CHANGED
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { extractRequirements, extractSettleEnvelope } from "../x402/extract.js";
15
15
  import { buildSvmPaymentHeader, isSvmNetwork } from "../x402/svm-payment.js";
16
+ import { buildEvmPaymentHeader, hasEvmDomainParams, isEvmNetwork } from "../x402/evm-payment.js";
16
17
  import { isAgencResource } from "../agenc/api.js";
17
18
  export async function use(args) {
18
19
  // AgenC listings are not HTTP resources — payment is an on-chain escrow
@@ -41,17 +42,22 @@ export async function use(args) {
41
42
  }
42
43
  /**
43
44
  * Catalog entries are snapshots — they carry payTo/asset/amount but not the
44
- * per-facilitator settlement fields. SVM v2 settlement needs
45
- * `extra.feePayer` (the facilitator's fee-payer pubkey), which only a fresh
46
- * 402 challenge provides. When it's missing, pay via the live flow instead
47
- * of failing with "feePayer is required in paymentRequirements.extra".
45
+ * per-facilitator settlement fields that only a fresh 402 challenge provides.
46
+ * SVM v2 settlement needs `extra.feePayer` (the facilitator's fee-payer
47
+ * pubkey); gasless EVM settlement needs the asset's EIP-712 domain params
48
+ * (`extra.name`/`extra.version`). When the wallet can do the v2 flow but the
49
+ * snapshot lacks those fields, pay via the live flow instead of failing (or,
50
+ * worse for EVM, silently falling back to a gas-burning broadcast).
48
51
  */
49
52
  function reqNeedsLiveChallenge(args, req) {
50
- if (!isSvmNetwork(req.network))
51
- return false;
52
53
  const signer = args.wallet.signer(normalizeNetwork(req.network));
53
- const usesSvmV2 = typeof signer?.getKitSigner === "function";
54
- return usesSvmV2 && !req.extra?.feePayer;
54
+ if (isSvmNetwork(req.network)) {
55
+ return typeof signer?.getKitSigner === "function" && !req.extra?.feePayer;
56
+ }
57
+ if (isEvmNetwork(req.network)) {
58
+ return typeof signer?.signEvmTypedData === "function" && !hasEvmDomainParams(req);
59
+ }
60
+ return false;
55
61
  }
56
62
  export async function useByUrl(args) {
57
63
  const resource = {
@@ -115,8 +121,14 @@ async function useWithLiveChallenge(args) {
115
121
  * signed tx, facilitator settles. Returns header only (no txSig until
116
122
  * the upstream call comes back).
117
123
  *
118
- * Anything else (EVM facilitators, legacy v1 SVM)
119
- * legacy path: signer.pay() broadcasts, header carries the txSig.
124
+ * EVM (eip155:* / base / ethereum / …) + signer has signEvmTypedData +
125
+ * requirement carries EIP-712 domain params
126
+ * canonical x402 v2 — gasless EIP-3009 transferWithAuthorization
127
+ * signature in the header, facilitator broadcasts and pays gas.
128
+ *
129
+ * Anything else (legacy v1) →
130
+ * legacy path: signer.pay() broadcasts, header carries the txSig
131
+ * (EVM wallets need native gas here).
120
132
  */
121
133
  async function settle(args, req, x402Version) {
122
134
  const network = normalizeNetwork(req.network);
@@ -130,6 +142,21 @@ async function settle(args, req, x402Version) {
130
142
  });
131
143
  return { header, network };
132
144
  }
145
+ // Gasless EVM v2 — sign an EIP-3009 transferWithAuthorization, facilitator
146
+ // broadcasts and pays gas. Needs the EIP-712 domain params from the 402
147
+ // challenge; catalog snapshots without them were already routed through the
148
+ // live flow by reqNeedsLiveChallenge().
149
+ if (isEvmNetwork(req.network) &&
150
+ typeof signer.signEvmTypedData === "function" &&
151
+ hasEvmDomainParams(req)) {
152
+ const header = await buildEvmPaymentHeader({
153
+ address: signer.address,
154
+ signTypedData: signer.signEvmTypedData.bind(signer),
155
+ requirement: req,
156
+ x402Version,
157
+ });
158
+ return { header, network };
159
+ }
133
160
  // Legacy path — sign + broadcast on our side, send txSig in the header.
134
161
  const txSig = await signer.pay(req);
135
162
  return { header: paymentHeader(req, txSig, x402Version), network, txSig };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gEAAgE;IAChE,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,sDAAsD;IACtD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC5E;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CAC/F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAuExD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,gEAAgE;IAChE,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,sDAAsD;IACtD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC5E;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CAC/F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAwExD"}
@@ -30,6 +30,8 @@ export function createWallet(opts) {
30
30
  return "arbitrum";
31
31
  if (raw === "eip155:10" && signers["optimism"])
32
32
  return "optimism";
33
+ if (raw === "eip155:4663" && signers["robinhood"])
34
+ return "robinhood";
33
35
  return undefined;
34
36
  }
35
37
  /** USDC balance for a network slug; 0 when the signer can't report it. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqCH,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,SAAS,MAAM,CAAC,OAAgB;QAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,8EAA8E;IAC9E,SAAS,YAAY,CAAC,GAAW;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC7B,6EAA6E;QAC7E,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtG,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC5D,IAAI,GAAG,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACjE,IAAI,GAAG,KAAK,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACrE,IAAI,GAAG,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAClE,IAAI,GAAG,KAAK,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;YAAE,OAAO,WAAW,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,KAAK,UAAU,SAAS,CAAC,OAAgB;QACvC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAA+D,CAAC;QACzF,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,MAAM;QACN,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;QACtD,eAAe,CAAC,IAAI;YAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,OAAO,GAAG,CAAC;YAC5C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,wBAAwB,CAAC,IAAI;YACjC,uEAAuE;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/D,yEAAyE;YACzE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;YAEjD,wEAAwE;YACxE,kEAAkE;YAClE,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC,CAAC,CACH,CAAC;YAEF,0EAA0E;YAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Build the canonical x402 EVM v2 `X-Payment` header value (gasless).
3
+ *
4
+ * Spec flow (`exact` scheme on eip155 networks):
5
+ * client signs an EIP-3009 `TransferWithAuthorization` typed-data payload
6
+ * (an off-chain signature — USDC supports it natively) → header carries
7
+ * the authorization + signature → facilitator submits the transfer
8
+ * on-chain and pays the gas.
9
+ *
10
+ * The payer wallet therefore needs ZERO native ETH: this replaces the legacy
11
+ * `signer.pay()` path, which broadcast a plain `erc20.transfer()` from the
12
+ * wallet and failed with "insufficient funds for intrinsic transaction cost"
13
+ * on gasless agent wallets.
14
+ *
15
+ * Payload shape mirrors `@x402/evm`'s `exact` client scheme, which is what
16
+ * `ExactEvmScheme` servers + facilitators (PayAI, CDP) verify against.
17
+ */
18
+ import type { PaymentRequirement } from "../types.js";
19
+ export interface BuildEvmPaymentArgs {
20
+ /** Payer address (the EVM signer's wallet address). */
21
+ address: string;
22
+ /** EIP-712 typed-data signer — from `signer.signEvmTypedData`. */
23
+ signTypedData: (typedData: {
24
+ domain: Record<string, unknown>;
25
+ types: Record<string, Array<{
26
+ name: string;
27
+ type: string;
28
+ }>>;
29
+ message: Record<string, unknown>;
30
+ }) => Promise<string>;
31
+ /** What the server's 402 told us we owe. */
32
+ requirement: PaymentRequirement;
33
+ /** x402 protocol version for the envelope. Defaults to 2. */
34
+ x402Version?: number;
35
+ }
36
+ export declare function evmChainId(network: string): number;
37
+ /** True for networks paid via the EVM x402 path (eip155 CAIP ids or named EVM chains). */
38
+ export declare function isEvmNetwork(network: string): boolean;
39
+ /**
40
+ * True when this requirement carries the EIP-712 domain params (`extra.name`
41
+ * + `extra.version`) the gasless signature needs. Catalog snapshots usually
42
+ * strip `extra` — a fresh 402 challenge always has it.
43
+ */
44
+ export declare function hasEvmDomainParams(req: PaymentRequirement): boolean;
45
+ /**
46
+ * Returns the value of the `X-Payment` header (base64 of canonical JSON
47
+ * envelope), ready to attach to the retry request. Nothing is broadcast —
48
+ * the facilitator settles server-side.
49
+ */
50
+ export declare function buildEvmPaymentHeader(args: BuildEvmPaymentArgs): Promise<string>;
51
+ //# sourceMappingURL=evm-payment.d.ts.map