Skip to content

Commit 0b3137e

Browse files
vvillait88claude
andcommitted
fix(examples): multi_rail_merchant emits complete x402 v2 accepts entries
Mirror of node-commerce d39b086: examples/multi_rail_merchant.py declared x402_version=2 but emitted accepts entries with only {scheme, network, payTo} — missing required `amount` + `asset` fields. Strict x402 parsers would reject. Adds atomic USDC amount + asset addr (from the USDC registry) + maxTimeoutSeconds to both rail entries. 483 tests + ruff + ty green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a5764c7 commit 0b3137e

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

‎examples/multi_rail_merchant.py‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
)
6161
from agentscore_commerce.identity.fastapi import AgentScoreGate, get_assess_data
6262
from agentscore_commerce.payment import (
63+
USDC,
6364
PaymentRequiredHeaderInput,
6465
ProcessX402SettleInput,
6566
ValidateX402NetworkConfigInput,
@@ -220,8 +221,22 @@ async def purchase(request: Request, assess: dict = Depends(get_assess_data)):
220221
x402=PaymentRequiredHeaderInput(
221222
x402_version=2,
222223
accepts=[
223-
{"scheme": "exact", "network": X402_BASE_NETWORK, "payTo": deposit_addresses["base"]},
224-
{"scheme": "exact", "network": X402_SVM_NETWORK, "payTo": deposit_addresses["solana"]},
224+
{
225+
"scheme": "exact",
226+
"network": X402_BASE_NETWORK,
227+
"amount": str(round(float(total_usd) * 1_000_000)),
228+
"asset": USDC.base.mainnet.address,
229+
"payTo": deposit_addresses["base"],
230+
"maxTimeoutSeconds": 300,
231+
},
232+
{
233+
"scheme": "exact",
234+
"network": X402_SVM_NETWORK,
235+
"amount": str(round(float(total_usd) * 1_000_000)),
236+
"asset": USDC.solana.mainnet.mint,
237+
"payTo": deposit_addresses["solana"],
238+
"maxTimeoutSeconds": 300,
239+
},
225240
],
226241
resource={"url": str(request.url), "mimeType": "application/json"},
227242
),

0 commit comments

Comments
 (0)