Skip to content

Commit a08fd24

Browse files
committed
Passthrough for non-7710 payment methods
1 parent 1ec3a8d commit a08fd24

2 files changed

Lines changed: 30 additions & 8 deletions

File tree

packages/smart-accounts-kit-x402/src/x402ExactEvmErc7710ServerScheme.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export class x402ExactEvmErc7710ServerScheme extends ExactEvmScheme {
2525
facilitatorExtensions,
2626
);
2727

28+
if (baseRequirements.extra?.assetTransferMethod !== 'erc7710') {
29+
return baseRequirements;
30+
}
31+
2832
const enhancedRequirements = await this.#erc7710Server.enhancePaymentRequirements(
2933
baseRequirements,
3034
supportedKind,

packages/x402-example/src/server.ts

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { config } from 'dotenv';
22
import express from 'express';
33
import { HTTPFacilitatorClient } from '@x402/core/server';
44
import { paymentMiddleware, x402ResourceServer } from '@x402/express';
5+
import { ExactEvmScheme } from '@x402/evm/exact/server';
56
import {
67
type Network,
78
} from '@x402/core/types';
@@ -31,15 +32,32 @@ app.use(
3132
paymentMiddleware(
3233
{
3334
'GET /random': {
34-
accepts: {
35-
scheme: 'exact',
36-
network,
37-
payTo,
38-
price: {
39-
amount: price,
40-
asset: acceptedToken,
35+
accepts: [
36+
{
37+
scheme: 'exact',
38+
network,
39+
payTo,
40+
price: {
41+
amount: price,
42+
asset: acceptedToken,
43+
},
44+
extra: {
45+
assetTransferMethod: 'erc7710',
46+
},
4147
},
42-
},
48+
{
49+
scheme: 'exact',
50+
network,
51+
payTo,
52+
price: {
53+
amount: price,
54+
asset: acceptedToken,
55+
},
56+
extra: {
57+
assetTransferMethod: 'eip3009',
58+
},
59+
},
60+
],
4361
description: 'Random integer from 1 to 10',
4462
mimeType: 'text/plain',
4563
},

0 commit comments

Comments
 (0)