ccip-router 0.3.0 → 0.4.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 CHANGED
@@ -108,7 +108,7 @@ graph TB
108
108
  S["EIP-191 · Record signing\nkeccak256(inputHash · namespace · valueHash · ts)"]
109
109
  W["WYRIWE · Input provenance\nsentinel path: inputHash = rawInputHash\nnon-sentinel: inputHash = keccak256(abi.encode(raw, pipelineHash))"]
110
110
  I["ERC-8004 · Agent identity\nagentId · registryAddress declared on-chain"]
111
- O["OCP / ERC-8263 · Observation commitment\ncommitmentHash = keccak256(agentId · modelHash · inputHash · outputHash · ts)\nproofHash in TruthAnchorV1 = commitmentHash"]
111
+ O["OCP / ERC-8263 · Observation commitment\ncommitmentHash = keccak256(agentId · modelHash · inputHash · outputHash · ts)\nccip-router anchors commitmentHash as proofHash in TruthAnchorV1"]
112
112
  A["EIP-712 · WyriweAttestation\nstructured signing · verifiable by any peer · synced by mesh"]
113
113
  V["VNI · Node identity\nEIP-191 signed { nodeId · signerAddress · url · version · ts }"]
114
114
  C["On-chain anchoring · Sepolia\nAttestationIndex — signerOf · commitmentOf\nNodeRegistry — register(url, sig)"]
@@ -126,7 +126,7 @@ All ccip-router contracts are permissionless — no owner, no admin. One deploym
126
126
  |---|---|---|
127
127
  | `AttestationIndex` | [`0x107D706112225aC57eCf6692FBbDC283fb6E3698`](https://sepolia.etherscan.io/address/0x107D706112225aC57eCf6692FBbDC283fb6E3698) | ccip-router's OCP-compatible commitment store. Stores `signerOf[commitmentHash]` and `commitmentOf[inputHash]`. Valid OCP anchor — distinct from the ERC-8263 canonical contract. |
128
128
  | `NodeRegistry` | [`0x6be4966596A9CBaa7260ab6EbbFFA69bBC9a42b7`](https://sepolia.etherscan.io/address/0x6be4966596A9CBaa7260ab6EbbFFA69bBC9a42b7) | Public directory of nodes. `register(url, sig)` proves key ownership via EIP-191 — the relayer (`msg.sender`) does not need to be the signing key. |
129
- | `WyriweProofVerifier` | [`0x001eFFa0fD1D171b164808644678F3301d8EDC96`](https://sepolia.etherscan.io/address/0x001eFFa0fD1D171b164808644678F3301d8EDC96) | ERC-8274 `IProofVerifier` implementation. `verify(inputHash, outputHash, abi.encode(agentId, registry), abi.encode(modelHash, rawInputHash, sanitizationPipelineHash, commitmentHash, timestamp, sig))` — recomputes OCP commitment, recovers signer, returns bool. No external calls. |
129
+ | `WyriweProofVerifier` | [`0x001eFFa0fD1D171b164808644678F3301d8EDC96`](https://sepolia.etherscan.io/address/0x001eFFa0fD1D171b164808644678F3301d8EDC96#code) | ERC-8274 `IProofVerifier` implementation. `verify(inputHash, outputHash, abi.encode(agentId, registry), abi.encode(modelHash, rawInputHash, sanitizationPipelineHash, commitmentHash, timestamp, sig))` — recomputes OCP commitment, recovers signer, returns bool. No external calls. |
130
130
  | `WyriweAttestationVerifier` *(deprecated)* | [`0x9515D6e53D2D45C1CFE6181943ca11C150C2bf61`](https://sepolia.etherscan.io/address/0x9515D6e53D2D45C1CFE6181943ca11C150C2bf61) | ERC-8183 `IAttestationVerifier`. Superseded by `WyriweProofVerifier`. |
131
131
 
132
132
  **ERC-8263 canonical reference contract** (Vincent Wu, not ccip-router):
@@ -137,7 +137,7 @@ All ccip-router contracts are permissionless — no owner, no admin. One deploym
137
137
 
138
138
  `TruthAnchorV1` emits the canonical `AnchorProof(uint8 agentIdScheme, bytes32 agentId, bytes32 proofHash, address operator, bytes aux)` event that OCP's ERC-8263 extraction rule is written against. `AttestationIndex` sits alongside it as the transport-layer commitment store — the two are separate primitives by design.
139
139
 
140
- **How ccip-router connects to ERC-8263:** `proofHash` in `TruthAnchorV1` = `commitmentHash` in the `WyriweAttestation` struct = `keccak256(abi.encode(agentId, modelHash, inputHash, outputHash, timestamp))`. The full chain: inference runs → gateway signs `WyriweAttestation` (producing `commitmentHash`) → `anchor(commitmentHash)` is called on `TruthAnchorV1` → `AnchorProof` event is emitted. To verify L3 anchoring, filter `AnchorProof` by the `proofHash` topic (= your `commitmentHash`) and compare the anchoring block's timestamp against your execution time. This is an `eth_getLogs` read — V1 is event-only by design (no per-anchor storage cost). A synchronous on-chain view (`IAnchorReader`) is proposed for ERC-8263 v0.3.
140
+ **How ccip-router connects to ERC-8263:** ccip-router anchors its `commitmentHash` as the `proofHash` in `TruthAnchorV1`. ERC-8263's `proofHash` is deliberately opaque — the same anchor layer serves OCP, WYRIWE, and zkML uniformly. ccip-router's `commitmentHash = keccak256(abi.encode(agentId, modelHash, inputHash, outputHash, timestamp))` is one canonical instantiation of it, not the definition. Full chain: inference runs → gateway signs `WyriweAttestation` (producing `commitmentHash`) → `anchor(commitmentHash)` called on `TruthAnchorV1` as the `proofHash` → `AnchorProof` event emitted. To verify L3 anchoring, filter `AnchorProof` by the `proofHash` topic (= your `commitmentHash`) and compare the anchoring block's timestamp against your execution time. V1 is event-only by design (no per-anchor storage cost). A synchronous on-chain view (`IAnchorReader`) is proposed for ERC-8263 v0.3.
141
141
 
142
142
  Deployed by [`0xFf9a176577Fb42b6bc9c19fd05a241e8fCd0ca14`](https://sepolia.etherscan.io/address/0xFf9a176577Fb42b6bc9c19fd05a241e8fCd0ca14) · Solc 0.8.24 · optimizer 200 runs.
143
143
 
@@ -1 +1 @@
1
- {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/mesh/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAO3B,eAAO,MAAM,aAAa,4EAAa,CAAA;AA2BvC,eAAO,MAAM,WAAW,4EAAa,CAAA"}
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/mesh/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,eAAO,MAAM,aAAa,4EAAa,CAAA;AA2BvC,eAAO,MAAM,WAAW,4EAAa,CAAA"}
@@ -2,6 +2,7 @@ import { Hono } from 'hono';
2
2
  import { getDB } from '../db/index.js';
3
3
  import { getConfig } from '../config.js';
4
4
  import { privateKeyToAccount } from 'viem/accounts';
5
+ import { NODE_VERSION } from '../version.js';
5
6
  // Standard mesh sync interface — any CCIP gateway implementing this is mesh-compatible
6
7
  // GET /records?since=<unix_timestamp>&namespace=<string>&limit=<n>&cursor=<string>
7
8
  export const recordsRouter = new Hono();
@@ -18,7 +19,7 @@ recordsRouter.get('/', async (c) => {
18
19
  : null;
19
20
  return c.json({
20
21
  protocol: 1,
21
- node_version: '0.2.0',
22
+ node_version: NODE_VERSION,
22
23
  namespace,
23
24
  records,
24
25
  cursor: nextCursor,
@@ -34,7 +35,7 @@ peersRouter.get('/', async (c) => {
34
35
  const signerAddress = config.gatewayKey ? privateKeyToAccount(config.gatewayKey).address : null;
35
36
  return c.json({
36
37
  protocol: 1,
37
- node_version: '0.2.0',
38
+ node_version: NODE_VERSION,
38
39
  signerAddress,
39
40
  peers: peers.map((p) => ({
40
41
  url: p.url,
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/mesh/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,uFAAuF;AACvF,mFAAmF;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAA;AAEvC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjC,MAAM,KAAK,GAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAA;IAClE,MAAM,KAAK,GAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACpE,MAAM,MAAM,GAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;IAEpD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEzE,gEAAgE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK;QACzC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;QACrF,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAM,CAAC;QACf,YAAY,EAAE,OAAO;QACrB,SAAS;QACT,OAAO;QACP,MAAM,EAAQ,UAAU;KACzB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,4DAA4D;AAC5D,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;AAErC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAO,KAAK,EAAE,CAAA;IACtB,MAAM,KAAK,GAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;IAClC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAQ,CAAC;QACjB,YAAY,EAAG,OAAO;QACtB,aAAa;QACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,EAAY,CAAC,CAAC,GAAG;YACpB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,OAAO,EAAQ,CAAC,CAAC,OAAO;YACxB,UAAU,EAAK,CAAC,CAAC,UAAU;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/mesh/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,uFAAuF;AACvF,mFAAmF;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAA;AAEvC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjC,MAAM,KAAK,GAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAA;IAClE,MAAM,KAAK,GAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACpE,MAAM,MAAM,GAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;IAEpD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEzE,gEAAgE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK;QACzC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;QACrF,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAM,CAAC;QACf,YAAY,EAAE,YAAY;QAC1B,SAAS;QACT,OAAO;QACP,MAAM,EAAQ,UAAU;KACzB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,4DAA4D;AAC5D,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;AAErC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAO,KAAK,EAAE,CAAA;IACtB,MAAM,KAAK,GAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;IAClC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,QAAQ,EAAQ,CAAC;QACjB,YAAY,EAAG,YAAY;QAC3B,aAAa;QACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,EAAY,CAAC,CAAC,GAAG;YACpB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,OAAO,EAAQ,CAAC,CAAC,OAAO;YACxB,UAAU,EAAK,CAAC,CAAC,UAAU;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -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;AAK1C,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,CAqD7B"}
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"}
package/dist/mesh/sync.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { recoverRecordSigner } from '../crypto/index.js';
2
2
  import { fetchPeerVni, verifyVni } from './vni.js';
3
+ import { NODE_VERSION } from '../version.js';
3
4
  // Manual sync trigger — used by the admin dashboard "Sync now" button.
4
5
  export async function syncAll(config, db) {
5
6
  const peers = await db.getPeers();
@@ -49,10 +50,15 @@ export async function syncPeer(peer, namespace, db, autoDiscover = true) {
49
50
  // Auto-discovery: pull peer's known peers and add any new ones
50
51
  if (autoDiscover)
51
52
  await discoverPeers(peer, db);
53
+ const resolvedVersion = vni?.version ?? health?.version ?? peer.nodeVersion ?? null;
54
+ if (resolvedVersion && isOlderVersion(resolvedVersion, NODE_VERSION)) {
55
+ console.warn(`[sync] ${peer.url} is running v${resolvedVersion} — we are v${NODE_VERSION}. ` +
56
+ `Peer should upgrade.`);
57
+ }
52
58
  return {
53
59
  healthy: true,
54
60
  lastSyncAt: Math.floor(Date.now() / 1000),
55
- nodeVersion: vni?.version ?? health?.version ?? peer.nodeVersion,
61
+ nodeVersion: resolvedVersion,
56
62
  signerAddress: vniSigner ?? discoveredSigner ?? health?.signerAddress ?? peer.signerAddress,
57
63
  };
58
64
  }
@@ -92,10 +98,24 @@ function buildRecordsUrl(baseUrl, namespace, since, cursor) {
92
98
  url.searchParams.set('namespace', namespace);
93
99
  url.searchParams.set('since', String(since));
94
100
  url.searchParams.set('limit', '500');
101
+ url.searchParams.set('protocol', String(SUPPORTED_PROTOCOL));
95
102
  if (cursor)
96
103
  url.searchParams.set('cursor', cursor);
97
104
  return url.toString();
98
105
  }
106
+ // Returns true if `a` is an older semver than `b`. Non-semver strings return false.
107
+ function isOlderVersion(a, b) {
108
+ const parse = (v) => v.split('.').map(Number);
109
+ const [aMaj, aMin, aPatch] = parse(a);
110
+ const [bMaj, bMin, bPatch] = parse(b);
111
+ if (isNaN(aMaj) || isNaN(bMaj))
112
+ return false;
113
+ if (aMaj !== bMaj)
114
+ return aMaj < bMaj;
115
+ if (aMin !== bMin)
116
+ return aMin < bMin;
117
+ return (aPatch ?? 0) < (bPatch ?? 0);
118
+ }
99
119
  async function fetchRecords(url) {
100
120
  const res = await fetch(url, { signal: AbortSignal.timeout(10_000) });
101
121
  if (!res.ok)
@@ -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.3.0",
3
+ "version": "0.4.0",
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",