neozip-blockchain 0.8.0 → 1.0.5

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.
Files changed (46) hide show
  1. package/README.md +16 -12
  2. package/WHATS_NEW.md +104 -0
  3. package/dist/browser/TokenVerifierBrowser.d.ts.map +1 -1
  4. package/dist/browser/TokenVerifierBrowser.js +14 -10
  5. package/dist/browser/TokenVerifierBrowser.js.map +1 -1
  6. package/dist/constants/index.d.ts +2 -1
  7. package/dist/constants/index.d.ts.map +1 -1
  8. package/dist/constants/index.js +2 -1
  9. package/dist/constants/index.js.map +1 -1
  10. package/dist/constants/servers.d.ts +75 -12
  11. package/dist/constants/servers.d.ts.map +1 -1
  12. package/dist/constants/servers.js +175 -12
  13. package/dist/constants/servers.js.map +1 -1
  14. package/dist/core/contracts.d.ts +5 -0
  15. package/dist/core/contracts.d.ts.map +1 -1
  16. package/dist/core/contracts.js +12 -4
  17. package/dist/core/contracts.js.map +1 -1
  18. package/dist/core/index.d.ts +1 -1
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +2 -1
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/ots/ZipkitOTS.d.ts +8 -1
  25. package/dist/ots/ZipkitOTS.d.ts.map +1 -1
  26. package/dist/ots/ZipkitOTS.js +28 -15
  27. package/dist/ots/ZipkitOTS.js.map +1 -1
  28. package/dist/token-service/TokenServiceAPI.d.ts +3 -0
  29. package/dist/token-service/TokenServiceAPI.d.ts.map +1 -1
  30. package/dist/token-service/TokenServiceAPI.js +20 -22
  31. package/dist/token-service/TokenServiceAPI.js.map +1 -1
  32. package/dist/token-service/TokenServiceClient.d.ts +64 -1
  33. package/dist/token-service/TokenServiceClient.d.ts.map +1 -1
  34. package/dist/token-service/TokenServiceClient.js +78 -8
  35. package/dist/token-service/TokenServiceClient.js.map +1 -1
  36. package/dist/token-service/TokenServiceHelpers.d.ts +9 -1
  37. package/dist/token-service/TokenServiceHelpers.d.ts.map +1 -1
  38. package/dist/token-service/TokenServiceHelpers.js +11 -2
  39. package/dist/token-service/TokenServiceHelpers.js.map +1 -1
  40. package/dist/token-service/index.d.ts +2 -2
  41. package/dist/token-service/index.d.ts.map +1 -1
  42. package/dist/token-service/index.js +10 -3
  43. package/dist/token-service/index.js.map +1 -1
  44. package/dist/types/index.d.ts +8 -1
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/package.json +4 -3
package/README.md CHANGED
@@ -2,12 +2,9 @@
2
2
 
3
3
  Blockchain functionality for NeoZip: **NeoZip Token Service timestamping** (stamp, upgrade, mint, verify), NFT minting, verification, and wallet management. Part of the [neozipkit monorepo](../../README.md).
4
4
 
5
- > **⚠️ Beta Version Warning**: This package is currently in **beta** status. This means:
6
- > - The API may change before the stable 1.0 release
7
- > - Some features may still be evolving
8
- > - Use in production with caution and thorough testing
9
- >
10
- > We welcome feedback on [GitHub](https://github.com/NeoWareInc/neozipkit/issues). This package is part of the [neozipkit monorepo](../../README.md).
5
+ > **Stable 1.0:** This package **1.0.5** (first non-beta was **1.0.2**). Format profile: [NEOZIP_APPNOTE.md](../neozipkit/NEOZIP_APPNOTE.md). See [WHATS_NEW.md](WHATS_NEW.md).
6
+
7
+ See [WHATS_NEW.md](WHATS_NEW.md) for release notes.
11
8
 
12
9
  This package provides the client-side API and utilities that work with the sibling **[neozipkit](../neozipkit/)** package for full NZIP (NeoZip) workflows. The **NeoZip Token Service** is a **separate application**; this library contains the **NeoZip Token Service API client and helpers** used to communicate with that server (submit digests, poll for confirmations, fetch proofs, etc.). Run the NeoZip Token Service separately when using timestamping features.
13
10
 
@@ -44,7 +41,14 @@ The **NeoZip Token Service** is a **separate application** (not part of this rep
44
41
  - Fetch TIMESTAMP.NZIP and proof data
45
42
  - Support stamp → upgrade → mint workflows
46
43
 
47
- Configure your app with the NeoZip Token Service URL (`TOKEN_SERVICE_URL`) and run the NeoZip Token Service separately when using timestamping features. See `examples/` and `.env.sample` for usage.
44
+ Configure your app with a **network profile** (`TOKEN_SERVICE_NETWORK=base-sepolia` default, or `base` for production) or an explicit `TOKEN_SERVICE_URL`. Library helpers resolve the correct host:
45
+
46
+ | Profile | Chain | Host |
47
+ |---------|-------|------|
48
+ | `base-sepolia` (default) | 84532 | `https://testnet.token-service.neozip.io` |
49
+ | `base` | 8453 | `https://token-service.neozip.io` |
50
+
51
+ See `src/constants/servers.ts` (`resolveNetworkProfile`, `getTokenServiceUrlForNetwork`). Paid mainnet token purchase is stubbed (`isTokenPurchaseAvailable` → `false`). Run the NeoZip Token Service separately for timestamping. See `examples/` and `.env.sample`.
48
52
 
49
53
  ## Quick Start
50
54
 
@@ -98,10 +102,10 @@ Use the NeoZip Token Service to stamp a ZIP (submit digest), upgrade once the ba
98
102
 
99
103
  ## Supported Networks
100
104
 
101
- | Network | Chain ID | Status |
102
- |---------|----------|--------|
103
- | Base Mainnet | 8453 | Production |
104
- | Base Sepolia | 84532 | Testnet |
105
+ | Network | Chain ID | Status | NFT (library default) |
106
+ |---------|----------|--------|------------------------|
107
+ | Base Mainnet | 8453 | Production | v2.51 + TimestampReg v0.90 (legacy v2.10: `LEGACY_BASE_MAINNET_NFT_V210`) |
108
+ | Base Sepolia | 84532 | Testnet (default) | v2.51 + TimestampReg v0.90 |
105
109
 
106
110
  ## API Reference
107
111
 
@@ -183,7 +187,7 @@ MIT License - see [LICENSE](LICENSE) for details.
183
187
 
184
188
  ## Publishing (npm)
185
189
 
186
- The npm tarball is intentionally minimal: compiled **`dist/`**, the **package root [`README.md`](README.md)**, and **[`LICENSE`](LICENSE)** only (`package.json` `"files"`). **`examples/`**, **`contracts/`**, and other repo docs are **not** on npm; use this repository for those.
190
+ The npm tarball is intentionally minimal: compiled **`dist/`**, the **package root [`README.md`](README.md)**, **[`WHATS_NEW.md`](WHATS_NEW.md)**, and **[`LICENSE`](LICENSE)** (`package.json` `"files"`). **`examples/`**, **`contracts/`**, and other repo docs are **not** on npm; use this repository for those.
187
191
 
188
192
  Preview what will ship: run **`pnpm publish:dry-run`** (it uses **`npm publish --dry-run`**, which matches npm’s file list).
189
193
 
package/WHATS_NEW.md ADDED
@@ -0,0 +1,104 @@
1
+ # What’s New in neozip-blockchain
2
+
3
+ Release notes for people who install and use **`neozip-blockchain`** from npm (alongside [`neozipkit`](https://www.npmjs.com/package/neozipkit)).
4
+
5
+ ## 1.0.5 (2026-08-14)
6
+
7
+ ### Token Service network profiles (Base Sepolia + Base Mainnet)
8
+
9
+ - Dual Token Service hostnames: testnet → `https://testnet.token-service.neozip.io` (Base Sepolia, **default**); production → `https://token-service.neozip.io` (Base Mainnet).
10
+ - Library APIs: `resolveNetworkProfile`, `getTokenServiceUrlForNetwork`, `NETWORK_PROFILES`, `isTokenPurchaseAvailable` (stub; always `false` — purchase coming soon).
11
+ - Prefer env `TOKEN_SERVICE_NETWORK=base-sepolia|base`; `TOKEN_SERVICE_CHAIN_ID` still works; `NEOZIP_CHAIN_ID` is a deprecated alias.
12
+ - Base Mainnet NFT in `CONTRACT_CONFIGS[8453]` is **v2.51** at `0x13C7c45FA99856153AeD9e97d6Db8bDEc5320E42` with TimestampReg v0.90 at `0x07A6a71444A974a7DcfC185966e56fF4809B39f4`. Historic v2.10: `LEGACY_BASE_MAINNET_NFT_V210`.
13
+
14
+ ### Membership helpers (Token Service)
15
+
16
+ `TokenServiceClient` supports membership-gated routes (Bearer access token):
17
+
18
+ - `getMembershipStatus()` — `GET /membership/status`
19
+ - `createMembershipCheckout(...)` — `POST /membership/checkout` (Stripe Checkout URL)
20
+ - `createMembershipPortal()` — `POST /membership/portal` (Stripe Customer Portal)
21
+
22
+ Structured errors can surface `membershipRequired` when a network needs an active membership.
23
+
24
+ ### APPNOTE-aligned META-INF discovery + Merkle §6.3
25
+
26
+ Requires **`neozipkit@^1.0.5`**.
27
+
28
+ - Token, timestamp, and OTS sidecar lookup follows [NEOZIP_APPNOTE.md](https://github.com/NeoWareInc/neozipkit/blob/main/packages/neozipkit/NEOZIP_APPNOTE.md) §2.3 (canonical uppercase writes; **ASCII case-insensitive** discovery).
29
+ - Mint / stamp / verify helpers prefer **`getMerkleRootAsync()`** so digests match APPNOTE **§6.3** (domain-separated content leaves, path-normalized sort; stream leaves when the kit captured them). Sync `getMerkleRoot()` alone is not enough for new v1 roots when only Extra Field digests are present.
30
+
31
+ **Helpers:** `getMerkleRootSafeAsync(zip)` (preferred), `getMerkleRootSafe(zip)` (sync only).
32
+
33
+ Legacy digests can still be checked with digests-based **`{ algorithm: 'v0' }`** roots / fallbacks.
34
+
35
+ ```bash
36
+ npm install neozipkit@^1.0.5 neozip-blockchain@^1.0.5
37
+ ```
38
+
39
+ ---
40
+
41
+ ## 1.0.2 (2026-07-28)
42
+
43
+ ### First stable release
44
+
45
+ **1.0.2** is the first non-beta release. From here on, this package follows [Semantic Versioning](https://semver.org/).
46
+
47
+ Install with a matching NeoZipKit:
48
+
49
+ ```bash
50
+ npm install neozipkit@^1.0.2 neozip-blockchain@^1.0.2
51
+ ```
52
+
53
+ ---
54
+
55
+ ## 0.8.0 (2026-06-30)
56
+
57
+ ### Token Service helpers (account, funding, identity)
58
+
59
+ New modules under the `neozip-blockchain/token-service` export for talking to a NeoZip Token Service:
60
+
61
+ - **Account / auth** — register and verify email (`browser` or `app` delivery), magic-link exchange, wallet login challenge/response, phone OTP.
62
+ - **Funding** — read funding policy/status and request a native-gas grant for the primary Data Wallet.
63
+ - **Identity** — wallet ensure/attach challenges and encrypted identity-key registration helpers.
64
+ - **HTTP utilities** — URL normalization, JSON parsing, auth error messages, access-token expiry parsing.
65
+
66
+ These APIs are **stateless**: your app stores tokens and decides how to recover from 401/403.
67
+
68
+ ### Email verification delivery
69
+
70
+ When registering, choose how the verification email is sent:
71
+
72
+ - `browser` (default) — web confirm link + code (good for scripts and CLI).
73
+ - `app` — app-style deep link.
74
+
75
+ Set `TOKEN_SERVICE_VERIFICATION_DELIVERY`, or pass `verificationDelivery` / `--browser` / `--app` in the verify-email example.
76
+
77
+ ### Breaking changes (Token Service client)
78
+
79
+ - Import from **`neozip-blockchain/token-service`** (`TokenServiceClient`, `getTokenServiceUrl`, `DEFAULT_TOKEN_SERVICE_URL`, …).
80
+ - Configure with **`TOKEN_SERVICE_URL`**, **`TOKEN_SERVICE_EMAIL`**, **`TOKEN_SERVICE_CHAIN_ID`**, optional **`TOKEN_SERVICE_VERIFICATION_DELIVERY`**, **`TOKEN_SERVICE_DEBUG`**.
81
+ - Default server: `https://testnet.token-service.neozip.io`.
82
+ - Example script renames: `example:token-service`, `example:token` (output `token.nzip`).
83
+
84
+ You must also install **`neozipkit`** yourself (peer dependency). It is not bundled inside this package.
85
+
86
+ ---
87
+
88
+ ## 0.6.0 (2026-03-03)
89
+
90
+ - **NZIP contract v2.51** on Base Sepolia (digest-only identity): `0xe4ee4f36CBAF2Bf2959740F6A0B326Acd175Ce77`
91
+ - Verify flows show the contract version (e.g. v2.51)
92
+ - Token example can reuse an existing token or mint a new one
93
+
94
+ *(0.6.0-beta.1 was the same content as a beta npm tag.)*
95
+
96
+ ---
97
+
98
+ ## 0.5.0 — Initial open-source release
99
+
100
+ - Companion to NeoZipKit for timestamping, NFT minting, and verification
101
+ - NeoZip Token Service client for stamp → upgrade → mint workflows
102
+ - NZIP contracts (v2.50 default; also v2.11 / v2.10)
103
+ - Wallet helpers (browser and Node), ZipkitMinter, ZipkitVerifier
104
+ - OpenTimestamps (OTS) support for Bitcoin-backed timestamps
@@ -1 +1 @@
1
- {"version":3,"file":"TokenVerifierBrowser.d.ts","sourceRoot":"","sources":["../../src/browser/TokenVerifierBrowser.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAInE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,YAAY,EAAE,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC;IA2LnC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;YACW,mBAAmB;IA2GjC;;OAEG;YACW,YAAY;IAS1B;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;CAWzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAE5E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAGlC"}
1
+ {"version":3,"file":"TokenVerifierBrowser.d.ts","sourceRoot":"","sources":["../../src/browser/TokenVerifierBrowser.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKnE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,YAAY,EAAE,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC;IAgMnC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;YACW,mBAAmB;IA2GjC;;OAEG;YACW,YAAY;IAS1B;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;CAWzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAE5E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAGlC"}
@@ -10,6 +10,7 @@ exports.createTokenVerifier = createTokenVerifier;
10
10
  exports.checkForTokenization = checkForTokenization;
11
11
  const contracts_1 = require("../core/contracts");
12
12
  const ethers_1 = require("ethers");
13
+ const neozipkit_1 = require("neozipkit");
13
14
  // Use the complete contract ABI from constants
14
15
  const CONTRACT_ABI = contracts_1.NZIP_CONTRACT_ABI;
15
16
  /**
@@ -24,14 +25,14 @@ class TokenVerifierBrowser {
24
25
  * Checks if the ZIP file contains NFT token metadata and verifies the merkle root
25
26
  */
26
27
  async checkForTokenization(zipEntries, options = {}) {
27
- // Look for the tokenized metadata file (check new standard first, then legacy)
28
- let tokenEntry = zipEntries.find(entry => entry.filename === contracts_1.TOKENIZED_METADATA);
29
- // Fallback to legacy NZIP.TOKEN for backward compatibility
30
- if (!tokenEntry) {
31
- tokenEntry = zipEntries.find(entry => entry.filename === contracts_1.TOKENIZED_METADATA_LEGACY);
32
- if (tokenEntry && typeof console !== 'undefined' && console.warn) {
33
- console.warn('[TokenVerifierBrowser] Reading legacy NZIP.TOKEN. Write new files as TOKEN.NZIP.');
34
- }
28
+ // Look for the tokenized metadata file (canonical TOKEN.NZIP, then legacy; case-insensitive)
29
+ let tokenEntry = (0, neozipkit_1.findReservedMetaEntry)(zipEntries, [contracts_1.TOKENIZED_METADATA, contracts_1.TOKENIZED_METADATA_LEGACY]);
30
+ if (tokenEntry &&
31
+ tokenEntry.filename &&
32
+ tokenEntry.filename !== contracts_1.TOKENIZED_METADATA &&
33
+ typeof console !== 'undefined' &&
34
+ console.warn) {
35
+ console.warn('[TokenVerifierBrowser] Reading legacy NZIP.TOKEN. Write new files as TOKEN.NZIP.');
35
36
  }
36
37
  if (!tokenEntry) {
37
38
  return {
@@ -129,8 +130,11 @@ class TokenVerifierBrowser {
129
130
  errorMessage: options.skipHash ? 'Hash verification skipped' : 'Token verification skipped'
130
131
  };
131
132
  }
132
- // Calculate merkle root excluding token file
133
- const calculatedMerkleRoot = this.zipkit.getMerkleRoot?.() || null;
133
+ // Calculate merkle root excluding token file (APPNOTE §6.3 prefers async content leaves)
134
+ const calculatedMerkleRoot = (await this.zipkit.getMerkleRootAsync?.()) ||
135
+ this.zipkit.getMerkleRoot?.({ algorithm: 'v0' }) ||
136
+ this.zipkit.getMerkleRoot?.() ||
137
+ null;
134
138
  if (!calculatedMerkleRoot) {
135
139
  return {
136
140
  isTokenized: true,
@@ -1 +1 @@
1
- {"version":3,"file":"TokenVerifierBrowser.js","sourceRoot":"","sources":["../../src/browser/TokenVerifierBrowser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenVerifierBrowser.js","sourceRoot":"","sources":["../../src/browser/TokenVerifierBrowser.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Centralized constants (metadata filenames, etc.)
2
+ * Centralized constants (metadata filenames, Token Service servers, etc.)
3
3
  */
4
4
  export * from './metadata';
5
+ export * from './servers';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Centralized constants (metadata filenames, etc.)
3
+ * Centralized constants (metadata filenames, Token Service servers, etc.)
4
4
  */
5
5
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
6
  if (k2 === undefined) k2 = k;
@@ -18,4 +18,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  __exportStar(require("./metadata"), exports);
21
+ __exportStar(require("./servers"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,4CAA0B"}
@@ -1,36 +1,99 @@
1
1
  /**
2
- * NeoZip Token Service URL(s) and resolver.
2
+ * NeoZip Token Service URL(s), network profiles, and resolvers.
3
3
  *
4
- * Single source of truth for the default token service URL and named server
5
- * lookup. Use getTokenServiceUrl() everywhere instead of hardcoding the default.
4
+ * Single source of truth for Token Service hosts and the mapping of
5
+ * network name / chainId → server URL.
6
6
  *
7
7
  * Resolution order for getTokenServiceUrl():
8
8
  * 1. options.serverUrl (explicit URL)
9
9
  * 2. options.serverKey → TOKEN_SERVICE_URLS[serverKey]
10
- * 3. process.env.TOKEN_SERVICE_URL
11
- * 4. DEFAULT_TOKEN_SERVICE_URL
10
+ * 3. options.network / options.chainId → profile → server key → URL
11
+ * 4. process.env.TOKEN_SERVICE_URL
12
+ * 5. env TOKEN_SERVICE_NETWORK / TOKEN_SERVICE_CHAIN_ID / NEOZIP_CHAIN_ID → profile
13
+ * 6. DEFAULT_TOKEN_SERVICE_URL (testnet / Base Sepolia)
12
14
  */
13
- /** Default NeoZip Token Service URL when no env override is set */
15
+ /** Default NeoZip Token Service URL (Base Sepolia) */
14
16
  export declare const DEFAULT_TOKEN_SERVICE_URL = "https://testnet.token-service.neozip.io";
17
+ /** Production Token Service URL (Base Mainnet) */
18
+ export declare const PRODUCTION_TOKEN_SERVICE_URL = "https://token-service.neozip.io";
15
19
  /**
16
- * Named server URLs for lookup by key (e.g. "default", "dev", "staging", "production").
17
- * Extend this record as more servers are added; env vars still override at runtime.
20
+ * Named server URLs for lookup by key.
21
+ * Extend as more servers are added; env vars can still override at runtime.
18
22
  */
19
23
  export declare const TOKEN_SERVICE_URLS: Record<string, string>;
24
+ /** Known network profile keys */
25
+ export type NetworkProfileKey = 'base-sepolia' | 'base';
26
+ export interface NetworkProfile {
27
+ /** Profile key (stable identifier for env / CLI) */
28
+ key: NetworkProfileKey;
29
+ /** EVM chain ID */
30
+ chainId: number;
31
+ /** Key into TOKEN_SERVICE_URLS */
32
+ serverKey: string;
33
+ /**
34
+ * Whether paid token purchase is available on this network via Token Service.
35
+ * Always false until purchase is implemented.
36
+ */
37
+ purchaseAvailable: boolean;
38
+ /** Human-readable label */
39
+ label: string;
40
+ /** Alternate names accepted by resolveNetworkProfile */
41
+ aliases?: string[];
42
+ }
43
+ /**
44
+ * Client-side network profiles: chain ↔ Token Service host.
45
+ * Library default remains Base Sepolia.
46
+ */
47
+ export declare const NETWORK_PROFILES: Record<NetworkProfileKey, NetworkProfile>;
48
+ /** Default network profile key (safe sandbox) */
49
+ export declare const DEFAULT_NETWORK_PROFILE_KEY: NetworkProfileKey;
20
50
  export interface GetTokenServiceUrlOptions {
21
51
  /** Explicit server URL (highest precedence) */
22
52
  serverUrl?: string;
23
- /** Key into TOKEN_SERVICE_URLS (e.g. "default", "staging") */
53
+ /** Key into TOKEN_SERVICE_URLS (e.g. "default", "production") */
24
54
  serverKey?: string;
55
+ /** Network profile name (e.g. "base-sepolia", "base") */
56
+ network?: string;
57
+ /** Chain ID; selects profile when no serverUrl/serverKey */
58
+ chainId?: number;
25
59
  }
60
+ export interface ResolveNetworkProfileOptions {
61
+ /** Profile name (prefer TOKEN_SERVICE_NETWORK) */
62
+ network?: string;
63
+ /** Numeric chain (TOKEN_SERVICE_CHAIN_ID / NEOZIP_CHAIN_ID) */
64
+ chainId?: number | string;
65
+ /**
66
+ * When true (default), also read process.env for TOKEN_SERVICE_NETWORK,
67
+ * TOKEN_SERVICE_CHAIN_ID, then NEOZIP_CHAIN_ID (deprecated alias).
68
+ */
69
+ useEnv?: boolean;
70
+ }
71
+ /** Normalize a network name for matching. */
72
+ export declare function normalizeNetworkProfileName(name: string): string;
73
+ /**
74
+ * Resolve a network profile from options and/or environment.
75
+ *
76
+ * Precedence: options.network → options.chainId → TOKEN_SERVICE_NETWORK →
77
+ * TOKEN_SERVICE_CHAIN_ID → NEOZIP_CHAIN_ID (deprecated) → base-sepolia.
78
+ */
79
+ export declare function resolveNetworkProfile(input?: string | number | ResolveNetworkProfileOptions): NetworkProfile;
26
80
  /**
27
81
  * Resolve the NeoZip Token Service base URL.
28
- * Order: options.serverUrl → options.serverKey → TOKEN_SERVICE_URL → default.
82
+ * Order: serverUrl → serverKey → network/chainId profile →
83
+ * TOKEN_SERVICE_URL → profile from env → default (testnet).
29
84
  */
30
85
  export declare function getTokenServiceUrl(options?: GetTokenServiceUrlOptions): string;
31
86
  /**
32
- * Return the default server URL as a single-element array for multi-calendar use.
33
- * Later can return multiple URLs from TOKEN_SERVICE_URLS or env.
87
+ * Resolve Token Service URL for a network name or chain ID.
88
+ */
89
+ export declare function getTokenServiceUrlForNetwork(networkOrChainId?: string | number, options?: Omit<GetTokenServiceUrlOptions, 'network' | 'chainId'>): string;
90
+ /**
91
+ * Whether paid token purchase is available for a network.
92
+ * Stub: always false until purchase is implemented.
93
+ */
94
+ export declare function isTokenPurchaseAvailable(networkOrChainId?: string | number): boolean;
95
+ /**
96
+ * Default server URL as a single-element array (multi-calendar ready).
34
97
  */
35
98
  export declare function getDefaultTokenServiceUrls(): string[];
36
99
  //# sourceMappingURL=servers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/constants/servers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,4CAA4C,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAErD,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,CAa9E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD"}
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/constants/servers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,4CAA4C,CAAC;AAEnF,kDAAkD;AAClD,eAAO,MAAM,4BAA4B,oCAAoC,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKrD,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,GAAG,EAAE,iBAAiB,CAAC;IACvB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAiBtE,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,EAAE,iBAAkC,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,6CAA6C;AAC7C,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAqBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,4BAA4B,GACrD,cAAc,CAwDhB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,MAAM,CAqC9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,SAAS,GAAG,SAAS,CAAC,GAC/D,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GACjC,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD"}
@@ -1,32 +1,145 @@
1
1
  "use strict";
2
2
  /**
3
- * NeoZip Token Service URL(s) and resolver.
3
+ * NeoZip Token Service URL(s), network profiles, and resolvers.
4
4
  *
5
- * Single source of truth for the default token service URL and named server
6
- * lookup. Use getTokenServiceUrl() everywhere instead of hardcoding the default.
5
+ * Single source of truth for Token Service hosts and the mapping of
6
+ * network name / chainId → server URL.
7
7
  *
8
8
  * Resolution order for getTokenServiceUrl():
9
9
  * 1. options.serverUrl (explicit URL)
10
10
  * 2. options.serverKey → TOKEN_SERVICE_URLS[serverKey]
11
- * 3. process.env.TOKEN_SERVICE_URL
12
- * 4. DEFAULT_TOKEN_SERVICE_URL
11
+ * 3. options.network / options.chainId → profile → server key → URL
12
+ * 4. process.env.TOKEN_SERVICE_URL
13
+ * 5. env TOKEN_SERVICE_NETWORK / TOKEN_SERVICE_CHAIN_ID / NEOZIP_CHAIN_ID → profile
14
+ * 6. DEFAULT_TOKEN_SERVICE_URL (testnet / Base Sepolia)
13
15
  */
14
16
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TOKEN_SERVICE_URLS = exports.DEFAULT_TOKEN_SERVICE_URL = void 0;
17
+ exports.DEFAULT_NETWORK_PROFILE_KEY = exports.NETWORK_PROFILES = exports.TOKEN_SERVICE_URLS = exports.PRODUCTION_TOKEN_SERVICE_URL = exports.DEFAULT_TOKEN_SERVICE_URL = void 0;
18
+ exports.normalizeNetworkProfileName = normalizeNetworkProfileName;
19
+ exports.resolveNetworkProfile = resolveNetworkProfile;
16
20
  exports.getTokenServiceUrl = getTokenServiceUrl;
21
+ exports.getTokenServiceUrlForNetwork = getTokenServiceUrlForNetwork;
22
+ exports.isTokenPurchaseAvailable = isTokenPurchaseAvailable;
17
23
  exports.getDefaultTokenServiceUrls = getDefaultTokenServiceUrls;
18
- /** Default NeoZip Token Service URL when no env override is set */
24
+ /** Default NeoZip Token Service URL (Base Sepolia) */
19
25
  exports.DEFAULT_TOKEN_SERVICE_URL = 'https://testnet.token-service.neozip.io';
26
+ /** Production Token Service URL (Base Mainnet) */
27
+ exports.PRODUCTION_TOKEN_SERVICE_URL = 'https://token-service.neozip.io';
20
28
  /**
21
- * Named server URLs for lookup by key (e.g. "default", "dev", "staging", "production").
22
- * Extend this record as more servers are added; env vars still override at runtime.
29
+ * Named server URLs for lookup by key.
30
+ * Extend as more servers are added; env vars can still override at runtime.
23
31
  */
24
32
  exports.TOKEN_SERVICE_URLS = {
25
33
  default: exports.DEFAULT_TOKEN_SERVICE_URL,
34
+ testnet: exports.DEFAULT_TOKEN_SERVICE_URL,
35
+ production: exports.PRODUCTION_TOKEN_SERVICE_URL,
36
+ mainnet: exports.PRODUCTION_TOKEN_SERVICE_URL,
26
37
  };
38
+ /**
39
+ * Client-side network profiles: chain ↔ Token Service host.
40
+ * Library default remains Base Sepolia.
41
+ */
42
+ exports.NETWORK_PROFILES = {
43
+ 'base-sepolia': {
44
+ key: 'base-sepolia',
45
+ chainId: 84532,
46
+ serverKey: 'default',
47
+ purchaseAvailable: false,
48
+ label: 'Base Sepolia',
49
+ aliases: ['base sepolia', 'basesepolia', 'base-sepolia-testnet'],
50
+ },
51
+ base: {
52
+ key: 'base',
53
+ chainId: 8453,
54
+ serverKey: 'production',
55
+ purchaseAvailable: false,
56
+ label: 'Base Mainnet',
57
+ aliases: ['base-mainnet', 'base mainnet', 'basemainnet'],
58
+ },
59
+ };
60
+ /** Default network profile key (safe sandbox) */
61
+ exports.DEFAULT_NETWORK_PROFILE_KEY = 'base-sepolia';
62
+ /** Normalize a network name for matching. */
63
+ function normalizeNetworkProfileName(name) {
64
+ return name.toLowerCase().trim().replace(/\s+/g, '-').replace(/_/g, '-');
65
+ }
66
+ function findProfileByName(name) {
67
+ const normalized = normalizeNetworkProfileName(name);
68
+ for (const profile of Object.values(exports.NETWORK_PROFILES)) {
69
+ if (profile.key === normalized)
70
+ return profile;
71
+ if (normalizeNetworkProfileName(profile.label) === normalized)
72
+ return profile;
73
+ if (profile.aliases?.some((a) => normalizeNetworkProfileName(a) === normalized)) {
74
+ return profile;
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ function findProfileByChainId(chainId) {
80
+ for (const profile of Object.values(exports.NETWORK_PROFILES)) {
81
+ if (profile.chainId === chainId)
82
+ return profile;
83
+ }
84
+ return null;
85
+ }
86
+ /**
87
+ * Resolve a network profile from options and/or environment.
88
+ *
89
+ * Precedence: options.network → options.chainId → TOKEN_SERVICE_NETWORK →
90
+ * TOKEN_SERVICE_CHAIN_ID → NEOZIP_CHAIN_ID (deprecated) → base-sepolia.
91
+ */
92
+ function resolveNetworkProfile(input) {
93
+ let network;
94
+ let chainId;
95
+ let useEnv = true;
96
+ if (typeof input === 'string') {
97
+ network = input;
98
+ }
99
+ else if (typeof input === 'number') {
100
+ chainId = input;
101
+ }
102
+ else if (input && typeof input === 'object') {
103
+ network = input.network;
104
+ chainId = input.chainId;
105
+ useEnv = input.useEnv !== false;
106
+ }
107
+ if (network && network.trim()) {
108
+ const byName = findProfileByName(network);
109
+ if (!byName) {
110
+ throw new Error(`Unknown Token Service network: "${network}". Use "base-sepolia" or "base".`);
111
+ }
112
+ return byName;
113
+ }
114
+ const parsedChain = chainId === undefined || chainId === null || chainId === ''
115
+ ? undefined
116
+ : typeof chainId === 'number'
117
+ ? chainId
118
+ : parseInt(String(chainId), 10);
119
+ if (parsedChain !== undefined && !Number.isNaN(parsedChain)) {
120
+ const byChain = findProfileByChainId(parsedChain);
121
+ if (!byChain) {
122
+ throw new Error(`No Token Service network profile for chainId ${parsedChain}. Supported: 84532 (base-sepolia), 8453 (base).`);
123
+ }
124
+ return byChain;
125
+ }
126
+ if (useEnv && typeof process !== 'undefined') {
127
+ const envNetwork = process.env?.TOKEN_SERVICE_NETWORK?.trim();
128
+ if (envNetwork) {
129
+ return resolveNetworkProfile({ network: envNetwork, useEnv: false });
130
+ }
131
+ const envChain = process.env?.TOKEN_SERVICE_CHAIN_ID?.trim() ||
132
+ process.env?.NEOZIP_CHAIN_ID?.trim();
133
+ if (envChain) {
134
+ return resolveNetworkProfile({ chainId: envChain, useEnv: false });
135
+ }
136
+ }
137
+ return exports.NETWORK_PROFILES[exports.DEFAULT_NETWORK_PROFILE_KEY];
138
+ }
27
139
  /**
28
140
  * Resolve the NeoZip Token Service base URL.
29
- * Order: options.serverUrl → options.serverKey → TOKEN_SERVICE_URL → default.
141
+ * Order: serverUrl → serverKey → network/chainId profile →
142
+ * TOKEN_SERVICE_URL → profile from env → default (testnet).
30
143
  */
31
144
  function getTokenServiceUrl(options) {
32
145
  if (options?.serverUrl && options.serverUrl.trim()) {
@@ -35,15 +148,65 @@ function getTokenServiceUrl(options) {
35
148
  if (options?.serverKey && exports.TOKEN_SERVICE_URLS[options.serverKey]) {
36
149
  return exports.TOKEN_SERVICE_URLS[options.serverKey];
37
150
  }
151
+ if (options?.network || options?.chainId !== undefined) {
152
+ const profile = resolveNetworkProfile({
153
+ network: options.network,
154
+ chainId: options.chainId,
155
+ useEnv: false,
156
+ });
157
+ const fromKey = exports.TOKEN_SERVICE_URLS[profile.serverKey];
158
+ if (fromKey)
159
+ return fromKey;
160
+ }
38
161
  const fromEnv = typeof process !== 'undefined' && process.env?.TOKEN_SERVICE_URL?.trim();
39
162
  if (fromEnv) {
40
163
  return fromEnv;
41
164
  }
165
+ if (typeof process !== 'undefined') {
166
+ const hasNetworkEnv = !!process.env?.TOKEN_SERVICE_NETWORK?.trim() ||
167
+ !!process.env?.TOKEN_SERVICE_CHAIN_ID?.trim() ||
168
+ !!process.env?.NEOZIP_CHAIN_ID?.trim();
169
+ if (hasNetworkEnv) {
170
+ const profile = resolveNetworkProfile();
171
+ const fromKey = exports.TOKEN_SERVICE_URLS[profile.serverKey];
172
+ if (fromKey)
173
+ return fromKey;
174
+ }
175
+ }
42
176
  return exports.DEFAULT_TOKEN_SERVICE_URL;
43
177
  }
44
178
  /**
45
- * Return the default server URL as a single-element array for multi-calendar use.
46
- * Later can return multiple URLs from TOKEN_SERVICE_URLS or env.
179
+ * Resolve Token Service URL for a network name or chain ID.
180
+ */
181
+ function getTokenServiceUrlForNetwork(networkOrChainId, options) {
182
+ if (typeof networkOrChainId === 'number') {
183
+ return getTokenServiceUrl({ ...options, chainId: networkOrChainId });
184
+ }
185
+ if (typeof networkOrChainId === 'string' && networkOrChainId.trim()) {
186
+ if (/^https?:\/\//i.test(networkOrChainId.trim())) {
187
+ return getTokenServiceUrl({ ...options, serverUrl: networkOrChainId });
188
+ }
189
+ return getTokenServiceUrl({ ...options, network: networkOrChainId });
190
+ }
191
+ return getTokenServiceUrl(options);
192
+ }
193
+ /**
194
+ * Whether paid token purchase is available for a network.
195
+ * Stub: always false until purchase is implemented.
196
+ */
197
+ function isTokenPurchaseAvailable(networkOrChainId) {
198
+ try {
199
+ if (networkOrChainId === undefined) {
200
+ return resolveNetworkProfile().purchaseAvailable;
201
+ }
202
+ return resolveNetworkProfile(networkOrChainId).purchaseAvailable;
203
+ }
204
+ catch {
205
+ return false;
206
+ }
207
+ }
208
+ /**
209
+ * Default server URL as a single-element array (multi-calendar ready).
47
210
  */
48
211
  function getDefaultTokenServiceUrls() {
49
212
  return [getTokenServiceUrl()];