Skip to content

Refactor code, fix zkverify testnet#279

Merged
Huygon764 merged 7 commits into
mainfrom
develop
May 22, 2026
Merged

Refactor code, fix zkverify testnet#279
Huygon764 merged 7 commits into
mainfrom
develop

Conversation

@Huygon764
Copy link
Copy Markdown
Contributor

No description provided.

gianalarcon and others added 7 commits May 20, 2026 09:51
* docs: add llms.txt intro page for AI agents (#256)

Add a GitBook-friendly page introducing PolyPay's llms.txt support so
non-technical readers can discover the feature and link AI agents to
the live playbook.

- New page docs/llms-txt-for-agents.md covering what llms.txt is, the
  live endpoint, the five integration flows it documents, two ways to
  wire an agent up, and compatibility notes.
- Add the page to docs/SUMMARY.md between x402 and Architecture.
- Fix stale api.polypay.xyz references in docs/x402-deposits.md to the
  real api.polypay.pro host.

* feat(x402): add Coinbase CDP bazaar deposit route for agentic.market listing (#260)

Adds a second x402 deposit endpoint /x402/bazaar/deposit/:multisig that
routes through Coinbase CDP facilitator instead of PayAI, so the resource
gets indexed in CDP discovery and surfaces on agentic.market.

The default /x402/deposit/:multisig path keeps using PayAI (better rate
limits, simpler auth) — no UI change. CDP path activates implicitly when
CDP_API_KEY_ID is set; otherwise it returns a clear config error.

CDP requires Ed25519 JWT signed per-request (2-min TTL), so the service
now lazy-imports @coinbase/x402 createAuthHeader to produce the
Authorization header. Payment requirements for the CDP path also embed a
declareDiscoveryExtension-shaped extensions.bazaar block (strict JSON
Schema), without which CDP would settle but not index.

Includes scripts/bazaar-bootstrap.ts to produce the first real settlement
that triggers CDP indexing — bootstrap must run against a deployed
backend (the resource URL ends up in the catalog).

Refs #259

---------

Co-authored-by: BoHsuu <115441679+Huygon764@users.noreply.github.com>
…272)

Two independent reasons the deposit endpoint was never cataloged in the
CDP x402 Bazaar, both confirmed against @x402/extensions/bazaar source:

- processDeposit threw 400 when X-PAYMENT was missing. The CDP Bazaar
  crawls the endpoint with the bazaar-extension input (no payment) and
  only indexes resources that answer 402. Now returns 402 + the
  PaymentRequired body (canonical x402 unpaid response).

- extractDiscoveryInfo reads the bazaar extension from
  paymentPayload.extensions["bazaar"] for v2; the CDP settle payload
  sent extensions:{}. Attach the discovery extension (and resource
  description/mimeType) to the v2 payload so settlement catalogs it.

Also add routeTemplate so the multisig-address path segment normalizes
to /:multisigAddress, and align schema.required with the SDK
(createBodyDiscoveryExtension) so info validates under Ajv 2020.
* chore(backend): horizen testnet wipe script + e2e fixes after chainId require

- Add scripts/wipe-horizen-testnet.ts (yarn wipe:horizen-testnet) to drop
  all chainId 2651420 accounts + their transactions/votes/signers/contacts
  /reserved-nonces. Used after the Horizen testnet zkVerify address swap
  to clear stale state on staging. Safety: refuses when APP_NETWORK=mainnet,
  unlinks batch_items.contactId before cascading account deletes,
  --dry-run prints counts without touching data.

- Pass chainId in e2e + staging-e2e test utilities for reserveNonce and
  createTransaction calls. The endpoints started requiring chainId after
  the (address, chainId) account key rollout; the tests still sent the
  legacy shape and got 400.

- stagingExecuteTransaction: fall back to polling GET /transactions/:txId
  when the initial POST hangs up (socket reset by edge / proxy idle
  timeout) instead of bubbling a cryptic ECONNRESET. Server already
  persists txHash right after on-chain submission so the poll is safe.

* chore(docker): include backend scripts/ in runner image for Cloud Run Jobs
…278)

* refactor(nextjs): dedupe shared utils and split batch contacts modal

- Reuse formatAddress/formatCommitment for address/commitment truncation
- Fix copyToClipboard (copy then notify, error on unavailable) and unify call sites
- Add notifyError helper; replace 17 inline error notifications
- Add useTokenResolver hook; drop duplicated getTokenByAddress wrappers
- Extract createFormControl factory shared by FormInput/FormTextarea
- Split 763-line CreateBatchFromContactsModal into step components + types

* docs: fix outdated setup, schema, API and ZK details

- getting-started: Node >=20.18.3, remove duplicate clone keyword
- database-connection-guide: 18 tables with full list, drop nonexistent users.name column
- api-documentation: remove unimplemented PATCH /users/me
- zero-knowledge-implementation: correct identity message to noir-identity
@Huygon764 Huygon764 merged commit 654ca7b into main May 22, 2026
5 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

Development

Successfully merging this pull request may close these issues.

2 participants