Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

No test drives a real 402 payment loop

Cerrado
#423 6 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 3 días

@Ugasutun ya está trabajando en esto.

Desde el 17/10/2026.

  • #450 de @sparkysolutions10-pixel — cerrado sin fusionar
  • #490 de @Ugasutun — cerrado sin fusionar

Evaluación

Este issue todavía no se ha evaluado.

Descripción

area:testing difficulty:advanced help wanted points:200 Stellar Wave
Background

The 402 test asserts that a rejected payment maps to ERR_PAYMENT_REJECTED.
Nothing tests the path where a 402 is answered successfully: the payment is
constructed, signed, submitted and the resource returned.

That path is the reason this tool exists, it is the one that moves money, and it
is the one that would break silently on an x402 or Stellar SDK upgrade — which
is not hypothetical, since this repo currently pins @stellar/stellar-sdk at a
major four behind current.

What to build
  • An end-to-end test of the successful 402 loop against a stubbed resource that
    demands payment and verifies it — a fake facilitator, not mainnet.
  • Assert on what was signed: amount, destination, network passphrase. A test that
    only checks the response body would pass while paying the wrong account.
  • Cover the failure branches too: wrong network, expired signature, amount above
    maxPrice.
  • Testnet keys only, generated by the test, never committed and never a real
    account.
Acceptance criteria
  • A successful 402 loop is tested end to end against a stub
  • Assertions cover amount, destination and network, not just the response
  • Payment above maxPrice is refused, asserted
  • No real key or mainnet account is used
  • The test is deterministic and needs no network access

Drips Wave · Complexity: Advanced · 200 points


Repo: Divinity-Labs/Lens. The MCP server is src/mcp/server.ts
(BazaarMcpServer) with error codes in src/mcp/codes.ts. It is started by
npm run mcp:server → examples/mcp-server/run.ts, and there is an agent
example at examples/mcp-server/agent.ts. Tests are tests/mcp.test.ts.

Run the tests: npm test. The tests are vitest, not jest. A single file
is npx vitest run tests/mcp.test.ts.

Load test (prices) is already failing on main. Not your PR.

This surface signs with a real mainnet key. examples/mcp-server/run.ts
requires MCP_AGENT_SECRET_KEY_MAINNET and builds a signer for
stellar:pubnet. Anything you change here can move real money, so prefer
failing closed, and never log, echo or test with a real secret key.

Never elide an address, a contract id or a key in code, comments or
fixtures. A previous batch shortened a contract id and five contributors
invented plausible-looking ids to fill the gap. Write it in full or not at all.

An agent is the least able caller to notice a wrong answer. It will reason
over whatever it is handed, confidently. Prefer a structured error over a
best-effort result.


Required: Before submitting, join the contributor Telegram so your work can be tracked and counted toward the Stellar Wave: https://t.me/+fxHXq8f1SwlkZDBk

Lenguaje dominante
TypeScript
Estrellas
4
Forks
71
Merge medio
3 d 10 h
PR fusionados (30 d)
154

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Divinity-Labs/Lens

Todos los issues de Divinity-Labs/Lens

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.