ccip-router 0.5.4 → 0.5.6

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 CHANGED
@@ -141,6 +141,39 @@ All ccip-router contracts are permissionless — no owner, no admin. One deploym
141
141
 
142
142
  Deployed by [`0xFf9a176577Fb42b6bc9c19fd05a241e8fCd0ca14`](https://sepolia.etherscan.io/address/0xFf9a176577Fb42b6bc9c19fd05a241e8fCd0ca14) · Solc 0.8.24 · optimizer 200 runs.
143
143
 
144
+ ### Mainnet contracts
145
+
146
+ | Contract | Mainnet address |
147
+ |---|---|
148
+ | `NodeRegistry` | [`0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D`](https://etherscan.io/address/0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D) |
149
+ | `AttestationIndex` | [`0xc7BCCD785Fb994e570d0ca10D0F7899d87C82210`](https://etherscan.io/address/0xc7BCCD785Fb994e570d0ca10D0F7899d87C82210) |
150
+
151
+ Gateway nodes register their URL by signing `keccak256("ccip-router:node:" + url)` with their gateway key. The relayer (`msg.sender`) can differ from the signing key — no ETH required in the hot key. Two dinamic.eth mesh nodes are registered: NAS (`0x58766f90...`) and Railway (`0x2048eADf...`).
152
+
153
+ Set `NODE_REGISTRY=0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D` on any mainnet node to enable on-chain registration via `POST /admin/api/register`.
154
+
155
+ **ERC-8004 identity via NodeRegistry:** Set `AGENT_ID` to your node's signer address padded to bytes32, `REGISTRY_ADDRESS` to the NodeRegistry address, and `MODEL_HASH` to `keccak256("ccip-router:<name>:<nodeUrl>")`. This gives each gateway node its own verifiable infrastructure identity — distinct from user-level ERC-8004 agent tokens.
156
+
157
+ ```env
158
+ # NAS node example
159
+ NODE_REGISTRY=0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D
160
+ AGENT_ID=0x00000000000000000000000058766f90ede2419feafd97c28bb0f0ddf951dc54
161
+ REGISTRY_ADDRESS=0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D
162
+ MODEL_HASH=0x80d4afd92fa6918f6e3bf706d19b2680301e5015cf5c46ecf7f6b178cfd660fc
163
+ ```
164
+
165
+ ### OffchainResolver v2 — Mainnet
166
+
167
+ EIP-3668 wildcard resolver with multi-signer support. Replaces the single `signerAddress` pattern with `mapping(address => bool) authorizedSigners` so any node in the mesh can sign a valid CCIP-Read response.
168
+
169
+ | Contract | Mainnet address |
170
+ |---|---|
171
+ | `OffchainResolver` v2 | [`0xB300e09e6C4f901409B809e7924CF68A2A429014`](https://etherscan.io/address/0xB300e09e6C4f901409B809e7924CF68A2A429014) |
172
+
173
+ `dinamic.eth` is pointed at this contract. Three signers are authorized — one per active gateway node. If any node is down the ENS client falls back to the next URL automatically.
174
+
175
+ Source: [`contracts/OffchainResolver.sol`](contracts/OffchainResolver.sol)
176
+
144
177
  **To use on Sepolia:** open the admin panel → Deploy contracts → select Sepolia → "Use these addresses →". Addresses are saved to config automatically, no deployment needed.
145
178
 
146
179
  **To deploy to another chain:** open the admin panel → Deploy contracts → select the chain → connect wallet → three transactions (one per contract). No private key is stored — MetaMask signs everything in-browser.
@@ -257,6 +290,22 @@ Both modes use the same Docker image and npm package. The difference is configur
257
290
 
258
291
  ---
259
292
 
293
+ ## Live network (dinamic.eth)
294
+
295
+ Three production nodes running ccip-router `v0.5.5`, serving `dinamic.eth` via [`OffchainResolver v2`](https://etherscan.io/address/0xB300e09e6C4f901409B809e7924CF68A2A429014):
296
+
297
+ | Node | URL | Signer | Tiers |
298
+ |---|---|---|---|
299
+ | ENS Boiler (primary) | `https://gateway.ensub.org/lookup/{sender}/{data}` | `0x85Fa1351…` | signed, wyriwe, ocp |
300
+ | NAS node | `https://gateway.gen-plasma.com/{sender}/{data}` | `0x58766f90…` | signed, erc8004, wyriwe, ocp, vni |
301
+ | Railway node | `https://ccip-router-production.up.railway.app/{sender}/{data}` | `0x2048eADf…` | signed, vni |
302
+
303
+ All three signers are authorized on the mainnet resolver. ENS clients try URLs in order — any live node produces a verifiable response.
304
+
305
+ NAS and Railway nodes are registered in the mainnet [`NodeRegistry`](https://etherscan.io/address/0x95a1e10D1508EF5CD11e3F4d296359c93f15e48D). The NAS node's ERC-8004 identity uses its signer address as `agentId` in the NodeRegistry — infrastructure identity, not a user-level NFT agent.
306
+
307
+ ---
308
+
260
309
  ## Quick start (setup wizard)
261
310
 
262
311
  ```bash
@@ -307,6 +356,7 @@ npm run dev
307
356
  | `CDN_API_KEY` | No | — | API key / JWT for the configured CDN provider. |
308
357
  | `NETWORK_KEY` | No | — | Ethereum address. Messages signed by this key are marked as official network announcements. |
309
358
  | `DISABLE_ADMIN` | No | `false` | Set `true` to skip mounting `/admin` and `/static` entirely. Recommended for public PaaS nodes. |
359
+ | `RESOLVER_ADDRESS` | No | — | Deployed `OffchainResolver` contract (informational — shown in spec audit). |
310
360
 
311
361
  \* Can also come from `config.json` written by the setup wizard.
312
362
 
@@ -615,6 +665,10 @@ Protocol version `1` is the current stable spec. Nodes on a different version ar
615
665
  - [x] ENS records panel — live table, add/delete addr / text / addr_coin / contenthash records, changes take effect immediately
616
666
  - [x] Admin wallet panel in dashboard — current address, two-step transfer UI
617
667
  - [x] `withEns()` — ENS wildcard resolver wrapper; DNS wire-format decode, selector dispatch (addr / addr_coin / text / contenthash), null → zero-value fallbacks, `isEnsCalldata()` guard
668
+ - [x] `OffchainResolver.sol` v2 — multi-signer via `mapping(address => bool) authorizedSigners`; `addSigner` / `removeSigner`; deployed to mainnet (`0xB300e09e6C4f901409B809e7924CF68A2A429014`); dinamic.eth updated
669
+ - [x] Live 3-node mesh — ENS Boiler + NAS ccip-router + Railway ccip-router all authorized signers; any node can serve a verifiable CCIP-Read response
670
+ - [x] ENS Boiler dual-write sync — every admin record upsert also pushes to ccip-router via `ccipRouterSync.ts`
671
+ - [x] `RESOLVER_ADDRESS` config field — shown in spec audit panel
618
672
 
619
673
  ---
620
674
 
@@ -0,0 +1,171 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.23;
3
+
4
+ /**
5
+ * OffchainResolver v2 — EIP-3668 (CCIP Read) resolver for ENS.
6
+ *
7
+ * v2 changes from v1:
8
+ * - Multi-signer: replaces single `signerAddress` with
9
+ * `mapping(address => bool) authorizedSigners`
10
+ * - `addSigner` / `removeSigner` admin functions
11
+ * - `setSigner` kept for compatibility (adds to mapping, doesn't remove others)
12
+ *
13
+ * Flow:
14
+ * 1. ENS client calls resolve(name, data) on this contract.
15
+ * 2. Contract reverts with OffchainLookup, pointing to gateway URLs.
16
+ * 3. Client queries gateway, gets signed response.
17
+ * 4. Client calls resolveWithProof(response, extraData) to verify.
18
+ * Any authorized signer's signature is accepted.
19
+ */
20
+ contract OffchainResolver {
21
+ // EIP-3668 error — triggers CCIP Read in compliant clients
22
+ error OffchainLookup(
23
+ address sender,
24
+ string[] urls,
25
+ bytes callData,
26
+ bytes4 callbackFunction,
27
+ bytes extraData
28
+ );
29
+
30
+ address public owner;
31
+ string[] public gatewayURLs;
32
+
33
+ // v2: multiple authorized signers (any gateway node may sign)
34
+ mapping(address => bool) public authorizedSigners;
35
+
36
+ // On-chain contenthash per node — read directly by browsers (Brave, etc.)
37
+ // that don't support CCIP Read. Set via setContenthash(), costs gas once.
38
+ mapping(bytes32 => bytes) public contenthashes;
39
+
40
+ event GatewayURLsUpdated(string[] urls);
41
+ event SignerAdded(address indexed signer);
42
+ event SignerRemoved(address indexed signer);
43
+ event ContenthashUpdated(bytes32 indexed node, bytes contenthash);
44
+
45
+ modifier onlyOwner() {
46
+ require(msg.sender == owner, "not owner");
47
+ _;
48
+ }
49
+
50
+ constructor(string[] memory _urls, address _initialSigner) {
51
+ owner = msg.sender;
52
+ gatewayURLs = _urls;
53
+ authorizedSigners[_initialSigner] = true;
54
+ emit SignerAdded(_initialSigner);
55
+ }
56
+
57
+ // ─── ENS Resolver Interface ──────────────────────────────────────────────
58
+
59
+ function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
60
+ return
61
+ interfaceId == 0x9061b923 || // IExtendedResolver (resolve/ENSIP-10)
62
+ interfaceId == 0x3b3b57de || // IAddrResolver (addr)
63
+ interfaceId == 0x59d1d43c || // ITextResolver (text)
64
+ interfaceId == 0xbc1c58d1 || // IContentHashResolver (contenthash)
65
+ interfaceId == 0x01ffc9a7; // IERC165
66
+ }
67
+
68
+ /**
69
+ * Returns the on-chain contenthash for a node.
70
+ */
71
+ function contenthash(bytes32 node) external view returns (bytes memory) {
72
+ return contenthashes[node];
73
+ }
74
+
75
+ function setContenthash(bytes32 node, bytes calldata _contenthash) external onlyOwner {
76
+ contenthashes[node] = _contenthash;
77
+ emit ContenthashUpdated(node, _contenthash);
78
+ }
79
+
80
+ /**
81
+ * Wildcard resolution entry point (ENSIP-10).
82
+ */
83
+ function resolve(bytes calldata name, bytes calldata data)
84
+ external
85
+ view
86
+ returns (bytes memory)
87
+ {
88
+ string[] memory urls = new string[](gatewayURLs.length);
89
+ for (uint i = 0; i < gatewayURLs.length; i++) {
90
+ urls[i] = gatewayURLs[i];
91
+ }
92
+
93
+ revert OffchainLookup(
94
+ address(this),
95
+ urls,
96
+ abi.encode(name, data),
97
+ OffchainResolver.resolveWithProof.selector,
98
+ abi.encode(name, data)
99
+ );
100
+ }
101
+
102
+ /**
103
+ * Callback — verifies the signed gateway response.
104
+ * Accepts any authorized signer's signature.
105
+ */
106
+ function resolveWithProof(bytes calldata response, bytes calldata extraData)
107
+ external
108
+ view
109
+ returns (bytes memory)
110
+ {
111
+ (bytes memory result, uint64 expires, bytes memory sig) =
112
+ abi.decode(response, (bytes, uint64, bytes));
113
+
114
+ require(block.timestamp <= expires, "response expired");
115
+
116
+ bytes32 hash = keccak256(
117
+ abi.encodePacked(
118
+ hex"1900",
119
+ address(this),
120
+ expires,
121
+ keccak256(extraData),
122
+ keccak256(result)
123
+ )
124
+ );
125
+
126
+ bytes32 r;
127
+ bytes32 s;
128
+ uint8 v;
129
+ assembly {
130
+ r := mload(add(sig, 32))
131
+ s := mload(add(sig, 64))
132
+ v := byte(0, mload(add(sig, 96)))
133
+ }
134
+ if (v < 27) v += 27;
135
+
136
+ address recovered = ecrecover(
137
+ keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)),
138
+ v, r, s
139
+ );
140
+
141
+ require(authorizedSigners[recovered], "invalid signature");
142
+ return result;
143
+ }
144
+
145
+ // ─── Admin ───────────────────────────────────────────────────────────────
146
+
147
+ function setGatewayURLs(string[] calldata _urls) external onlyOwner {
148
+ gatewayURLs = _urls;
149
+ emit GatewayURLsUpdated(_urls);
150
+ }
151
+
152
+ function addSigner(address signer) external onlyOwner {
153
+ authorizedSigners[signer] = true;
154
+ emit SignerAdded(signer);
155
+ }
156
+
157
+ function removeSigner(address signer) external onlyOwner {
158
+ authorizedSigners[signer] = false;
159
+ emit SignerRemoved(signer);
160
+ }
161
+
162
+ // kept for v1 compatibility — adds to mapping without removing others
163
+ function setSigner(address signer) external onlyOwner {
164
+ authorizedSigners[signer] = true;
165
+ emit SignerAdded(signer);
166
+ }
167
+
168
+ function transferOwnership(address newOwner) external onlyOwner {
169
+ owner = newOwner;
170
+ }
171
+ }
@@ -11,6 +11,7 @@ export declare class SQLiteDB implements DB {
11
11
  upsertPeer(peer: PeerState): Promise<void>;
12
12
  getPeers(): Promise<PeerState[]>;
13
13
  recordCount(namespace: string): Promise<number>;
14
+ ensNameCount(): Promise<number>;
14
15
  getRecentRecords(namespace: string, limit: number): Promise<MeshRecord[]>;
15
16
  getContributions(namespace: string): Promise<Contribution[]>;
16
17
  removePeer(url: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAe,MAAM,YAAY,CAAA;AA6B3G,qBAAa,QAAS,YAAW,EAAE;IACjC,OAAO,CAAC,EAAE,CAAmB;IAE7B,OAAO,CAAC,KAAK,CAwBZ;gBAEW,IAAI,EAAE,MAAM;IA2IxB,OAAO,CAAC,aAAa;IAgBf,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/C,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBlB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO5E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK/D,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKzE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK5D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9F,kBAAkB,CACtB,IAAI,EAAM,MAAM,EAChB,IAAI,EAAM,MAAM,EAChB,QAAQ,GAAE,MAAY,EACtB,OAAO,GAAG,MAAY,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOrD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcvE,WAAW,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK3C,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3C,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAe,MAAM,YAAY,CAAA;AA6B3G,qBAAa,QAAS,YAAW,EAAE;IACjC,OAAO,CAAC,EAAE,CAAmB;IAE7B,OAAO,CAAC,KAAK,CAyBZ;gBAEW,IAAI,EAAE,MAAM;IA+IxB,OAAO,CAAC,aAAa;IAgBf,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/C,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBlB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO5E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK/D,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKzE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK5D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9F,kBAAkB,CACtB,IAAI,EAAM,MAAM,EAChB,IAAI,EAAM,MAAM,EAChB,QAAQ,GAAE,MAAY,EACtB,OAAO,GAAG,MAAY,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKnB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOrD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcvE,WAAW,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK3C,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3C,KAAK,IAAI,IAAI;CAGd"}
package/dist/db/sqlite.js CHANGED
@@ -58,6 +58,9 @@ export class SQLiteDB {
58
58
  getPeers: this.db.prepare(`SELECT * FROM peers`),
59
59
  count: this.db.prepare(`
60
60
  SELECT COUNT(*) as n FROM records WHERE namespace = ?
61
+ `),
62
+ ensNameCount: this.db.prepare(`
63
+ SELECT COUNT(DISTINCT name) as n FROM ens_records
61
64
  `),
62
65
  recent: this.db.prepare(`
63
66
  SELECT * FROM records
@@ -195,6 +198,10 @@ export class SQLiteDB {
195
198
  const row = this.stmts.count.get(namespace);
196
199
  return row.n;
197
200
  }
201
+ async ensNameCount() {
202
+ const row = this.stmts.ensNameCount.get();
203
+ return row.n;
204
+ }
198
205
  async getRecentRecords(namespace, limit) {
199
206
  const rows = this.stmts.recent.all(namespace, limit);
200
207
  return rows.map(toMeshRecord);
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,7 @@ export interface DB {
51
51
  removePeer(url: string): Promise<void>;
52
52
  getPeers(): Promise<PeerState[]>;
53
53
  recordCount(namespace: string): Promise<number>;
54
+ ensNameCount(): Promise<number>;
54
55
  insertMessage(msg: Omit<Message, 'id' | 'receivedAt'>): Promise<number>;
55
56
  getMessages(limit?: number): Promise<Message[]>;
56
57
  markMessagesRead(ids?: number[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DB, PeerState } from '../db/types.js';
2
2
  import type { Config } from '../config.js';
3
3
  export declare function syncAll(config: Config, db: DB): Promise<number>;
4
- export declare function syncPeer(peer: PeerState, namespace: string, db: DB, autoDiscover?: boolean): Promise<Partial<PeerState>>;
4
+ export declare function syncPeer(peer: PeerState, namespace: string, db: DB, autoDiscover?: boolean, nodeUrl?: string): Promise<Partial<PeerState>>;
5
5
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/mesh/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAM1C,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CASrE;AAmBD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,EAAE,EACN,YAAY,UAAO,GAClB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CA8D7B"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/mesh/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAM1C,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CASrE;AAuDD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,EAAE,EACN,YAAY,UAAO,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAmD7B"}
package/dist/mesh/sync.js CHANGED
@@ -5,40 +5,59 @@ import { NODE_VERSION } from '../version.js';
5
5
  export async function syncAll(config, db) {
6
6
  const peers = await db.getPeers();
7
7
  const results = await Promise.allSettled(peers.map(async (peer) => {
8
- const update = await syncPeer(peer, config.syncNamespace, db, config.autoDiscover);
8
+ const update = await syncPeer(peer, config.syncNamespace, db, config.autoDiscover, config.nodeUrl ?? undefined);
9
9
  await db.upsertPeer({ ...peer, ...update });
10
10
  }));
11
11
  return results.filter((r) => r.status === 'fulfilled').length;
12
12
  }
13
13
  const SUPPORTED_PROTOCOL = 1;
14
- // Pull all new records from a single peer, paginating until cursor is null.
15
- // Optionally runs peer gossip (auto-discovery) after syncing.
16
- export async function syncPeer(peer, namespace, db, autoDiscover = true) {
14
+ // Pull all records for a single namespace from a peer, paginating until cursor is null.
15
+ // Returns insert/reject counts and the first signer seen (for peer identity discovery).
16
+ async function pullNamespace(peer, namespace, db) {
17
17
  let cursor = undefined;
18
18
  let inserted = 0;
19
19
  let rejected = 0;
20
- let discoveredSigner = null;
21
- try {
22
- do {
23
- const url = buildRecordsUrl(peer.url, namespace, peer.lastSyncAt, cursor);
24
- const body = await fetchRecords(url);
25
- if (body.protocol !== SUPPORTED_PROTOCOL) {
26
- console.warn(`[sync] ${peer.url} speaks protocol ${body.protocol} — skipping`);
27
- return { healthy: false, nodeVersion: body.node_version ?? peer.nodeVersion };
20
+ let signer = null;
21
+ do {
22
+ const url = buildRecordsUrl(peer.url, namespace, peer.lastSyncAt, cursor);
23
+ const body = await fetchRecords(url);
24
+ if (body.protocol !== SUPPORTED_PROTOCOL) {
25
+ return { inserted, rejected, signer, unsupported: true };
26
+ }
27
+ for (const record of body.records) {
28
+ const result = await validateAndInsert(record, db, peer.signerAddress);
29
+ if (result.inserted) {
30
+ inserted++;
31
+ if (result.signer && !signer)
32
+ signer = result.signer;
28
33
  }
29
- for (const record of body.records) {
30
- const result = await validateAndInsert(record, db, peer.signerAddress);
31
- if (result.inserted) {
32
- inserted++;
33
- if (result.signer && !discoveredSigner)
34
- discoveredSigner = result.signer;
35
- }
36
- else {
37
- rejected++;
38
- }
34
+ else {
35
+ rejected++;
39
36
  }
40
- cursor = body.cursor ?? undefined;
41
- } while (cursor !== undefined);
37
+ }
38
+ cursor = body.cursor ?? undefined;
39
+ } while (cursor !== undefined);
40
+ return { inserted, rejected, signer, unsupported: false };
41
+ }
42
+ // Pull all new records from a single peer — base namespace + wyriwe sub-namespace.
43
+ // Runs peer gossip (auto-discovery) and fetches VNI/health once after both namespaces sync.
44
+ export async function syncPeer(peer, namespace, db, autoDiscover = true, nodeUrl) {
45
+ let discoveredSigner = null;
46
+ try {
47
+ // Sync base namespace
48
+ const base = await pullNamespace(peer, namespace, db);
49
+ if (base.unsupported) {
50
+ console.warn(`[sync] ${peer.url} speaks unsupported protocol — skipping`);
51
+ return { healthy: false };
52
+ }
53
+ if (base.signer)
54
+ discoveredSigner = base.signer;
55
+ // Sync wyriwe sub-namespace — best-effort, never fails the peer
56
+ const wyriwe = await pullNamespace(peer, namespace + ':wyriwe', db).catch(() => ({ inserted: 0, rejected: 0, signer: null, unsupported: false }));
57
+ if (wyriwe.signer && !discoveredSigner)
58
+ discoveredSigner = wyriwe.signer;
59
+ const inserted = base.inserted + wyriwe.inserted;
60
+ const rejected = base.rejected + wyriwe.rejected;
42
61
  if (inserted > 0 || rejected > 0) {
43
62
  console.log(`[sync] ${peer.url} — +${inserted} inserted, ${rejected} rejected`);
44
63
  }
@@ -49,7 +68,7 @@ export async function syncPeer(peer, namespace, db, autoDiscover = true) {
49
68
  const health = await fetchPeerHealth(peer.url);
50
69
  // Auto-discovery: pull peer's known peers and add any new ones
51
70
  if (autoDiscover)
52
- await discoverPeers(peer, db);
71
+ await discoverPeers(peer, db, nodeUrl);
53
72
  const resolvedVersion = vni?.version ?? health?.version ?? peer.nodeVersion ?? null;
54
73
  if (resolvedVersion && isOlderVersion(resolvedVersion, NODE_VERSION)) {
55
74
  console.warn(`[sync] ${peer.url} is running v${resolvedVersion} — we are v${NODE_VERSION}. ` +
@@ -137,7 +156,7 @@ async function fetchPeerHealth(baseUrl) {
137
156
  }
138
157
  // Fetch the peer's /peers list and add any newly discovered nodes to our DB.
139
158
  // Bounded to 10 new peers per sync cycle — prevents runaway growth.
140
- async function discoverPeers(peer, db) {
159
+ async function discoverPeers(peer, db, nodeUrl) {
141
160
  try {
142
161
  const res = await fetch(new URL('/peers', peer.url).toString(), {
143
162
  signal: AbortSignal.timeout(5_000),
@@ -149,6 +168,7 @@ async function discoverPeers(peer, db) {
149
168
  return;
150
169
  const existing = new Set((await db.getPeers()).map((p) => p.url));
151
170
  let added = 0;
171
+ const selfUrl = nodeUrl?.replace(/\/$/, '') ?? '';
152
172
  for (const discovered of data.peers) {
153
173
  if (added >= 10)
154
174
  break;
@@ -161,6 +181,8 @@ async function discoverPeers(peer, db) {
161
181
  continue;
162
182
  }
163
183
  const url = discovered.url.replace(/\/$/, '');
184
+ if (selfUrl && url === selfUrl)
185
+ continue; // never add self as peer
164
186
  await db.upsertPeer({ url, lastSyncAt: 0, healthy: true, nodeVersion: null, signerAddress: discovered.signerAddress });
165
187
  added++;
166
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/mesh/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/mesh/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccip-router",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "The coordination layer CCIP-Read was missing. Peer sync, deduplication, and cryptographic attestation for any CCIP-Read gateway.",
5
5
  "type": "module",
6
6
  "main": "./dist/lib.js",
@@ -27,7 +27,9 @@
27
27
  "contracts/IAttestationVerifier.sol",
28
28
  "contracts/AttestationIndex.sol",
29
29
  "contracts/NodeRegistry.sol",
30
- "contracts/WyriweAttestationVerifier.sol"
30
+ "contracts/WyriweAttestationVerifier.sol",
31
+ "contracts/OffchainResolver.sol",
32
+ "contracts/NodeRegistry.sol"
31
33
  ],
32
34
  "keywords": [
33
35
  "ccip-read",