@oobe-protocol-labs/synapse-sap-sdk 0.6.2 → 0.7.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.
Files changed (140) hide show
  1. package/dist/cjs/constants/seeds.js +7 -0
  2. package/dist/cjs/constants/seeds.js.map +1 -1
  3. package/dist/cjs/core/client.js +42 -0
  4. package/dist/cjs/core/client.js.map +1 -1
  5. package/dist/cjs/events/geyser.js +295 -0
  6. package/dist/cjs/events/geyser.js.map +1 -0
  7. package/dist/cjs/idl/synapse_agent_sap.json +7545 -3501
  8. package/dist/cjs/index.js +28 -3
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/modules/escrow-v2.js +241 -0
  11. package/dist/cjs/modules/escrow-v2.js.map +1 -0
  12. package/dist/cjs/modules/escrow.js +4 -0
  13. package/dist/cjs/modules/escrow.js.map +1 -1
  14. package/dist/cjs/modules/index.js +7 -1
  15. package/dist/cjs/modules/index.js.map +1 -1
  16. package/dist/cjs/modules/staking.js +94 -0
  17. package/dist/cjs/modules/staking.js.map +1 -0
  18. package/dist/cjs/modules/subscription.js +96 -0
  19. package/dist/cjs/modules/subscription.js.map +1 -0
  20. package/dist/cjs/pda/index.js +143 -1
  21. package/dist/cjs/pda/index.js.map +1 -1
  22. package/dist/cjs/postgres/sync.js +72 -4
  23. package/dist/cjs/postgres/sync.js.map +1 -1
  24. package/dist/cjs/registries/x402.js +88 -51
  25. package/dist/cjs/registries/x402.js.map +1 -1
  26. package/dist/cjs/types/enums.js +51 -1
  27. package/dist/cjs/types/enums.js.map +1 -1
  28. package/dist/cjs/types/index.js +4 -1
  29. package/dist/cjs/types/index.js.map +1 -1
  30. package/dist/cjs/types/instructions.js.map +1 -1
  31. package/dist/cjs/utils/escrow-validation.js +219 -0
  32. package/dist/cjs/utils/escrow-validation.js.map +1 -0
  33. package/dist/cjs/utils/index.js +12 -1
  34. package/dist/cjs/utils/index.js.map +1 -1
  35. package/dist/cjs/utils/merchant-validator.js +246 -0
  36. package/dist/cjs/utils/merchant-validator.js.map +1 -0
  37. package/dist/cjs/utils/x402-direct.js +231 -0
  38. package/dist/cjs/utils/x402-direct.js.map +1 -0
  39. package/dist/esm/constants/seeds.js +7 -0
  40. package/dist/esm/constants/seeds.js.map +1 -1
  41. package/dist/esm/core/client.js +42 -0
  42. package/dist/esm/core/client.js.map +1 -1
  43. package/dist/esm/events/geyser.js +258 -0
  44. package/dist/esm/events/geyser.js.map +1 -0
  45. package/dist/esm/idl/synapse_agent_sap.json +7545 -3501
  46. package/dist/esm/index.js +7 -3
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/modules/escrow-v2.js +237 -0
  49. package/dist/esm/modules/escrow-v2.js.map +1 -0
  50. package/dist/esm/modules/escrow.js +4 -0
  51. package/dist/esm/modules/escrow.js.map +1 -1
  52. package/dist/esm/modules/index.js +3 -0
  53. package/dist/esm/modules/index.js.map +1 -1
  54. package/dist/esm/modules/staking.js +90 -0
  55. package/dist/esm/modules/staking.js.map +1 -0
  56. package/dist/esm/modules/subscription.js +92 -0
  57. package/dist/esm/modules/subscription.js.map +1 -0
  58. package/dist/esm/pda/index.js +135 -0
  59. package/dist/esm/pda/index.js.map +1 -1
  60. package/dist/esm/postgres/sync.js +72 -4
  61. package/dist/esm/postgres/sync.js.map +1 -1
  62. package/dist/esm/registries/x402.js +89 -52
  63. package/dist/esm/registries/x402.js.map +1 -1
  64. package/dist/esm/types/enums.js +50 -0
  65. package/dist/esm/types/enums.js.map +1 -1
  66. package/dist/esm/types/index.js +1 -1
  67. package/dist/esm/types/index.js.map +1 -1
  68. package/dist/esm/types/instructions.js.map +1 -1
  69. package/dist/esm/utils/escrow-validation.js +212 -0
  70. package/dist/esm/utils/escrow-validation.js.map +1 -0
  71. package/dist/esm/utils/index.js +4 -0
  72. package/dist/esm/utils/index.js.map +1 -1
  73. package/dist/esm/utils/merchant-validator.js +241 -0
  74. package/dist/esm/utils/merchant-validator.js.map +1 -0
  75. package/dist/esm/utils/x402-direct.js +228 -0
  76. package/dist/esm/utils/x402-direct.js.map +1 -0
  77. package/dist/types/constants/seeds.d.ts +7 -0
  78. package/dist/types/constants/seeds.d.ts.map +1 -1
  79. package/dist/types/core/client.d.ts +33 -0
  80. package/dist/types/core/client.d.ts.map +1 -1
  81. package/dist/types/events/geyser.d.ts +150 -0
  82. package/dist/types/events/geyser.d.ts.map +1 -0
  83. package/dist/types/index.d.ts +8 -4
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/modules/escrow-v2.d.ts +51 -0
  86. package/dist/types/modules/escrow-v2.d.ts.map +1 -0
  87. package/dist/types/modules/escrow.d.ts +4 -0
  88. package/dist/types/modules/escrow.d.ts.map +1 -1
  89. package/dist/types/modules/index.d.ts +3 -0
  90. package/dist/types/modules/index.d.ts.map +1 -1
  91. package/dist/types/modules/staking.d.ts +32 -0
  92. package/dist/types/modules/staking.d.ts.map +1 -0
  93. package/dist/types/modules/subscription.d.ts +33 -0
  94. package/dist/types/modules/subscription.d.ts.map +1 -0
  95. package/dist/types/pda/index.d.ts +99 -0
  96. package/dist/types/pda/index.d.ts.map +1 -1
  97. package/dist/types/plugin/schemas.d.ts +2 -2
  98. package/dist/types/postgres/sync.d.ts +26 -2
  99. package/dist/types/postgres/sync.d.ts.map +1 -1
  100. package/dist/types/registries/x402.d.ts +14 -12
  101. package/dist/types/registries/x402.d.ts.map +1 -1
  102. package/dist/types/types/accounts.d.ts +157 -1
  103. package/dist/types/types/accounts.d.ts.map +1 -1
  104. package/dist/types/types/enums.d.ts +64 -0
  105. package/dist/types/types/enums.d.ts.map +1 -1
  106. package/dist/types/types/index.d.ts +4 -4
  107. package/dist/types/types/index.d.ts.map +1 -1
  108. package/dist/types/types/instructions.d.ts +34 -0
  109. package/dist/types/types/instructions.d.ts.map +1 -1
  110. package/dist/types/utils/escrow-validation.d.ts +145 -0
  111. package/dist/types/utils/escrow-validation.d.ts.map +1 -0
  112. package/dist/types/utils/index.d.ts +6 -0
  113. package/dist/types/utils/index.d.ts.map +1 -1
  114. package/dist/types/utils/merchant-validator.d.ts +176 -0
  115. package/dist/types/utils/merchant-validator.d.ts.map +1 -0
  116. package/dist/types/utils/x402-direct.d.ts +114 -0
  117. package/dist/types/utils/x402-direct.d.ts.map +1 -0
  118. package/package.json +5 -1
  119. package/src/constants/seeds.ts +7 -0
  120. package/src/core/client.ts +45 -0
  121. package/src/events/geyser.ts +384 -0
  122. package/src/events/yellowstone.d.ts +7 -0
  123. package/src/idl/synapse_agent_sap.json +7545 -3501
  124. package/src/index.ts +51 -0
  125. package/src/modules/escrow-v2.ts +396 -0
  126. package/src/modules/escrow.ts +4 -0
  127. package/src/modules/index.ts +3 -0
  128. package/src/modules/staking.ts +122 -0
  129. package/src/modules/subscription.ts +147 -0
  130. package/src/pda/index.ts +196 -0
  131. package/src/postgres/sync.ts +90 -4
  132. package/src/registries/x402.ts +108 -69
  133. package/src/types/accounts.ts +192 -1
  134. package/src/types/enums.ts +65 -0
  135. package/src/types/index.ts +15 -0
  136. package/src/types/instructions.ts +40 -0
  137. package/src/utils/escrow-validation.ts +301 -0
  138. package/src/utils/index.ts +28 -0
  139. package/src/utils/merchant-validator.ts +359 -0
  140. package/src/utils/x402-direct.ts +370 -0
@@ -20,7 +20,7 @@
20
20
  * ```
21
21
  */
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.deriveMemoryChunk = exports.deriveMemoryEntry = exports.derivePlugin = exports.deriveDigest = exports.deriveBuffer = exports.deriveLedgerPage = exports.deriveLedger = exports.deriveAttestation = exports.deriveEscrow = exports.deriveTool = exports.deriveCheckpoint = exports.deriveVaultDelegate = exports.deriveEpochPage = exports.deriveSession = exports.deriveVault = exports.deriveToolCategoryIndex = exports.deriveProtocolIndex = exports.deriveCapabilityIndex = exports.deriveFeedback = exports.deriveAgentStats = exports.deriveAgent = exports.deriveGlobalRegistry = void 0;
23
+ exports.deriveIndexPage = exports.deriveShard = exports.deriveSubscription = exports.deriveStake = exports.deriveDispute = exports.derivePendingSettlement = exports.deriveEscrowV2 = exports.deriveMemoryChunk = exports.deriveMemoryEntry = exports.derivePlugin = exports.deriveDigest = exports.deriveBuffer = exports.deriveLedgerPage = exports.deriveLedger = exports.deriveAttestation = exports.deriveEscrow = exports.deriveTool = exports.deriveCheckpoint = exports.deriveVaultDelegate = exports.deriveEpochPage = exports.deriveSession = exports.deriveVault = exports.deriveToolCategoryIndex = exports.deriveProtocolIndex = exports.deriveCapabilityIndex = exports.deriveFeedback = exports.deriveAgentStats = exports.deriveAgent = exports.deriveGlobalRegistry = void 0;
24
24
  const web3_js_1 = require("@solana/web3.js");
25
25
  const constants_1 = require("../constants");
26
26
  // ── Helpers ──────────────────────────────────────────────────────
@@ -62,6 +62,21 @@ const u32le = (n) => {
62
62
  buf.writeUInt32LE(n, 0);
63
63
  return buf;
64
64
  };
65
+ /**
66
+ * Encode an unsigned 64-bit integer as a little-endian `Buffer`.
67
+ *
68
+ * @name u64le
69
+ * @description Produces an 8-byte LE buffer for u64 PDA seed segments (e.g., escrow nonce, sub_id).
70
+ * @param n - The number or bigint to encode.
71
+ * @returns {Buffer} 8-byte little-endian buffer.
72
+ * @category PDA
73
+ * @since v0.5.0
74
+ */
75
+ const u64le = (n) => {
76
+ const buf = Buffer.alloc(8);
77
+ buf.writeBigUInt64LE(BigInt(n), 0);
78
+ return buf;
79
+ };
65
80
  // ═════════════════════════════════════════════
66
81
  // Core PDAs
67
82
  // ═════════════════════════════════════════════
@@ -314,6 +329,7 @@ exports.deriveTool = deriveTool;
314
329
  * @returns {PdaResult} `[pda, bump]` tuple.
315
330
  * @category PDA
316
331
  * @since v0.1.0
332
+ * @deprecated Since v0.7.0 — Use {@link deriveEscrowV2} for V2 escrows with nonce support.
317
333
  * @see EscrowAccount
318
334
  */
319
335
  const deriveEscrow = (agentPda, depositor, programId = constants_1.SAP_PROGRAM_ID) => findPda([toSeedBuf(constants_1.SEEDS.ESCROW), agentPda.toBuffer(), depositor.toBuffer()], programId);
@@ -474,4 +490,130 @@ const deriveMemoryChunk = (memoryEntryPda, chunkIndex, programId = constants_1.S
474
490
  Buffer.from([chunkIndex]),
475
491
  ], programId);
476
492
  exports.deriveMemoryChunk = deriveMemoryChunk;
493
+ // ═════════════════════════════════════════════
494
+ // Escrow V2
495
+ // ═════════════════════════════════════════════
496
+ /**
497
+ * Derive the **EscrowAccountV2** PDA.
498
+ *
499
+ * Seeds: `["sap_escrow_v2", agent_pda, depositor_wallet, nonce_u64_le]`
500
+ *
501
+ * @name deriveEscrowV2
502
+ * @description Computes the V2 escrow PDA supporting nonce-based multi-escrow.
503
+ * @param agentPda - The agent's PDA.
504
+ * @param depositor - The depositor's wallet.
505
+ * @param nonce - Escrow nonce (u64) allowing multiple escrows per pair.
506
+ * @param programId - Override program ID.
507
+ * @returns {PdaResult} `[pda, bump]` tuple.
508
+ * @category PDA
509
+ * @since v0.5.0
510
+ */
511
+ const deriveEscrowV2 = (agentPda, depositor, nonce = 0, programId = constants_1.SAP_PROGRAM_ID) => findPda([
512
+ toSeedBuf(constants_1.SEEDS.ESCROW_V2),
513
+ agentPda.toBuffer(),
514
+ depositor.toBuffer(),
515
+ u64le(nonce),
516
+ ], programId);
517
+ exports.deriveEscrowV2 = deriveEscrowV2;
518
+ /**
519
+ * Derive the **PendingSettlement** PDA.
520
+ *
521
+ * Seeds: `["sap_pending", escrow_v2_pda, settlement_index_u64_le]`
522
+ *
523
+ * @name derivePendingSettlement
524
+ * @param escrowV2Pda - The parent V2 escrow PDA.
525
+ * @param settlementIndex - The monotonic settlement index (u64).
526
+ * @param programId - Override program ID.
527
+ * @returns {PdaResult} `[pda, bump]` tuple.
528
+ * @category PDA
529
+ * @since v0.5.0
530
+ */
531
+ const derivePendingSettlement = (escrowV2Pda, settlementIndex, programId = constants_1.SAP_PROGRAM_ID) => findPda([
532
+ toSeedBuf(constants_1.SEEDS.PENDING),
533
+ escrowV2Pda.toBuffer(),
534
+ u64le(settlementIndex),
535
+ ], programId);
536
+ exports.derivePendingSettlement = derivePendingSettlement;
537
+ /**
538
+ * Derive the **DisputeRecord** PDA.
539
+ *
540
+ * Seeds: `["sap_dispute", pending_settlement_pda]`
541
+ *
542
+ * @name deriveDispute
543
+ * @param pendingSettlementPda - The parent pending settlement PDA.
544
+ * @param programId - Override program ID.
545
+ * @returns {PdaResult} `[pda, bump]` tuple.
546
+ * @category PDA
547
+ * @since v0.5.0
548
+ */
549
+ const deriveDispute = (pendingSettlementPda, programId = constants_1.SAP_PROGRAM_ID) => findPda([toSeedBuf(constants_1.SEEDS.DISPUTE), pendingSettlementPda.toBuffer()], programId);
550
+ exports.deriveDispute = deriveDispute;
551
+ /**
552
+ * Derive the **AgentStake** PDA.
553
+ *
554
+ * Seeds: `["sap_stake", agent_pda]`
555
+ *
556
+ * @name deriveStake
557
+ * @param agentPda - The agent's PDA.
558
+ * @param programId - Override program ID.
559
+ * @returns {PdaResult} `[pda, bump]` tuple.
560
+ * @category PDA
561
+ * @since v0.5.0
562
+ */
563
+ const deriveStake = (agentPda, programId = constants_1.SAP_PROGRAM_ID) => findPda([toSeedBuf(constants_1.SEEDS.STAKE), agentPda.toBuffer()], programId);
564
+ exports.deriveStake = deriveStake;
565
+ /**
566
+ * Derive the **Subscription** PDA.
567
+ *
568
+ * Seeds: `["sap_sub", agent_pda, subscriber_wallet, sub_id_u64_le]`
569
+ *
570
+ * @name deriveSubscription
571
+ * @param agentPda - The agent's PDA.
572
+ * @param subscriber - The subscriber's wallet.
573
+ * @param subId - Subscription ID (u64).
574
+ * @param programId - Override program ID.
575
+ * @returns {PdaResult} `[pda, bump]` tuple.
576
+ * @category PDA
577
+ * @since v0.5.0
578
+ */
579
+ const deriveSubscription = (agentPda, subscriber, subId = 0, programId = constants_1.SAP_PROGRAM_ID) => findPda([
580
+ toSeedBuf(constants_1.SEEDS.SUBSCRIPTION),
581
+ agentPda.toBuffer(),
582
+ subscriber.toBuffer(),
583
+ u64le(subId),
584
+ ], programId);
585
+ exports.deriveSubscription = deriveSubscription;
586
+ /**
587
+ * Derive the **CounterShard** PDA.
588
+ *
589
+ * Seeds: `["sap_shard", shard_index_u8]`
590
+ *
591
+ * @name deriveShard
592
+ * @param shardIndex - The shard index (0–7).
593
+ * @param programId - Override program ID.
594
+ * @returns {PdaResult} `[pda, bump]` tuple.
595
+ * @category PDA
596
+ * @since v0.5.0
597
+ */
598
+ const deriveShard = (shardIndex, programId = constants_1.SAP_PROGRAM_ID) => findPda([toSeedBuf(constants_1.SEEDS.SHARD), Buffer.from([shardIndex])], programId);
599
+ exports.deriveShard = deriveShard;
600
+ /**
601
+ * Derive the **IndexPage** PDA.
602
+ *
603
+ * Seeds: `["sap_idx_page", parent_index_pda, page_index_u8]`
604
+ *
605
+ * @name deriveIndexPage
606
+ * @param parentIndexPda - The parent index PDA (CapabilityIndex, ProtocolIndex, etc.).
607
+ * @param pageIndex - The page index (0–255).
608
+ * @param programId - Override program ID.
609
+ * @returns {PdaResult} `[pda, bump]` tuple.
610
+ * @category PDA
611
+ * @since v0.5.0
612
+ */
613
+ const deriveIndexPage = (parentIndexPda, pageIndex, programId = constants_1.SAP_PROGRAM_ID) => findPda([
614
+ toSeedBuf(constants_1.SEEDS.INDEX_PAGE),
615
+ parentIndexPda.toBuffer(),
616
+ Buffer.from([pageIndex]),
617
+ ], programId);
618
+ exports.deriveIndexPage = deriveIndexPage;
477
619
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pda/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pda/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.SapSyncEngine = void 0;
38
38
  const events_1 = require("../events");
39
+ const geyser_1 = require("../events/geyser");
39
40
  // ═══════════════════════════════════════════════════════════════════
40
41
  // Sync Engine
41
42
  // ═══════════════════════════════════════════════════════════════════
@@ -63,6 +64,7 @@ class SapSyncEngine {
63
64
  debug;
64
65
  intervalId = null;
65
66
  logSubId = null;
67
+ geyserStream = null;
66
68
  running = false;
67
69
  constructor(pg, client, debug = false) {
68
70
  this.pg = pg;
@@ -178,7 +180,7 @@ class SapSyncEngine {
178
180
  }
179
181
  /**
180
182
  * @name stopEventStream
181
- * @description Unsubscribe from the program log stream.
183
+ * @description Unsubscribe from the program log stream (WebSocket or Geyser).
182
184
  * @since v0.1.0
183
185
  */
184
186
  async stopEventStream() {
@@ -186,8 +188,74 @@ class SapSyncEngine {
186
188
  const connection = this.client.program.provider.connection;
187
189
  await connection.removeOnLogsListener(this.logSubId);
188
190
  this.logSubId = null;
189
- this.log("Event stream stopped");
191
+ this.log("WebSocket event stream stopped");
190
192
  }
193
+ if (this.geyserStream) {
194
+ await this.geyserStream.disconnect();
195
+ this.geyserStream = null;
196
+ this.log("Geyser event stream stopped");
197
+ }
198
+ }
199
+ // ═════════════════════════════════════════════
200
+ // Geyser gRPC Event Stream
201
+ // ═════════════════════════════════════════════
202
+ /**
203
+ * @name startGeyserStream
204
+ * @description Subscribe to SAP program transactions via Yellowstone gRPC
205
+ * and insert parsed events into the `sap_events` table in real-time.
206
+ *
207
+ * Drop-in replacement for {@link startEventStream} with lower latency,
208
+ * no missed events, and automatic reconnection.
209
+ *
210
+ * Requires `@triton-one/yellowstone-grpc` to be installed.
211
+ *
212
+ * @param geyserConfig - Yellowstone gRPC connection config.
213
+ * @since v0.6.3
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * await sync.startGeyserStream({
218
+ * endpoint: "https://grpc.triton.one",
219
+ * token: process.env.GEYSER_TOKEN!,
220
+ * });
221
+ * ```
222
+ */
223
+ async startGeyserStream(geyserConfig) {
224
+ if (this.geyserStream) {
225
+ this.log("Geyser stream already running");
226
+ return;
227
+ }
228
+ const eventParser = new events_1.EventParser(this.client.program);
229
+ const stream = new geyser_1.GeyserEventStream(geyserConfig);
230
+ stream.on("logs", async (logs, signature, slot) => {
231
+ try {
232
+ const events = eventParser.parseLogs(logs);
233
+ for (const event of events) {
234
+ const data = event.data;
235
+ const agentPda = data.agent ?? data.agentPda ?? undefined;
236
+ const wallet = data.wallet ?? data.owner ?? undefined;
237
+ await this.pg.syncEvent(event.name, signature, slot, data, agentPda, wallet);
238
+ }
239
+ }
240
+ catch (err) {
241
+ this.log(`Geyser event parse error: ${err}`);
242
+ }
243
+ });
244
+ stream.on("connected", () => {
245
+ this.log("Geyser gRPC connected");
246
+ });
247
+ stream.on("disconnected", (reason) => {
248
+ this.log(`Geyser gRPC disconnected: ${reason}`);
249
+ });
250
+ stream.on("error", (err) => {
251
+ this.log(`Geyser error: ${err.message}`);
252
+ });
253
+ stream.on("reconnecting", (attempt) => {
254
+ this.log(`Geyser reconnecting (attempt ${attempt})...`);
255
+ });
256
+ await stream.connect();
257
+ this.geyserStream = stream;
258
+ this.log("Geyser event stream started");
191
259
  }
192
260
  // ═════════════════════════════════════════════
193
261
  // Status
@@ -202,11 +270,11 @@ class SapSyncEngine {
202
270
  }
203
271
  /**
204
272
  * @name isStreaming
205
- * @description Check whether the event stream is active.
273
+ * @description Check whether the event stream is active (WebSocket or Geyser).
206
274
  * @since v0.1.0
207
275
  */
208
276
  isStreaming() {
209
- return this.logSubId !== null;
277
+ return this.logSubId !== null || this.geyserStream?.connected === true;
210
278
  }
211
279
  // ═════════════════════════════════════════════
212
280
  // Internal
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/postgres/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/postgres/sync.ts"],"names":[],"mappings":"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"}
@@ -132,14 +132,13 @@ class X402Registry {
132
132
  totalBefore = opts.totalCallsBefore ?? 0;
133
133
  }
134
134
  else {
135
- // Try to read from existing escrow
135
+ // Try to read from existing escrow (V2 first, then V1)
136
136
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
137
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
138
- const escrow = await this.fetchNullable("escrowAccount", escrowPda);
139
- if (escrow) {
140
- pricePerCall = escrow.pricePerCall;
141
- volumeCurve = escrow.volumeCurve ?? [];
142
- totalBefore = escrow.totalCallsSettled.toNumber();
137
+ const resolved = await this.resolveEscrow(agentPda, this.wallet);
138
+ if (resolved) {
139
+ pricePerCall = resolved.escrow.pricePerCall;
140
+ volumeCurve = resolved.escrow.volumeCurve ?? [];
141
+ totalBefore = resolved.escrow.totalCallsSettled.toNumber();
143
142
  }
144
143
  else {
145
144
  // Fall back to agent's first pricing tier
@@ -231,6 +230,8 @@ class X402Registry {
231
230
  * @param opts - Payment options (price, max calls, deposit, etc.).
232
231
  * @returns A {@link PaymentContext} with escrow details and transaction signature.
233
232
  * @since v0.1.0
233
+ * @deprecated Since v0.7.0 — Creates a V1 escrow. Use `client.escrowV2.create()` for
234
+ * V2 escrows with dispute windows, co-signing, and settlement security.
234
235
  *
235
236
  * @example
236
237
  * ```ts
@@ -244,7 +245,6 @@ class X402Registry {
244
245
  async preparePayment(agentWallet, opts) {
245
246
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
246
247
  const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
247
- const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
248
248
  const pricePerCall = new anchor_1.BN(opts.pricePerCall.toString());
249
249
  const maxCalls = new anchor_1.BN((opts.maxCalls ?? 0).toString());
250
250
  const initialDeposit = new anchor_1.BN(opts.deposit.toString());
@@ -258,7 +258,6 @@ class X402Registry {
258
258
  .accounts({
259
259
  depositor: this.wallet,
260
260
  agent: agentPda,
261
- agentStats: statsPda,
262
261
  escrow: escrowPda,
263
262
  systemProgram: web3_js_1.SystemProgram.programId,
264
263
  })
@@ -282,6 +281,7 @@ class X402Registry {
282
281
  * @param amount - Amount to deposit in smallest token unit.
283
282
  * @returns The transaction signature.
284
283
  * @since v0.1.0
284
+ * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.deposit()` instead.
285
285
  */
286
286
  async addFunds(agentWallet, amount) {
287
287
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
@@ -303,6 +303,7 @@ class X402Registry {
303
303
  * @param amount - Amount to withdraw in smallest token unit.
304
304
  * @returns The transaction signature.
305
305
  * @since v0.1.0
306
+ * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.withdraw()` instead.
306
307
  */
307
308
  async withdrawFunds(agentWallet, amount) {
308
309
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
@@ -324,6 +325,7 @@ class X402Registry {
324
325
  * @param agentWallet - Agent wallet of the escrow.
325
326
  * @returns The transaction signature.
326
327
  * @since v0.1.0
328
+ * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.close()` instead.
327
329
  */
328
330
  async closeEscrow(agentWallet) {
329
331
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
@@ -376,13 +378,13 @@ class X402Registry {
376
378
  */
377
379
  async buildPaymentHeadersFromEscrow(agentWallet, opts) {
378
380
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
379
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
380
- const escrow = await this.fetchNullable("escrowAccount", escrowPda);
381
- if (!escrow)
381
+ const resolved = await this.resolveEscrow(agentPda, this.wallet);
382
+ if (!resolved)
382
383
  return null;
384
+ const escrow = resolved.escrow;
383
385
  return {
384
386
  "X-Payment-Protocol": "SAP-x402",
385
- "X-Payment-Escrow": escrowPda.toBase58(),
387
+ "X-Payment-Escrow": resolved.escrowPda.toBase58(),
386
388
  "X-Payment-Agent": agentPda.toBase58(),
387
389
  "X-Payment-Depositor": this.wallet.toBase58(),
388
390
  "X-Payment-MaxCalls": escrow.maxCalls.toString(),
@@ -426,23 +428,42 @@ class X402Registry {
426
428
  async settle(depositorWallet, callsToSettle, serviceData, opts) {
427
429
  const serviceHash = (0, utils_1.hashToArray)((0, utils_1.sha256)(typeof serviceData === "string" ? serviceData : Buffer.from(serviceData)));
428
430
  const [agentPda] = (0, pda_1.deriveAgent)(this.wallet);
429
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, depositorWallet);
430
431
  const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
431
- // Prefetch to calculate amount
432
- const escrow = await this.fetch("escrowAccount", escrowPda);
432
+ // Auto-detect escrow version
433
+ const resolved = await this.resolveEscrow(agentPda, depositorWallet);
434
+ if (!resolved) {
435
+ throw new Error("No escrow found for this agent + depositor pair");
436
+ }
437
+ const escrow = resolved.escrow;
438
+ const escrowPda = resolved.escrowPda;
433
439
  const estimate = this.calculateCost(escrow.pricePerCall, escrow.volumeCurve, escrow.totalCallsSettled.toNumber(), callsToSettle);
434
440
  // Build priority fee instructions (empty array if no opts)
435
441
  const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(opts);
436
442
  const rpcOpts = (0, priority_fee_1.buildRpcOptions)(opts);
437
- let builder = this.methods
438
- .settleCalls(new anchor_1.BN(callsToSettle), serviceHash)
439
- .accounts({
440
- wallet: this.wallet,
441
- agent: agentPda,
442
- agentStats: statsPda,
443
- escrow: escrowPda,
444
- systemProgram: web3_js_1.SystemProgram.programId,
445
- });
443
+ let builder;
444
+ if (resolved.version === 2) {
445
+ // V2: settleCallsV2 requires escrow_nonce (default 0)
446
+ builder = this.methods
447
+ .settleCallsV2(new anchor_1.BN(0), new anchor_1.BN(callsToSettle), serviceHash)
448
+ .accounts({
449
+ wallet: this.wallet,
450
+ agent: agentPda,
451
+ agentStats: statsPda,
452
+ escrow: escrowPda,
453
+ systemProgram: web3_js_1.SystemProgram.programId,
454
+ });
455
+ }
456
+ else {
457
+ builder = this.methods
458
+ .settleCalls(new anchor_1.BN(callsToSettle), serviceHash)
459
+ .accounts({
460
+ wallet: this.wallet,
461
+ agent: agentPda,
462
+ agentStats: statsPda,
463
+ escrow: escrowPda,
464
+ systemProgram: web3_js_1.SystemProgram.programId,
465
+ });
466
+ }
446
467
  if (preIxs.length > 0) {
447
468
  builder = builder.preInstructions(preIxs);
448
469
  }
@@ -483,10 +504,14 @@ class X402Registry {
483
504
  }));
484
505
  const totalCalls = entries.reduce((sum, e) => sum + e.calls, 0);
485
506
  const [agentPda] = (0, pda_1.deriveAgent)(this.wallet);
486
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, depositorWallet);
487
507
  const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
488
- // Prefetch for amount estimation
489
- const escrow = await this.fetch("escrowAccount", escrowPda);
508
+ // Auto-detect escrow version
509
+ const resolved = await this.resolveEscrow(agentPda, depositorWallet);
510
+ if (!resolved) {
511
+ throw new Error("No escrow found for this agent + depositor pair");
512
+ }
513
+ const escrow = resolved.escrow;
514
+ const escrowPda = resolved.escrowPda;
490
515
  const estimate = this.calculateCost(escrow.pricePerCall, escrow.volumeCurve, escrow.totalCallsSettled.toNumber(), totalCalls);
491
516
  // Build priority fee instructions (empty array if no opts)
492
517
  const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(opts);
@@ -526,16 +551,15 @@ class X402Registry {
526
551
  async getBalance(agentWallet, depositor) {
527
552
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
528
553
  const dep = depositor ?? this.wallet;
529
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, dep);
530
- const escrow = await this.fetchNullable("escrowAccount", escrowPda);
531
- if (!escrow)
554
+ const resolved = await this.resolveEscrow(agentPda, dep);
555
+ if (!resolved)
532
556
  return null;
557
+ const escrow = resolved.escrow;
533
558
  const now = Math.floor(Date.now() / 1000);
534
559
  const isExpired = escrow.expiresAt.toNumber() > 0 && now >= escrow.expiresAt.toNumber();
535
560
  const maxCalls = escrow.maxCalls.toNumber();
536
561
  const settled = escrow.totalCallsSettled.toNumber();
537
562
  const callsRemaining = maxCalls > 0 ? maxCalls - settled : Infinity;
538
- // Estimate affordable calls with current balance
539
563
  const pricePerCall = escrow.pricePerCall.toNumber();
540
564
  const balance = escrow.balance.toNumber();
541
565
  const affordableCalls = pricePerCall > 0
@@ -562,9 +586,17 @@ class X402Registry {
562
586
  */
563
587
  async hasEscrow(agentWallet, depositor) {
564
588
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
565
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, depositor ?? this.wallet);
566
- const info = await this.program.provider.connection.getAccountInfo(escrowPda);
567
- return info !== null;
589
+ const dep = depositor ?? this.wallet;
590
+ const conn = this.program.provider.connection;
591
+ // Check V2 first (nonce=0)
592
+ const [v2Pda] = (0, pda_1.deriveEscrowV2)(agentPda, dep, 0);
593
+ const v2Info = await conn.getAccountInfo(v2Pda);
594
+ if (v2Info !== null)
595
+ return true;
596
+ // Fall back to V1
597
+ const [v1Pda] = (0, pda_1.deriveEscrow)(agentPda, dep);
598
+ const v1Info = await conn.getAccountInfo(v1Pda);
599
+ return v1Info !== null;
568
600
  }
569
601
  /**
570
602
  * @name fetchEscrow
@@ -578,8 +610,8 @@ class X402Registry {
578
610
  async fetchEscrow(agentWallet, depositor) {
579
611
  const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
580
612
  const dep = depositor ?? this.wallet;
581
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, dep);
582
- return this.fetchNullable("escrowAccount", escrowPda);
613
+ const resolved = await this.resolveEscrow(agentPda, dep);
614
+ return resolved?.escrow ?? null;
583
615
  }
584
616
  // ── Internals ────────────────────────────────────────
585
617
  /**
@@ -593,20 +625,6 @@ class X402Registry {
593
625
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
594
626
  return this.program.methods;
595
627
  }
596
- /**
597
- * @name fetch
598
- * @description Fetch an on-chain account by name and PDA. Throws if not found.
599
- * @param name - Anchor account discriminator name.
600
- * @param pda - Account public key to fetch.
601
- * @returns The deserialized account data.
602
- * @throws If the account does not exist.
603
- * @private
604
- */
605
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
606
- async fetch(name, pda) {
607
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
608
- return this.program.account[name].fetch(pda);
609
- }
610
628
  /**
611
629
  * @name fetchNullable
612
630
  * @description Fetch an on-chain account by name and PDA. Returns `null` if not found.
@@ -620,6 +638,25 @@ class X402Registry {
620
638
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
621
639
  return this.program.account[name].fetchNullable(pda);
622
640
  }
641
+ /**
642
+ * @name resolveEscrow
643
+ * @description Try to find an escrow: V2 (nonce=0) first, then V1 fallback.
644
+ * Returns the escrow data, PDA, and version indicator.
645
+ * @private
646
+ */
647
+ async resolveEscrow(agentPda, depositor) {
648
+ // Try V2 first (nonce=0 is the default)
649
+ const [v2Pda] = (0, pda_1.deriveEscrowV2)(agentPda, depositor, 0);
650
+ const v2 = await this.fetchNullable("escrowAccountV2", v2Pda);
651
+ if (v2)
652
+ return { escrow: v2, escrowPda: v2Pda, version: 2 };
653
+ // Fall back to V1
654
+ const [v1Pda] = (0, pda_1.deriveEscrow)(agentPda, depositor);
655
+ const v1 = await this.fetchNullable("escrowAccount", v1Pda);
656
+ if (v1)
657
+ return { escrow: v1, escrowPda: v1Pda, version: 1 };
658
+ return null;
659
+ }
623
660
  }
624
661
  exports.X402Registry = X402Registry;
625
662
  //# sourceMappingURL=x402.js.map