openzoo 0.50.3 → 0.50.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/openzoo.js CHANGED
@@ -153,8 +153,8 @@ env:
153
153
  OPENZOO_RAIL (unset — force a rail: solana | base | robinhood)
154
154
  OPENZOO_BASE_RPC (https://mainnet.base.org) OPENZOO_RH_RPC (rpc.mainnet.chain.robinhood.com)
155
155
  OPENZOO_MAX_USD_PER_CALL (unset — NO per-call ceiling; set to add one) OPENZOO_DEMO_MAX_USD (0.01)
156
- OPENZOO_ENABLE_RH (0let DEFAULT selection fall through to the Robinhood rail;
157
- OPENZOO_RAIL=robinhood forces it without this)
156
+ OPENZOO_ENABLE_RH (unsetevery offered rail is a fallback, Robinhood tried LAST;
157
+ set 0 to drop Robinhood rows from default selection)
158
158
  OPENZOO_TUNNEL_MAX_USD (unset — NO public-url session ceiling; set to add one) OPENZOO_TUNNEL_TOKEN (pin the api key)
159
159
  OPENZOO_NO_TUNNEL (0 — set 1 for localhost-only, no public url)`;
160
160
 
package/lib/pay.js CHANGED
@@ -138,7 +138,18 @@ export class PayClient {
138
138
  this.walletPath = w.path;
139
139
  this.connection = new Connection(config.rpcUrl, 'confirmed');
140
140
  this.receipts = []; // last paid calls, newest last
141
- this.allowRH = process.env.OPENZOO_ENABLE_RH === '1';
141
+ // EVERY OFFERED RAIL IS A FALLBACK, INCLUDING ROBINHOOD.
142
+ //
143
+ // This was opt-IN (`=== '1'`), which silently deleted every Robinhood row
144
+ // from the candidate list. A wallet holding USDG on Robinhood Chain and
145
+ // nothing else therefore failed with "no payable rail" while sitting on the
146
+ // funds to pay — the exact failure the best-first loop below exists to
147
+ // prevent, reintroduced one layer above it.
148
+ //
149
+ // Robinhood is still ORDERED LAST in orderAccepts(), so this changes only
150
+ // what happens when the rails ahead of it cannot pay. Opt out with
151
+ // OPENZOO_ENABLE_RH=0.
152
+ this.allowRH = process.env.OPENZOO_ENABLE_RH !== '0';
142
153
  }
143
154
 
144
155
  get address() { return this.keypair.publicKey.toBase58(); }
package/lib/x402.js CHANGED
@@ -204,7 +204,7 @@ export function orderAccepts(body, preferredSymbol, { allowRH = false, forceRail
204
204
  ];
205
205
  if (!out.length) {
206
206
  throw new Error(rows.some((a) => railOf(a) === 'robinhood')
207
- ? 'only Robinhood Chain rails offered set OPENZOO_ENABLE_RH=1 or OPENZOO_RAIL=robinhood to use them (the rail settles; the wallet must hold USDG on Robinhood Chain)'
207
+ ? 'only Robinhood Chain rails offered, and they are disabled by OPENZOO_ENABLE_RH=0 unset it to let them through (the rail settles; the wallet must hold USDG on Robinhood Chain)'
208
208
  : 'no payable rail in 402 accepts[]');
209
209
  }
210
210
  return out;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openzoo",
3
- "version": "0.50.3",
3
+ "version": "0.50.4",
4
4
  "description": "Local x402-paying proxy + MCP server for openzoo.fun — point any OpenAI-compatible harness (Cursor, Claude Code, aider, SDKs) at localhost and it pays per call from a local burner wallet. Solana and Base rails live; Robinhood experimental.",
5
5
  "license": "MIT",
6
6
  "type": "module",