@arcnow/mcp 0.1.2 → 0.2.0
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/README.md +66 -43
- package/dist/config.d.ts +13 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +27 -16
- package/dist/config.js.map +1 -1
- package/dist/format.d.ts +31 -2
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +88 -1
- package/dist/format.js.map +1 -1
- package/dist/sdk-port.d.ts +23 -6
- package/dist/sdk-port.d.ts.map +1 -1
- package/dist/sdk-port.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +35 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +8 -7
- package/dist/tools/errors.js.map +1 -1
- package/dist/tools/pool.d.ts +24 -18
- package/dist/tools/pool.d.ts.map +1 -1
- package/dist/tools/pool.js +63 -50
- package/dist/tools/pool.js.map +1 -1
- package/dist/tools/read.d.ts +6 -2
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +110 -96
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/venue.d.ts +3 -3
- package/dist/tools/venue.d.ts.map +1 -1
- package/dist/tools/venue.js +8 -7
- package/dist/tools/venue.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +85 -63
- package/dist/tools/write.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,16 +23,19 @@ npx -y @arcnow/mcp --allow-writes # can spend, if ARCNOW_PRIVATE_KEY is in the
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Every client below runs that same command with `ARCNOW_MCP_NETWORK` set. The
|
|
26
|
-
examples say `arc-mainnet`, where [arcnow.io](https://arcnow.io) is live
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
examples say `arc-mainnet`, where [arcnow.io](https://arcnow.io) is live — Arc
|
|
27
|
+
mainnet, chain 5042. `arc-testnet` is the rehearsal network: the same contracts
|
|
28
|
+
at other addresses, with test funds. With the variable unset the server starts
|
|
29
|
+
on `arc-testnet`, so nobody is pointed at real money by omission.
|
|
30
30
|
|
|
31
31
|
**Write mode, in every client:** add `--allow-writes` to the arguments and put
|
|
32
32
|
the signing key **in a file** the server reads through `ARCNOW_PRIVATE_KEY_FILE`
|
|
33
33
|
— never the key itself in a client config, which gets committed and
|
|
34
|
-
screenshotted. Read-only needs no key at all.
|
|
35
|
-
|
|
34
|
+
screenshotted. Read-only needs no key at all. **On `arc-mainnet` every write is
|
|
35
|
+
real money**: the spend caps below are what bounds a mistake, and the server
|
|
36
|
+
says so at startup and in every session. Every variable is in
|
|
37
|
+
[Configuration](#configuration); [`examples/`](examples) has both shapes — the
|
|
38
|
+
writes-enabled one on `arc-testnet`, as a rehearsal.
|
|
36
39
|
|
|
37
40
|
### Claude Code
|
|
38
41
|
|
|
@@ -206,13 +209,13 @@ Nine read tools, always published. Six write tools, published only on opt-in.
|
|
|
206
209
|
| tool | what it answers |
|
|
207
210
|
| --- | --- |
|
|
208
211
|
| `arcnow_network` | Which chain, which contracts, which graduation venues, whether a v4 router is configured for graduated tokens, **and which mode this server is in**. The first call of any session that might trade. |
|
|
209
|
-
| `arcnow_quote_tokens` | The quote tokens a launch may use — native USDC and the ERC-20s the quote registry allowlists, such as EURC — each with its symbol, name, decimals, address, whether it is native, its launch fee in its own units, whether the registry accepts it now, and **this server's spend cap for it**. At most three `eth_call`s. On a chain with no quote registry
|
|
212
|
+
| `arcnow_quote_tokens` | The quote tokens a launch may use — native USDC and the ERC-20s the quote registry allowlists, such as EURC — each with its symbol, name, decimals, address, whether it is native, its launch fee in its own units (zero on both networks: launching is free, and the figure is read from the registry rather than assumed), whether the registry accepts it now, and **this server's spend cap for it**. At most three `eth_call`s. On a chain with no quote registry, it says so, shows the error, and lists the network's own quote-token metadata with nothing known to be accepted. |
|
|
210
213
|
| `arcnow_list_tokens` | Recent launches, newest first, from the launchpad's `Launched` log, back to the block it was deployed in. Reports the block window it actually covered — see [the SDK gap](#what-made-a-clean-surface-awkward). |
|
|
211
|
-
| `arcnow_token` | One token in full: metadata, **its quote token** (address, symbol, decimals, native or ERC-20), its curve's parameters (`r0Wad`, `y0Wad`), curve state, price, progress, and **where it trades now** — its curve, its v4 pool (with the router, whether it reaches the pool, the PoolManager, the pool's LP fee
|
|
212
|
-
| `arcnow_quote_buy` | What an amount of the token's quote (`quoteIn`) would buy, wherever the token trades. On a curve: tokens out, the 1% fee
|
|
214
|
+
| `arcnow_token` | One token in full: metadata, **its quote token** (address, symbol, decimals, native or ERC-20), its curve's parameters (`r0Wad`, `y0Wad`), curve state, price, progress, and **where it trades now** — its curve, its v4 pool (with the router, whether it reaches the pool, the PoolManager, what a trade there costs — the hook's 0.80% and the pool's 0.20% LP fee, read off the pool — how the hook splits its part, and what it holds accrued), or nowhere. Takes a token *or* a curve address. |
|
|
215
|
+
| `arcnow_quote_buy` | What an amount of the token's quote (`quoteIn`) would buy, wherever the token trades. On a curve: tokens out, the 1% fee split four ways — creator, platform, referrer, protocol — with exactly who receives each share, the average fill price, minimum-out floors at four tolerances. In a pool: a quote that says it is a pool quote, with the fee hook's 0.80% and the pool's own 0.20% LP fee apart (1.00% in all, both read off the pool), the hook's three-way split, the average fill against the pool's spot price, and the price impact. |
|
|
213
216
|
| `arcnow_quote_sell` | The same for a sell — plus, on a curve, that selling needs no approval, ever, and in a pool, that it does, and how much the holder has approved already. |
|
|
214
|
-
| `arcnow_quote_launch` | What a launch in a given `quote` (native USDC by default, or an ERC-20 by symbol or address) would cost before anything is spent
|
|
215
|
-
| `arcnow_platform` | A platform's fee split, its default migrator and its curve template — every share printed both as bps of the fee and as a percentage of a trade. |
|
|
217
|
+
| `arcnow_quote_launch` | What a launch in a given `quote` (native USDC by default, or an ERC-20 by symbol or address) would cost before anything is spent: the launch fee the registry reports (zero — launching is free), the initial buy and its own trade fee, with the predicted token and curve addresses. |
|
|
218
|
+
| `arcnow_platform` | A platform's four-way fee split, its default migrator and its curve template — every share printed both as bps of the fee and as a percentage of a trade. |
|
|
216
219
|
| `arcnow_list_platforms` | The registry's actual enumeration. Complete, unlike the token list. |
|
|
217
220
|
|
|
218
221
|
The read tools are the valuable part. An assistant that can answer *what is this
|
|
@@ -227,13 +230,16 @@ mistake that costs money:
|
|
|
227
230
|
reports an *average fill price* next to the spot price, and the tool
|
|
228
231
|
descriptions tell the model to quote rather than multiply.
|
|
229
232
|
- **A share of the fee is not a share of the trade.** 3000 bps of the fee is
|
|
230
|
-
0.30% of a trade. Both are printed, every time.
|
|
233
|
+
0.30% of a trade. Both are printed, every time. The fee has **four parties** —
|
|
234
|
+
creator, platform, referrer, protocol; arcnow.io's own split is 3000 / 3500 /
|
|
235
|
+
1000 / 2500 — and no developer share: no tool takes a `developer`.
|
|
231
236
|
- **Graduated and migrated are different states.** A curve can have stopped
|
|
232
237
|
trading permanently while its pool was never created, and then the token
|
|
233
238
|
trades *nowhere*. That is reported as its own thing, with the rescue named.
|
|
234
239
|
- **A pool quote is not a curve quote.** It says so, and it names two charges,
|
|
235
|
-
not one:
|
|
236
|
-
Uniswap LP fee
|
|
240
|
+
not one: the fee hook's **0.80%**, taken in the pool's quote and split creator /
|
|
241
|
+
platform / protocol, and the pool's own **0.20%** Uniswap LP fee — 1.00% in all,
|
|
242
|
+
the same as the curve charged. Both rates are read off the pool, never assumed.
|
|
237
243
|
|
|
238
244
|
### Write
|
|
239
245
|
|
|
@@ -272,8 +278,8 @@ set a boolean — but does make the assertion explicit in the transcript.
|
|
|
272
278
|
Zero means "fill me at any price", which on a public mempool is a donation,
|
|
273
279
|
so it has to be typed rather than omitted.
|
|
274
280
|
5. **Nothing that does not apply.** A curve trade pays the sender and has no
|
|
275
|
-
`recipient`; a pool swap has no `referrer`
|
|
276
|
-
|
|
281
|
+
`recipient`; a pool swap has no `referrer` and cannot graduate anything, so
|
|
282
|
+
`gasLimit` guards nothing there. Each is **refused** on the
|
|
277
283
|
venue it does not exist on, before anything is quoted or sent — never
|
|
278
284
|
silently dropped. The SDK refuses the same things; this server says so first.
|
|
279
285
|
6. **The report.** Each tool states the exact cost and the exact effect, and
|
|
@@ -311,15 +317,21 @@ four tools work across that line. Three states, told apart out loud:
|
|
|
311
317
|
| state | quote | buy / sell |
|
|
312
318
|
| --- | --- | --- |
|
|
313
319
|
| on its curve | a curve quote, as before | through the curve; `recipient` refused |
|
|
314
|
-
| graduated **and** migrated | a pool quote, labelled as one | through arcnow.io's router; `gasLimit`, `referrer
|
|
320
|
+
| graduated **and** migrated | a pool quote, labelled as one | through arcnow.io's router; `gasLimit`, `referrer` refused |
|
|
315
321
|
| graduated, **not** migrated | refused: tradeable nowhere until `migrate()` | refused, naming `arcnow_migrate` |
|
|
316
322
|
|
|
317
323
|
**What a pool quote contains.** The SDK prices a pool trade by simulating the
|
|
318
324
|
real swap through the router, so the figures are the real fill with two charges
|
|
319
|
-
inside them. The quote takes them back out and names each:
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
325
|
+
inside them. The quote takes them back out and names each: the fee hook's 0.80%,
|
|
326
|
+
which it takes in the pool's quote and splits creator 5000 / platform 1875 /
|
|
327
|
+
protocol 3125 bps (a pool swap has no referrer), and the pool's own 0.20% LP fee
|
|
328
|
+
— the pool key's `fee`, in hundredths of a bip — which Uniswap charges and the
|
|
329
|
+
pool's liquidity keeps. 1.00% in all, the same as the curve. Every rate comes
|
|
330
|
+
from the SDK's `Pool.fees()`, which reads the hook's `feeBps()` and
|
|
331
|
+
`feeConfigOf()` and the key; this server holds no fee constant, so a pool whose
|
|
332
|
+
key carries another LP fee is reported at the fee it carries. It shows the
|
|
333
|
+
average fill price, the pool's spot price, and the price impact between them.
|
|
334
|
+
The SDK has no
|
|
323
335
|
reader for a pool's price, so the spot price is the SDK's own quote of a
|
|
324
336
|
probe buy with both fees taken out — 0.000001 of an 18-decimal quote, or 10,000 raw
|
|
325
337
|
units of a smaller one (0.01 EURC), so the fees' raw-unit rounding stays below one
|
|
@@ -362,32 +374,35 @@ decoded contract error or revert *failed on-chain*. `RpcFailure` *could not
|
|
|
362
374
|
reach the chain*: the public endpoint rate-limits, and that says nothing about
|
|
363
375
|
the token.
|
|
364
376
|
|
|
365
|
-
### One curve
|
|
377
|
+
### One curve, on two networks
|
|
366
378
|
|
|
367
379
|
arcnow.io has one bonding curve — the constant-product curve,
|
|
368
|
-
`arcnow/bonding-curve@
|
|
380
|
+
`arcnow/bonding-curve@4.x.x`, priced in a quote token, with parameters `r0Wad`
|
|
369
381
|
(the virtual quote reserve at launch, in WAD) and `y0Wad` (the virtual token
|
|
370
382
|
reserve at launch) — launched through one contract stack, and a fee hook,
|
|
371
|
-
`arcnow/arc-now-fee-hook@
|
|
372
|
-
|
|
373
|
-
|
|
383
|
+
`arcnow/arc-now-fee-hook@4.x.x`, that takes its 0.80% in the pool, accrues each
|
|
384
|
+
fee as a PoolManager claim and pays it out at the start of a later swap. The same
|
|
385
|
+
build is live on Arc mainnet (`arc-mainnet`) and Arc testnet (`arc-testnet`), at
|
|
386
|
+
different addresses; a token address from one means nothing on the other, and
|
|
387
|
+
the server's instructions say which network a session is on.
|
|
374
388
|
|
|
375
389
|
- **Nothing a tool prints names a curve kind or a stack.** There is one of
|
|
376
390
|
each. `arcnow_token` prints the curve's own parameters, and a pool trade
|
|
377
391
|
reports the fees it paid out from earlier trades (`FeesDistributed`) apart
|
|
378
392
|
from the trader's fill.
|
|
379
393
|
- **Any other version is refused by name, and never priced.** A curve or a
|
|
380
|
-
platform of another version — the
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
394
|
+
platform of another version — the retired multi-quote stack, `@3.x.x`, which
|
|
395
|
+
carried a developer share and whose data was wiped; the `@2.x.x` contracts
|
|
396
|
+
before it; the retired linear curve, `@1.x.x` — is the SDK's
|
|
397
|
+
`UnknownCurveVersion`, naming the version, before any quote or send. A fee hook
|
|
398
|
+
of another version — the `@3.x.x` hook that charged 1% in the pool included —
|
|
399
|
+
is `UnknownHookVersion`, and neither its accrual nor its rates are read.
|
|
385
400
|
- **An address that is not a curve is refused by name.** The SDK's
|
|
386
401
|
`AddressIsNotACurve` for an arcnow.io token's address is followed to its curve;
|
|
387
402
|
for anything else — an ordinary ERC-20, an account, nothing at all — it is the
|
|
388
403
|
refusal, saying the address is not an arcnow.io token either.
|
|
389
404
|
- **`arcnow_list_tokens` reads the one launchpad**, back to the block its stack
|
|
390
|
-
was deployed in (
|
|
405
|
+
was deployed in (21,179,866 on Arc mainnet, 62,386,232 on Arc testnet).
|
|
391
406
|
|
|
392
407
|
---
|
|
393
408
|
|
|
@@ -399,7 +414,7 @@ where an operator's decisions belong. See
|
|
|
399
414
|
|
|
400
415
|
| variable | default | what it does |
|
|
401
416
|
| --- | --- | --- |
|
|
402
|
-
| `ARCNOW_MCP_NETWORK` | `arc-testnet` | The network preset
|
|
417
|
+
| `ARCNOW_MCP_NETWORK` | `arc-testnet` | The network preset: `arc-mainnet` (Arc mainnet, chain 5042, where arcnow.io is live — **real money**) or `arc-testnet` (the rehearsal, chain 5042002). Both come from the SDK's `networks.json`; a name it does not know refuses to start, naming the two it does. The default is the rehearsal on purpose. |
|
|
403
418
|
| `ARCNOW_MCP_NETWORK_FILE` | unset | A path to a JSON document in the SDK's `CustomNetwork` shape, for a deployment no preset names — a local anvil stack, or a stack deployed onto a fork. **Mutually exclusive with a preset name.** See [below](#a-network-the-sdk-has-no-preset-for). |
|
|
404
419
|
| `ARCNOW_RPC_URL` | the preset's endpoint | Override the endpoint. Redacted of credentials before it is ever printed. |
|
|
405
420
|
| `ARCNOW_MCP_ALLOW_WRITES` | unset | `1` enables the write tools. `--allow-writes` does the same. |
|
|
@@ -422,7 +437,9 @@ in EURC. So every quote token has its own cap, in its own units:
|
|
|
422
437
|
- `ARCNOW_MCP_MAX_SPEND_USDC` caps native USDC, and defaults to `100`.
|
|
423
438
|
- `ARCNOW_MCP_MAX_SPEND_<SYMBOL>` caps each other quote — `ARCNOW_MCP_MAX_SPEND_EURC=50`
|
|
424
439
|
is 50 EURC. The symbol is upper-cased; a character that is not a letter or a
|
|
425
|
-
digit is written `_`.
|
|
440
|
+
digit is written `_`. The cap is matched to the network's own token by
|
|
441
|
+
address: on `arc-mainnet` that is EURC at `0xbEf5f6d5…`, on `arc-testnet` at
|
|
442
|
+
`0x89b50855…`, each read from the preset.
|
|
426
443
|
|
|
427
444
|
It fails closed, four ways:
|
|
428
445
|
|
|
@@ -439,8 +456,8 @@ It fails closed, four ways:
|
|
|
439
456
|
- **Two quote tokens of the network sharing a symbol refuses to start** it: one
|
|
440
457
|
variable cannot mean two caps.
|
|
441
458
|
|
|
442
|
-
What counts: a launch spends its `totalCost` — the
|
|
443
|
-
|
|
459
|
+
What counts: a launch spends its `totalCost` — the initial buy plus any launch
|
|
460
|
+
fee (zero on both networks), in the launch's quote; a buy spends its `quoteIn`. For an ERC-20 quote the
|
|
444
461
|
SDK approves exactly that spend, so the same check covers the approve. The
|
|
445
462
|
caller's own `maxTotalCost` is read in the same quote. The startup banner,
|
|
446
463
|
`arcnow_network` and `arcnow_quote_tokens` show every cap, and
|
|
@@ -450,7 +467,7 @@ caller's own `maxTotalCost` is read in the same quote. The startup banner,
|
|
|
450
467
|
### A network the SDK has no preset for
|
|
451
468
|
|
|
452
469
|
`ARCNOW_MCP_NETWORK_FILE=/path/to/network.json` points the server at a
|
|
453
|
-
deployment by its addresses — a local anvil stack, or the
|
|
470
|
+
deployment by its addresses — a local anvil stack, or the stack this
|
|
454
471
|
repository's fork proof deploys onto a fork of Arc testnet:
|
|
455
472
|
|
|
456
473
|
```json
|
|
@@ -502,7 +519,7 @@ token. Gas is always native USDC, whatever a token's quote.
|
|
|
502
519
|
`@arcnow/sdk` is published to npm from
|
|
503
520
|
[arcnow-io/arcnow-io-sdk](https://github.com/arcnow-io/arcnow-io-sdk), one tagged
|
|
504
521
|
release per version, and this server depends on it at an **exact version** —
|
|
505
|
-
`"@arcnow/sdk": "0.
|
|
522
|
+
`"@arcnow/sdk": "0.2.0"`, never `^0.2.0`. The tool descriptions promise what one
|
|
506
523
|
known SDK does; a range would let `npm install` move the code under them with no
|
|
507
524
|
commit here saying so. Moving the pin is a pull request.
|
|
508
525
|
|
|
@@ -511,10 +528,10 @@ commit here saying so. Moving the pin is a pull request.
|
|
|
511
528
|
```json
|
|
512
529
|
"sdk": {
|
|
513
530
|
"package": "@arcnow/sdk",
|
|
514
|
-
"version": "0.
|
|
531
|
+
"version": "0.2.0",
|
|
515
532
|
"integrity": "sha512-…",
|
|
516
533
|
"public_repo": "arcnow-io/arcnow-io-sdk",
|
|
517
|
-
"tag": "v0.
|
|
534
|
+
"tag": "v0.2.0",
|
|
518
535
|
"why": ["what this server uses from that SDK, in prose"]
|
|
519
536
|
}
|
|
520
537
|
```
|
|
@@ -548,7 +565,8 @@ what can be proved offline:
|
|
|
548
565
|
- **A write refuses without the opt-in**, names `--allow-writes` and
|
|
549
566
|
`ARCNOW_PRIVATE_KEY`, and has sent nothing.
|
|
550
567
|
- **Both spend ceilings stop a transaction**, on a curve and in a pool, per
|
|
551
|
-
quote token
|
|
568
|
+
quote token, on either preset — mainnet's EURC is capped by its mainnet
|
|
569
|
+
address; a typo'd cap variable refuses to start; a USDC cap does not apply
|
|
552
570
|
to EURC or the reverse.
|
|
553
571
|
- **Every amount is labelled with its own quote**, an input with more decimals
|
|
554
572
|
than its quote is refused, and an ERC-20 approve is reported whether it was
|
|
@@ -556,8 +574,13 @@ what can be proved offline:
|
|
|
556
574
|
- **The gas trap is handled**, the venues are told apart (a stranded token is
|
|
557
575
|
refused everywhere with `arcnow_migrate` named), the sell approval is never
|
|
558
576
|
sent without `approveRouter: true` and never for more than the amount sold,
|
|
559
|
-
and the reports say true things:
|
|
560
|
-
|
|
577
|
+
and the reports say true things: a curve fee broken out four ways, a pool's
|
|
578
|
+
0.80% and 0.20% read off the pool and never assumed, a free launch printed
|
|
579
|
+
from the registry's zero, average fill price apart from spot, graduated apart
|
|
580
|
+
from migrated.
|
|
581
|
+
- **Both presets resolve** to the SDK's live deployments, `arc-mainnet` says it
|
|
582
|
+
is real money, and nothing of one network's addresses appears in a report
|
|
583
|
+
about the other.
|
|
561
584
|
- **The wire works**: a real MCP client against a real MCP server over an
|
|
562
585
|
in-memory transport.
|
|
563
586
|
|
package/dist/config.d.ts
CHANGED
|
@@ -57,7 +57,15 @@
|
|
|
57
57
|
* the network sharing a symbol is a startup error, because their two caps would
|
|
58
58
|
* be one variable.
|
|
59
59
|
*
|
|
60
|
-
* #
|
|
60
|
+
* # Two presets, and a network the SDK has no preset for
|
|
61
|
+
*
|
|
62
|
+
* `ARCNOW_MCP_NETWORK` is `arc-mainnet` — Arc mainnet, chain 5042, where
|
|
63
|
+
* arcnow.io is live and every write spends real money — or `arc-testnet`, the
|
|
64
|
+
* rehearsal network at chain 5042002, which runs the same contracts at other
|
|
65
|
+
* addresses. Both resolve through the SDK's `resolveNetwork`, which is the only
|
|
66
|
+
* source of an address in this server. The default is `arc-testnet`: a server
|
|
67
|
+
* started with no network named should not be pointed at real money by
|
|
68
|
+
* omission.
|
|
61
69
|
*
|
|
62
70
|
* `ARCNOW_MCP_NETWORK_FILE` names a JSON document in the SDK's `CustomNetwork`
|
|
63
71
|
* shape — `rpcUrl`, `chainId`, `contracts`, and optionally `quoteTokens` and
|
|
@@ -176,9 +184,10 @@ export declare const DEFAULTS: {
|
|
|
176
184
|
readonly network: "arc-testnet";
|
|
177
185
|
/**
|
|
178
186
|
* 100 USDC a call. Low enough that a prompt-injected "buy everything" is a
|
|
179
|
-
* bounded accident and not a bounded-by-your-balance one; high enough that
|
|
180
|
-
*
|
|
181
|
-
* operator who means to spend more says so once, at startup, on
|
|
187
|
+
* bounded accident and not a bounded-by-your-balance one; high enough that a
|
|
188
|
+
* real first buy fits under it (launching itself is free on arcnow.io's
|
|
189
|
+
* networks). An operator who means to spend more says so once, at startup, on
|
|
190
|
+
* purpose — and on arc-mainnet every one of these is real money.
|
|
182
191
|
*
|
|
183
192
|
* Native USDC only. Every other quote has NO default: spending it is refused
|
|
184
193
|
* until the operator names a cap for it.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -57,7 +57,15 @@
|
|
|
57
57
|
* the network sharing a symbol is a startup error, because their two caps would
|
|
58
58
|
* be one variable.
|
|
59
59
|
*
|
|
60
|
-
* #
|
|
60
|
+
* # Two presets, and a network the SDK has no preset for
|
|
61
|
+
*
|
|
62
|
+
* `ARCNOW_MCP_NETWORK` is `arc-mainnet` — Arc mainnet, chain 5042, where
|
|
63
|
+
* arcnow.io is live and every write spends real money — or `arc-testnet`, the
|
|
64
|
+
* rehearsal network at chain 5042002, which runs the same contracts at other
|
|
65
|
+
* addresses. Both resolve through the SDK's `resolveNetwork`, which is the only
|
|
66
|
+
* source of an address in this server. The default is `arc-testnet`: a server
|
|
67
|
+
* started with no network named should not be pointed at real money by
|
|
68
|
+
* omission.
|
|
61
69
|
*
|
|
62
70
|
* `ARCNOW_MCP_NETWORK_FILE` names a JSON document in the SDK's `CustomNetwork`
|
|
63
71
|
* shape — `rpcUrl`, `chainId`, `contracts`, and optionally `quoteTokens` and
|
|
@@ -68,7 +76,7 @@
|
|
|
68
76
|
*/
|
|
69
77
|
import { readFileSync } from "node:fs";
|
|
70
78
|
import { privateKeyToAccount } from "viem/accounts";
|
|
71
|
-
import { isArcNowError, NATIVE_USDC, QuoteAmount, resolveNetwork } from "@arcnow/sdk";
|
|
79
|
+
import { isArcNowError, NATIVE_USDC, NETWORKS, QuoteAmount, resolveNetwork } from "@arcnow/sdk";
|
|
72
80
|
/** Bad configuration, phrased for the person who wrote it. */
|
|
73
81
|
export class ConfigError extends Error {
|
|
74
82
|
name = "ConfigError";
|
|
@@ -180,9 +188,10 @@ export const DEFAULTS = {
|
|
|
180
188
|
network: "arc-testnet",
|
|
181
189
|
/**
|
|
182
190
|
* 100 USDC a call. Low enough that a prompt-injected "buy everything" is a
|
|
183
|
-
* bounded accident and not a bounded-by-your-balance one; high enough that
|
|
184
|
-
*
|
|
185
|
-
* operator who means to spend more says so once, at startup, on
|
|
191
|
+
* bounded accident and not a bounded-by-your-balance one; high enough that a
|
|
192
|
+
* real first buy fits under it (launching itself is free on arcnow.io's
|
|
193
|
+
* networks). An operator who means to spend more says so once, at startup, on
|
|
194
|
+
* purpose — and on arc-mainnet every one of these is real money.
|
|
186
195
|
*
|
|
187
196
|
* Native USDC only. Every other quote has NO default: spending it is refused
|
|
188
197
|
* until the operator names a cap for it.
|
|
@@ -260,15 +269,9 @@ export function loadConfig(env, argv = [], readFile = (path) => readFileSync(pat
|
|
|
260
269
|
+ "or the deployment the file describes, and guessing which one gets real addresses wrong.");
|
|
261
270
|
}
|
|
262
271
|
const network = namedNetwork ?? DEFAULTS.network;
|
|
263
|
-
//
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
if (networkFile === undefined && network === "arc-mainnet") {
|
|
267
|
-
throw new ConfigError("arc-mainnet does not exist. arcnow.io is not deployed to an Arc mainnet, every "
|
|
268
|
-
+ "address in the SDK's preset for it is null on purpose, and this server will not "
|
|
269
|
-
+ "invent one. Use arc-testnet, or point ARCNOW_MCP_NETWORK at a network name the "
|
|
270
|
-
+ "SDK knows.");
|
|
271
|
-
}
|
|
272
|
+
// Both presets — arc-mainnet, where arcnow.io is live with real money, and
|
|
273
|
+
// arc-testnet, the rehearsal — resolve through the SDK, which is the only
|
|
274
|
+
// source of an address here. A name the SDK does not know is refused by it.
|
|
272
275
|
const networkConfig = networkFile === undefined
|
|
273
276
|
? resolvePreset(network)
|
|
274
277
|
: readNetworkFile(networkFile, readFile);
|
|
@@ -350,14 +353,19 @@ export function loadConfig(env, argv = [], readFile = (path) => readFileSync(pat
|
|
|
350
353
|
warnings,
|
|
351
354
|
});
|
|
352
355
|
}
|
|
353
|
-
/**
|
|
356
|
+
/**
|
|
357
|
+
* A preset, resolved by the SDK; its refusal said as a configuration error.
|
|
358
|
+
* The SDK's presets are `arc-mainnet` and `arc-testnet` (`NETWORKS`), and the
|
|
359
|
+
* refusal names them so a typo is answered with the two real choices.
|
|
360
|
+
*/
|
|
354
361
|
function resolvePreset(network) {
|
|
355
362
|
try {
|
|
356
363
|
return resolveNetwork(network);
|
|
357
364
|
}
|
|
358
365
|
catch (cause) {
|
|
359
366
|
throw new ConfigError(`${network} is not a network the SDK can build a client for: ${describeSdkError(cause)} `
|
|
360
|
-
+ "
|
|
367
|
+
+ `The presets are ${NETWORKS.join(" and ")}; use one of them, or describe the deployment `
|
|
368
|
+
+ "in ARCNOW_MCP_NETWORK_FILE.", { cause });
|
|
361
369
|
}
|
|
362
370
|
}
|
|
363
371
|
/**
|
|
@@ -504,6 +512,9 @@ export function startupBanner(config) {
|
|
|
504
512
|
: `${cap.format()} per write call (${variable})`}`);
|
|
505
513
|
});
|
|
506
514
|
lines.push(" reminder a launch is irreversible and a token's parameters can never be changed.");
|
|
515
|
+
if (config.network === "arc-mainnet") {
|
|
516
|
+
lines.push(" reminder this is Arc MAINNET: every write here spends real money.");
|
|
517
|
+
}
|
|
507
518
|
}
|
|
508
519
|
else {
|
|
509
520
|
lines.push(" to write restart with --allow-writes and a key in ARCNOW_PRIVATE_KEY. The key is "
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/format.d.ts
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* @module
|
|
26
26
|
*/
|
|
27
27
|
import type { Address } from "viem";
|
|
28
|
-
import type { Bps, CurveParams, NetworkConfig, QuoteTokenInfo, Tokens } from "@arcnow/sdk";
|
|
28
|
+
import type { Bps, CurveParams, FeeConfig, FeeSplit, NetworkConfig, PoolFees, QuoteTokenInfo, Tokens } from "@arcnow/sdk";
|
|
29
29
|
import { QuoteAmount } from "@arcnow/sdk";
|
|
30
30
|
/** The zero address, which on Arc is a real account, not a null. */
|
|
31
31
|
export declare const ZERO_ADDRESS: "0x0000000000000000000000000000000000000000";
|
|
@@ -45,6 +45,35 @@ export declare function quoteLine(token: QuoteTokenInfo): string;
|
|
|
45
45
|
export declare function addr(value: string): string;
|
|
46
46
|
/** A share of the fee, said both ways — the single easiest thing to misread. */
|
|
47
47
|
export declare function share(bps: Bps, tradeFeeBps: Bps): string;
|
|
48
|
+
/** `0.8%` — a rate in basis points OF THE TRADE, as a percentage of the trade. */
|
|
49
|
+
export declare function bpsPercent(bps: Bps): string;
|
|
50
|
+
/**
|
|
51
|
+
* A v4 LP fee, in hundredths of a bip (pips), said both ways:
|
|
52
|
+
* `0.2% (2000 hundredths of a bip)`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function lpFee(pips: number): string;
|
|
55
|
+
/**
|
|
56
|
+
* What a pool trade costs, in one line, from `Pool.fees()`:
|
|
57
|
+
* `1% of the trade in all — 0.8% (80 bps) taken by arcnow.io's fee hook in EURC,
|
|
58
|
+
* plus 0.2% (2000 hundredths of a bip) the pool keeps as its LP fee; the same
|
|
59
|
+
* 1% the curve charged`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function poolFeesLine(fees: PoolFees, quote: QuoteTokenInfo): string;
|
|
62
|
+
/** The hook's rate, said for a row: `0.8% of the trade (80 bps), read from the hook`. */
|
|
63
|
+
export declare function hookFeeRate(fees: PoolFees): string;
|
|
64
|
+
/**
|
|
65
|
+
* Where a curve fee goes: the four parties, each with its amount and the address
|
|
66
|
+
* that receives it. An absent referrer is said to go to the platform, because it
|
|
67
|
+
* does.
|
|
68
|
+
*/
|
|
69
|
+
export declare function curveFeeSplitSection(fee: QuoteAmount, split: FeeSplit, referrer: string | undefined): string;
|
|
70
|
+
/**
|
|
71
|
+
* How a pool's hook splits its 0.80%: three parties, read off the hook. A pool
|
|
72
|
+
* swap names no referrer, so its share is stated as zero rather than omitted.
|
|
73
|
+
*/
|
|
74
|
+
export declare function poolFeeSplitSection(fees: PoolFees): string;
|
|
75
|
+
/** A platform's four-way curve split, one row per party, every share both ways. */
|
|
76
|
+
export declare function curveSplitRows(config: FeeConfig, tradeFee: Bps): [string, string][];
|
|
48
77
|
/** Graduation progress. `progressBps` is out of 10,000, not out of 100. */
|
|
49
78
|
export declare function progress(bps: Bps): string;
|
|
50
79
|
/**
|
|
@@ -65,7 +94,7 @@ export declare function priceMove(from: QuoteAmount, to: QuoteAmount): string;
|
|
|
65
94
|
export declare function venueOf(migrator: Address, config: NetworkConfig): string;
|
|
66
95
|
/**
|
|
67
96
|
* A curve's immutable parameters. arcnow.io has one curve, the constant-product
|
|
68
|
-
* `arcnow/bonding-curve@
|
|
97
|
+
* `arcnow/bonding-curve@4.x.x`, and the SDK prices no other: `r0Wad` is its
|
|
69
98
|
* virtual quote reserve at launch, in 18-decimal WAD of its quote token, and
|
|
70
99
|
* `y0Wad` its virtual token reserve at launch.
|
|
71
100
|
*/
|
package/dist/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EACV,GAAG,EACH,WAAW,EACX,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,cAAc,EACd,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAO,MAAM,aAAa,CAAC;AAE/C,oEAAoE;AACpE,eAAO,MAAM,YAAY,EAAG,4CAAqD,CAAC;AAElF,uFAAuF;AACvF,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEjD;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAGtD;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,mFAAmF;AACnF,wBAAgB,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAMvD;AAED,kEAAkE;AAClE,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1C;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAGxD;AAmBD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAK1E;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAU1D;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAUnF;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGzC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAG5F;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,MAAM,CAKpE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAexE;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAGlF;AAED,8CAA8C;AAC9C,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAI3F;AAED,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAExE;AAED,4EAA4E;AAC5E,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC"}
|
package/dist/format.js
CHANGED
|
@@ -69,6 +69,93 @@ export function share(bps, tradeFeeBps) {
|
|
|
69
69
|
return `${bps.bps} bps of the fee (${bps.percentOfFee()}% of the fee, `
|
|
70
70
|
+ `${bps.percentOfTrade(tradeFeeBps)}% of a trade)`;
|
|
71
71
|
}
|
|
72
|
+
// ── fees ───────────────────────────────────────────────────────────────────
|
|
73
|
+
//
|
|
74
|
+
// Two venues, two fee shapes, and every report says which it is showing.
|
|
75
|
+
//
|
|
76
|
+
// On a CURVE the trade fee is a flat 1% of the trade, split FOUR ways — creator,
|
|
77
|
+
// platform, referrer, protocol — on the split the token's platform configured.
|
|
78
|
+
// There is no developer share: the earlier stack carried one that nothing used,
|
|
79
|
+
// and it fell to the platform. A share whose address is zero at swap time (no
|
|
80
|
+
// referrer named) is paid to the platform as well.
|
|
81
|
+
//
|
|
82
|
+
// In a POOL the trade costs the same 1.00% in all, but as two charges by two
|
|
83
|
+
// parties: arcnow.io's fee hook takes 0.80% of the trade in the pool's quote and
|
|
84
|
+
// splits it creator / platform / protocol (a pool swap names no referrer), and
|
|
85
|
+
// the pool itself keeps a 0.20% LP fee inside its price, which is Uniswap's and
|
|
86
|
+
// not arcnow.io's. Every pool figure here is the SDK's `Pool.fees()`, read off
|
|
87
|
+
// the hook and the pool key — never a constant of this server.
|
|
88
|
+
/** `0.8%` — a rate in basis points OF THE TRADE, as a percentage of the trade. */
|
|
89
|
+
export function bpsPercent(bps) {
|
|
90
|
+
return `${Number(bps.bps) / 100}%`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A v4 LP fee, in hundredths of a bip (pips), said both ways:
|
|
94
|
+
* `0.2% (2000 hundredths of a bip)`.
|
|
95
|
+
*/
|
|
96
|
+
export function lpFee(pips) {
|
|
97
|
+
return `${pips / 10_000}% (${pips} hundredths of a bip)`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* What a pool trade costs, in one line, from `Pool.fees()`:
|
|
101
|
+
* `1% of the trade in all — 0.8% (80 bps) taken by arcnow.io's fee hook in EURC,
|
|
102
|
+
* plus 0.2% (2000 hundredths of a bip) the pool keeps as its LP fee; the same
|
|
103
|
+
* 1% the curve charged`.
|
|
104
|
+
*/
|
|
105
|
+
export function poolFeesLine(fees, quote) {
|
|
106
|
+
return `${bpsPercent(fees.totalBps)} of the trade in all — ${bpsPercent(fees.hookFeeBps)} `
|
|
107
|
+
+ `(${fees.hookFeeBps.bps} bps) taken by arcnow.io's fee hook in ${quote.symbol}, plus `
|
|
108
|
+
+ `${lpFee(fees.lpFeePips)} the pool keeps as its LP fee, inside its price. Both read off `
|
|
109
|
+
+ "the chain: the hook's own feeBps() and the pool key's fee";
|
|
110
|
+
}
|
|
111
|
+
/** The hook's rate, said for a row: `0.8% of the trade (80 bps), read from the hook`. */
|
|
112
|
+
export function hookFeeRate(fees) {
|
|
113
|
+
return `${bpsPercent(fees.hookFeeBps)} of the trade (${fees.hookFeeBps.bps} bps), read from the hook`;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Where a curve fee goes: the four parties, each with its amount and the address
|
|
117
|
+
* that receives it. An absent referrer is said to go to the platform, because it
|
|
118
|
+
* does.
|
|
119
|
+
*/
|
|
120
|
+
export function curveFeeSplitSection(fee, split, referrer) {
|
|
121
|
+
return section(`fee split — where the ${money(fee)} goes, four ways`, [
|
|
122
|
+
["creator", `${money(split.creatorAmount)} → ${addr(split.creator)}`],
|
|
123
|
+
["platform", `${money(split.platformAmount)} → ${addr(split.platform)} — the residual share, `
|
|
124
|
+
+ "plus any share nobody was named for, plus the rounding dust"],
|
|
125
|
+
["referrer", referrer === undefined
|
|
126
|
+
? `${money(split.refAmount)} → no referrer given, so this goes to the platform`
|
|
127
|
+
: `${money(split.refAmount)} → ${addr(split.ref)}`],
|
|
128
|
+
["protocol", `${money(split.protocolAmount)} → ${addr(split.protocol)}`],
|
|
129
|
+
["developer", "none — the fee has four parties; there is no developer share"],
|
|
130
|
+
]);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* How a pool's hook splits its 0.80%: three parties, read off the hook. A pool
|
|
134
|
+
* swap names no referrer, so its share is stated as zero rather than omitted.
|
|
135
|
+
*/
|
|
136
|
+
export function poolFeeSplitSection(fees) {
|
|
137
|
+
const { split } = fees;
|
|
138
|
+
const hook = fees.hookFeeBps;
|
|
139
|
+
return section(`how the fee hook splits its ${bpsPercent(hook)} — read from the hook`, [
|
|
140
|
+
["creator", share(split.creatorShareBps, hook)],
|
|
141
|
+
["platform", `${share(split.platformShareBps, hook)} → ${addr(split.platformRecipient)}`],
|
|
142
|
+
["protocol", `${share(split.protocolShareBps, hook)} → ${addr(split.protocolRecipient)}`],
|
|
143
|
+
["referrer", `${split.refShareBps.bps} bps — a pool swap names no referrer, so there is no `
|
|
144
|
+
+ "referral share here; the LP fee is the pool's own and is not split by anyone"],
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
/** A platform's four-way curve split, one row per party, every share both ways. */
|
|
148
|
+
export function curveSplitRows(config, tradeFee) {
|
|
149
|
+
return [
|
|
150
|
+
["creator", share(config.creatorShareBps, tradeFee)],
|
|
151
|
+
["referrer", `${share(config.refShareBps, tradeFee)} — paid to the platform when a trade `
|
|
152
|
+
+ "names no referrer"],
|
|
153
|
+
["protocol", `${share(config.protocolShareBps, tradeFee)} — protocol-controlled; no platform `
|
|
154
|
+
+ "sets it"],
|
|
155
|
+
["platform", `${share(config.platformShareBps, tradeFee)} — the RESIDUAL: 10000 minus the `
|
|
156
|
+
+ "three above, never an input anywhere in the contracts"],
|
|
157
|
+
];
|
|
158
|
+
}
|
|
72
159
|
/** Graduation progress. `progressBps` is out of 10,000, not out of 100. */
|
|
73
160
|
export function progress(bps) {
|
|
74
161
|
const percent = Number(bps.bps) / 100;
|
|
@@ -119,7 +206,7 @@ export function venueOf(migrator, config) {
|
|
|
119
206
|
// ── the curve ──────────────────────────────────────────────────────────────
|
|
120
207
|
/**
|
|
121
208
|
* A curve's immutable parameters. arcnow.io has one curve, the constant-product
|
|
122
|
-
* `arcnow/bonding-curve@
|
|
209
|
+
* `arcnow/bonding-curve@4.x.x`, and the SDK prices no other: `r0Wad` is its
|
|
123
210
|
* virtual quote reserve at launch, in 18-decimal WAD of its quote token, and
|
|
124
211
|
* `y0Wad` its virtual token reserve at launch.
|
|
125
212
|
*/
|