openzoo 0.49.15 → 0.49.16
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/lib/config.js +31 -14
- package/lib/info.js +9 -1
- package/package.json +3 -3
package/lib/config.js
CHANGED
|
@@ -54,27 +54,45 @@ export const LEOS_MINT = FUNDING_ASSETS[2].mint;
|
|
|
54
54
|
/**
|
|
55
55
|
* EVM-side balances `openzoo balance` reports, grouped by rail. `usd` is a
|
|
56
56
|
* known price (stables); null means "no honest price here" and the CLI prints
|
|
57
|
-
* `?` rather than inventing one.
|
|
58
|
-
*
|
|
59
|
-
*
|
|
57
|
+
* `?` rather than inventing one.
|
|
58
|
+
*
|
|
59
|
+
* ONLY LIST WHAT THE 402 ACCEPTS. The Robinhood memecoins (ODDBALLER / IOU /
|
|
60
|
+
* ROBINHOODS) were removed 2026-08-24 along with every wrapped rail: they were
|
|
61
|
+
* only ever payable through X402Wrapper twins the payer had to mint first, and
|
|
62
|
+
* the gateway no longer offers them. Reporting a balance the user cannot spend
|
|
63
|
+
* reads as "you have funds" and then fails at payment.
|
|
60
64
|
*/
|
|
61
65
|
export const EVM_FUNDING_ASSETS = {
|
|
62
66
|
base: [
|
|
63
67
|
{ symbol: 'USDC', address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', decimals: 6, usd: 1 },
|
|
64
68
|
],
|
|
65
69
|
robinhood: [
|
|
70
|
+
// Canonical Paxos USDG, pinned by ADDRESS: six impersonators on this chain
|
|
71
|
+
// answer symbol() == "USDG" with 41k-111k holders each.
|
|
66
72
|
{ symbol: 'USDG', address: '0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168', decimals: 6, usd: 1 },
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
],
|
|
74
|
+
arbitrum: [
|
|
75
|
+
{ symbol: 'USDC', address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', decimals: 6, usd: 1 },
|
|
76
|
+
],
|
|
77
|
+
optimism: [
|
|
78
|
+
{ symbol: 'USDC', address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', decimals: 6, usd: 1 },
|
|
79
|
+
],
|
|
80
|
+
world: [
|
|
81
|
+
{ symbol: 'USDC', address: '0x79A02482A880bCE3F13e09Da970dC34db4CD24d1', decimals: 6, usd: 1 },
|
|
72
82
|
],
|
|
73
83
|
};
|
|
74
84
|
|
|
75
85
|
/** RPC endpoint for an EVM rail name. */
|
|
76
86
|
export function evmRpcFor(rail) {
|
|
77
|
-
|
|
87
|
+
// A rail with no RPC here reports NO balance at all — silently. Every entry
|
|
88
|
+
// in EVM_FUNDING_ASSETS needs a row, or `openzoo balance` just omits the
|
|
89
|
+
// chain and the user concludes they hold nothing there.
|
|
90
|
+
if (rail === 'base') return config.baseRpcUrl;
|
|
91
|
+
if (rail === 'robinhood') return config.rhRpcUrl;
|
|
92
|
+
if (rail === 'arbitrum') return process.env.OPENZOO_ARBITRUM_RPC || 'https://arb1.arbitrum.io/rpc';
|
|
93
|
+
if (rail === 'optimism') return process.env.OPENZOO_OPTIMISM_RPC || 'https://mainnet.optimism.io';
|
|
94
|
+
if (rail === 'world') return process.env.OPENZOO_WORLD_RPC || 'https://worldchain-mainnet.gateway.tenderly.co';
|
|
95
|
+
return null;
|
|
78
96
|
}
|
|
79
97
|
|
|
80
98
|
/**
|
|
@@ -103,11 +121,10 @@ export function fundingLine(address) {
|
|
|
103
121
|
export const RAIL_FUNDING = {
|
|
104
122
|
solana: { label: 'Solana', assets: ['USDC', 'TOKEN', 'LEOS'] },
|
|
105
123
|
base: { label: 'Base', assets: ['USDC'] },
|
|
106
|
-
robinhood: {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
124
|
+
robinhood: { label: 'Robinhood Chain', assets: ['USDG'] },
|
|
125
|
+
arbitrum: { label: 'Arbitrum', assets: ['USDC'] },
|
|
126
|
+
optimism: { label: 'Optimism', assets: ['USDC'] },
|
|
127
|
+
world: { label: 'World Chain', assets: ['USDC'] },
|
|
111
128
|
};
|
|
112
129
|
|
|
113
130
|
/**
|
package/lib/info.js
CHANGED
|
@@ -13,7 +13,15 @@ export function printAddress() {
|
|
|
13
13
|
console.log(`evm (Base · Robinhood) : ${privateKeyToAccount(evmPrivateKey).address}`);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
// Every rail in EVM_FUNDING_ASSETS needs an entry or the header prints the raw
|
|
17
|
+
// key ("arbitrum") instead of a name.
|
|
18
|
+
const CHAIN_LABEL = {
|
|
19
|
+
base: 'Base',
|
|
20
|
+
robinhood: 'Robinhood Chain',
|
|
21
|
+
arbitrum: 'Arbitrum',
|
|
22
|
+
optimism: 'Optimism',
|
|
23
|
+
world: 'World Chain',
|
|
24
|
+
};
|
|
17
25
|
|
|
18
26
|
function fmtUi(raw, decimals) {
|
|
19
27
|
return Number(raw) / 10 ** decimals;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openzoo",
|
|
3
|
-
"version": "0.49.
|
|
4
|
-
"description": "Local x402-paying proxy + MCP server for openzoo.fun
|
|
3
|
+
"version": "0.49.16",
|
|
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",
|
|
7
7
|
"bin": {
|
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
"openzoo",
|
|
43
43
|
"payments"
|
|
44
44
|
]
|
|
45
|
-
}
|
|
45
|
+
}
|