Skip to content

Issue 265 268 267 262 - #373

Merged
davedumto merged 8 commits into
Vellar-Wallet:devfrom
dorismaduegbunam:issue-265-268-267-262
Sep 1, 2026
Merged

Issue 265 268 267 262#373
davedumto merged 8 commits into
Vellar-Wallet:devfrom
dorismaduegbunam:issue-265-268-267-262

Conversation

@dorismaduegbunam

Copy link
Copy Markdown

Summary

Resolves four hardening/test-infrastructure issues for the vellar-sdk: consumer
audit hooks on x402 signer actions, a client/backend integration harness, a
chaos test for transaction-status polling under network drops, and optional load
tests for concurrent payment submissions.

Changes

  • Add a signer audit hook surfaced for every signer action (authorize/deny),
    with tests and documentation.
  • Add an integration harness exercising client initialization, a balance fetch,
    and a payment submission over the http backend transport.
  • Make transaction-status polling resilient to transient network drops and add a
    chaos test that verifies polling resumes and resolves to the correct final
    status.
  • Add an optional load test for concurrent payment submissions (latency and
    error rate across increasing concurrency), exposed as an optional CI job.

closes #262

closes #265

closes #267

closes #268

Define the enumerated set of signer actions (authorize / deny) and fire an
onSignerAction hook for every signing attempt with the actor, outcome, and
network passphrase. Cover both createSessionKeySigner and
createPasskeyX402Signer with tests that assert the hook fires for each action,
and document the audit hook in the x402 README section.

closes Vellar-Wallet#262
…-backend

Spin up a real loopback HTTP server implementing the gateway endpoints
createHttpWalletBackend speaks, and wire createVellarWallet to it so wallet
initialization, a balance fetch, and a payment submission run end to end over
the production transport. The harness runs inside the existing npm test
pipeline and is documented in CONTRIBUTING.md for local runs.

closes Vellar-Wallet#265
Simulate the RPC dropping mid-poll (the reader throws exactly as the live RPC
does) and verify the polling loop resumes after recovery and resolves with the
correct final status. Make waitForTransaction resilient to transient reader
errors so a brief network blip backs off and keeps polling instead of bailing,
and document the chaos scenario in CONTRIBUTING.md.

closes Vellar-Wallet#268
Add an optional load test driving concurrent payment submissions through
payments-client with a configurable-latency/error backend, measuring p50/p95
latency and error rate at increasing concurrency. Expose it as npm run test:load
via a dedicated vitest config, add it as an optional (workflow_dispatch) CI job,
and document observed bottlenecks in CONTRIBUTING.md.

closes Vellar-Wallet#267
…-safe

Replace the real node:http loopback server with a path-routing mock fetch
injected as the backend's fetchImpl, so the src test stays within the SDK's
no-Node-types invariant (tsconfig types: []) and still wires client.ts to
http-backend.ts end to end.

closes Vellar-Wallet#265
…llar-Wallet#262

- Vellar-Wallet#265: integration harness wiring client.ts ↔ http-backend.ts
- Vellar-Wallet#268: chaos test for tx-rpc polling under network drops
- Vellar-Wallet#267: load test for concurrent payments.ts submissions
- Vellar-Wallet#262: audit hook for x402-signer.ts signer actions
@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

@dorismaduegbunam is attempting to deploy a commit to the david's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
github-actions Bot changed the base branch from main to dev September 1, 2026 14:37
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Hi @dorismaduegbunam — thanks for the contribution!

We do not accept pull requests to the main branch. All contributions go to the dev branch, so I've automatically retargeted this PR from main to dev for you.

You don't need to reopen anything — your work is preserved and this PR now targets dev. Going forward, please set the base branch to dev when you open a PR. 🙏

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Thanks for the contribution — but contributor PRs may only change files inside contrib/.

This PR touches file(s) outside that folder:

  • .github/workflows/ci.yml
  • CONTRIBUTING.md
  • package.json
  • src/client-backend-harness.test.ts
  • src/payments.load.test.ts
  • src/tx-rpc.chaos.test.ts
  • src/tx-status.test.ts
  • src/tx-status.ts
  • src/x402-signer.test.ts
  • src/x402-signer.ts
  • vitest.config.ts
  • vitest.load.config.ts
  • website/content/docs/x402.md

Please open a new PR with your changes scoped to contrib/ only, targeting dev. See CONTRIBUTING.md and contrib/README.md. If your assigned issue genuinely needs changes elsewhere, say so on the issue first — don't open a PR outside contrib/.

Questions? Ask in the Telegram group.

@github-actions github-actions Bot closed this Sep 1, 2026
@davedumto davedumto reopened this Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Thanks for the contribution — but contributor PRs may only change files inside contrib/.

This PR touches file(s) outside that folder:

  • .github/workflows/ci.yml
  • CONTRIBUTING.md
  • package.json
  • src/client-backend-harness.test.ts
  • src/payments.load.test.ts
  • src/tx-rpc.chaos.test.ts
  • src/tx-status.test.ts
  • src/tx-status.ts
  • src/x402-signer.test.ts
  • src/x402-signer.ts
  • vitest.config.ts
  • vitest.load.config.ts
  • website/content/docs/x402.md

Please open a new PR with your changes scoped to contrib/ only, targeting dev. See CONTRIBUTING.md and contrib/README.md. If your assigned issue genuinely needs changes elsewhere, say so on the issue first — don't open a PR outside contrib/.

Questions? Ask in the Telegram group.

@github-actions github-actions Bot closed this Sep 1, 2026
@davedumto
davedumto merged commit b102b99 into Vellar-Wallet:dev Sep 1, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants