@oobe-protocol-labs/synapse-sap-sdk 0.6.3 → 0.8.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 (132) hide show
  1. package/dist/cjs/constants/seeds.js +9 -0
  2. package/dist/cjs/constants/seeds.js.map +1 -1
  3. package/dist/cjs/core/client.js +55 -0
  4. package/dist/cjs/core/client.js.map +1 -1
  5. package/dist/cjs/idl/synapse_agent_sap.json +8571 -4106
  6. package/dist/cjs/index.js +29 -3
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/modules/escrow-v2.js +220 -0
  9. package/dist/cjs/modules/escrow-v2.js.map +1 -0
  10. package/dist/cjs/modules/escrow.js +4 -0
  11. package/dist/cjs/modules/escrow.js.map +1 -1
  12. package/dist/cjs/modules/index.js +9 -1
  13. package/dist/cjs/modules/index.js.map +1 -1
  14. package/dist/cjs/modules/receipt.js +144 -0
  15. package/dist/cjs/modules/receipt.js.map +1 -0
  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 +166 -1
  21. package/dist/cjs/pda/index.js.map +1 -1
  22. package/dist/cjs/registries/x402.js +88 -51
  23. package/dist/cjs/registries/x402.js.map +1 -1
  24. package/dist/cjs/types/enums.js +96 -1
  25. package/dist/cjs/types/enums.js.map +1 -1
  26. package/dist/cjs/types/index.js +6 -1
  27. package/dist/cjs/types/index.js.map +1 -1
  28. package/dist/cjs/types/instructions.js.map +1 -1
  29. package/dist/cjs/utils/escrow-validation.js +219 -0
  30. package/dist/cjs/utils/escrow-validation.js.map +1 -0
  31. package/dist/cjs/utils/index.js +12 -1
  32. package/dist/cjs/utils/index.js.map +1 -1
  33. package/dist/cjs/utils/merchant-validator.js +246 -0
  34. package/dist/cjs/utils/merchant-validator.js.map +1 -0
  35. package/dist/cjs/utils/x402-direct.js +231 -0
  36. package/dist/cjs/utils/x402-direct.js.map +1 -0
  37. package/dist/esm/constants/seeds.js +9 -0
  38. package/dist/esm/constants/seeds.js.map +1 -1
  39. package/dist/esm/core/client.js +55 -0
  40. package/dist/esm/core/client.js.map +1 -1
  41. package/dist/esm/idl/synapse_agent_sap.json +8571 -4106
  42. package/dist/esm/index.js +5 -3
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/modules/escrow-v2.js +216 -0
  45. package/dist/esm/modules/escrow-v2.js.map +1 -0
  46. package/dist/esm/modules/escrow.js +4 -0
  47. package/dist/esm/modules/escrow.js.map +1 -1
  48. package/dist/esm/modules/index.js +4 -0
  49. package/dist/esm/modules/index.js.map +1 -1
  50. package/dist/esm/modules/receipt.js +140 -0
  51. package/dist/esm/modules/receipt.js.map +1 -0
  52. package/dist/esm/modules/staking.js +90 -0
  53. package/dist/esm/modules/staking.js.map +1 -0
  54. package/dist/esm/modules/subscription.js +92 -0
  55. package/dist/esm/modules/subscription.js.map +1 -0
  56. package/dist/esm/pda/index.js +157 -0
  57. package/dist/esm/pda/index.js.map +1 -1
  58. package/dist/esm/registries/x402.js +89 -52
  59. package/dist/esm/registries/x402.js.map +1 -1
  60. package/dist/esm/types/enums.js +95 -0
  61. package/dist/esm/types/enums.js.map +1 -1
  62. package/dist/esm/types/index.js +1 -1
  63. package/dist/esm/types/index.js.map +1 -1
  64. package/dist/esm/types/instructions.js.map +1 -1
  65. package/dist/esm/utils/escrow-validation.js +212 -0
  66. package/dist/esm/utils/escrow-validation.js.map +1 -0
  67. package/dist/esm/utils/index.js +4 -0
  68. package/dist/esm/utils/index.js.map +1 -1
  69. package/dist/esm/utils/merchant-validator.js +241 -0
  70. package/dist/esm/utils/merchant-validator.js.map +1 -0
  71. package/dist/esm/utils/x402-direct.js +228 -0
  72. package/dist/esm/utils/x402-direct.js.map +1 -0
  73. package/dist/types/constants/seeds.d.ts +9 -0
  74. package/dist/types/constants/seeds.d.ts.map +1 -1
  75. package/dist/types/core/client.d.ts +43 -0
  76. package/dist/types/core/client.d.ts.map +1 -1
  77. package/dist/types/index.d.ts +6 -4
  78. package/dist/types/index.d.ts.map +1 -1
  79. package/dist/types/modules/escrow-v2.d.ts +58 -0
  80. package/dist/types/modules/escrow-v2.d.ts.map +1 -0
  81. package/dist/types/modules/escrow.d.ts +4 -0
  82. package/dist/types/modules/escrow.d.ts.map +1 -1
  83. package/dist/types/modules/index.d.ts +4 -0
  84. package/dist/types/modules/index.d.ts.map +1 -1
  85. package/dist/types/modules/receipt.d.ts +77 -0
  86. package/dist/types/modules/receipt.d.ts.map +1 -0
  87. package/dist/types/modules/staking.d.ts +32 -0
  88. package/dist/types/modules/staking.d.ts.map +1 -0
  89. package/dist/types/modules/subscription.d.ts +33 -0
  90. package/dist/types/modules/subscription.d.ts.map +1 -0
  91. package/dist/types/pda/index.d.ts +114 -0
  92. package/dist/types/pda/index.d.ts.map +1 -1
  93. package/dist/types/plugin/schemas.d.ts +2 -2
  94. package/dist/types/registries/x402.d.ts +14 -12
  95. package/dist/types/registries/x402.d.ts.map +1 -1
  96. package/dist/types/types/accounts.d.ts +201 -1
  97. package/dist/types/types/accounts.d.ts.map +1 -1
  98. package/dist/types/types/enums.d.ts +115 -0
  99. package/dist/types/types/enums.d.ts.map +1 -1
  100. package/dist/types/types/index.d.ts +4 -4
  101. package/dist/types/types/index.d.ts.map +1 -1
  102. package/dist/types/types/instructions.d.ts +34 -0
  103. package/dist/types/types/instructions.d.ts.map +1 -1
  104. package/dist/types/utils/escrow-validation.d.ts +145 -0
  105. package/dist/types/utils/escrow-validation.d.ts.map +1 -0
  106. package/dist/types/utils/index.d.ts +6 -0
  107. package/dist/types/utils/index.d.ts.map +1 -1
  108. package/dist/types/utils/merchant-validator.d.ts +176 -0
  109. package/dist/types/utils/merchant-validator.d.ts.map +1 -0
  110. package/dist/types/utils/x402-direct.d.ts +114 -0
  111. package/dist/types/utils/x402-direct.d.ts.map +1 -0
  112. package/package.json +2 -2
  113. package/src/constants/seeds.ts +9 -0
  114. package/src/core/client.ts +59 -0
  115. package/src/idl/synapse_agent_sap.json +8571 -4106
  116. package/src/index.ts +54 -0
  117. package/src/modules/escrow-v2.ts +375 -0
  118. package/src/modules/escrow.ts +4 -0
  119. package/src/modules/index.ts +4 -0
  120. package/src/modules/receipt.ts +207 -0
  121. package/src/modules/staking.ts +122 -0
  122. package/src/modules/subscription.ts +147 -0
  123. package/src/pda/index.ts +228 -0
  124. package/src/registries/x402.ts +108 -69
  125. package/src/types/accounts.ts +241 -1
  126. package/src/types/enums.ts +119 -0
  127. package/src/types/index.ts +20 -0
  128. package/src/types/instructions.ts +40 -0
  129. package/src/utils/escrow-validation.ts +301 -0
  130. package/src/utils/index.ts +28 -0
  131. package/src/utils/merchant-validator.ts +359 -0
  132. package/src/utils/x402-direct.ts +370 -0
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /**
3
+ * @module utils/x402-direct
4
+ * @description Recognize x402 direct SPL token payments on an agent's ATA
5
+ * by scanning transaction history and filtering for x402 patterns.
6
+ *
7
+ * @category Utils
8
+ * @since v0.6.4
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.getX402DirectPayments = getX402DirectPayments;
12
+ const web3_js_1 = require("@solana/web3.js");
13
+ const utils_1 = require("../utils");
14
+ // ═══════════════════════════════════════════════════════════════════
15
+ // Core
16
+ // ═══════════════════════════════════════════════════════════════════
17
+ /** Recognized x402 memo prefixes. */
18
+ const X402_MEMO_PREFIXES = ["x402:", "SAP-x402:", "x402-direct:"];
19
+ /**
20
+ * @name extractSplTransfer
21
+ * @description Extract SPL Token transfer details from a parsed transaction.
22
+ *
23
+ * Looks for `transfer` or `transferChecked` inner instructions on the
24
+ * Token Program and returns source/dest/amount/mint.
25
+ *
26
+ * @internal
27
+ */
28
+ function extractSplTransfer(tx, payToAta) {
29
+ if (!tx.meta?.innerInstructions && !tx.transaction.message.instructions) {
30
+ return null;
31
+ }
32
+ // Check all instructions (outer + inner)
33
+ const allIxs = [
34
+ ...tx.transaction.message.instructions,
35
+ ...(tx.meta?.innerInstructions?.flatMap((g) => g.instructions) ?? []),
36
+ ];
37
+ for (const ix of allIxs) {
38
+ // Only process parsed instructions with known program
39
+ if (!("parsed" in ix) || !("program" in ix))
40
+ continue;
41
+ const parsed = ix;
42
+ if (parsed.program !== "spl-token")
43
+ continue;
44
+ const info = parsed.parsed;
45
+ if (info.type !== "transfer" &&
46
+ info.type !== "transferChecked") {
47
+ continue;
48
+ }
49
+ const transferInfo = info.info;
50
+ if (!transferInfo?.source || !transferInfo?.destination)
51
+ continue;
52
+ // Check destination matches our payTo ATA
53
+ const destPk = new web3_js_1.PublicKey(transferInfo.destination);
54
+ if (!destPk.equals(payToAta))
55
+ continue;
56
+ const amountStr = transferInfo.amount ?? transferInfo.tokenAmount?.amount ?? "0";
57
+ return {
58
+ amount: BigInt(amountStr),
59
+ source: new web3_js_1.PublicKey(transferInfo.source),
60
+ destination: destPk,
61
+ mint: transferInfo.mint ? new web3_js_1.PublicKey(transferInfo.mint) : destPk, // fallback
62
+ };
63
+ }
64
+ return null;
65
+ }
66
+ /**
67
+ * @name extractMemo
68
+ * @description Extract memo data from a parsed transaction.
69
+ * @internal
70
+ */
71
+ function extractMemo(tx) {
72
+ const allIxs = [
73
+ ...tx.transaction.message.instructions,
74
+ ...(tx.meta?.innerInstructions?.flatMap((g) => g.instructions) ?? []),
75
+ ];
76
+ for (const ix of allIxs) {
77
+ if (!("parsed" in ix) || !("program" in ix))
78
+ continue;
79
+ const parsed = ix;
80
+ if (parsed.program === "spl-memo" && typeof parsed.parsed === "string") {
81
+ return parsed.parsed;
82
+ }
83
+ }
84
+ // Also check log messages for memo
85
+ if (tx.meta?.logMessages) {
86
+ for (const log of tx.meta.logMessages) {
87
+ if (log.startsWith("Program log: Memo")) {
88
+ const memoMatch = log.match(/Memo \(len \d+\): "(.*?)"/);
89
+ if (memoMatch?.[1])
90
+ return memoMatch[1];
91
+ }
92
+ }
93
+ }
94
+ return null;
95
+ }
96
+ /**
97
+ * @name matchesX402Pattern
98
+ * @description Check if a transfer matches an x402 payment pattern.
99
+ *
100
+ * Matches if:
101
+ * - A memo with recognized x402 prefix is present, OR
102
+ * - The transfer matches a known settlement payload (deterministic hash), OR
103
+ * - `requireMemo` is false (any SPL transfer to the ATA is included)
104
+ *
105
+ * @internal
106
+ */
107
+ function matchesX402Pattern(transfer, memo, knownSettlements, requireMemo) {
108
+ // 1. Check memo prefix
109
+ if (memo) {
110
+ for (const prefix of X402_MEMO_PREFIXES) {
111
+ if (memo.startsWith(prefix))
112
+ return true;
113
+ }
114
+ // Try base64 JSON parse for embedded x402 payload
115
+ try {
116
+ const decoded = Buffer.from(memo, "base64").toString("utf-8");
117
+ const parsed = JSON.parse(decoded);
118
+ if (parsed.protocol === "x402" || parsed.protocol === "SAP-x402") {
119
+ return true;
120
+ }
121
+ }
122
+ catch {
123
+ // Not base64 JSON — ignore
124
+ }
125
+ }
126
+ // 2. Match against known settlements (deterministic hash)
127
+ for (const settlement of knownSettlements) {
128
+ const expected = BigInt(settlement.amount);
129
+ if (transfer.amount !== expected)
130
+ continue;
131
+ // Deterministic hash: sha256(agentWallet + depositor + amount + timestamp)
132
+ const hashInput = settlement.agentWallet +
133
+ settlement.depositorWallet +
134
+ settlement.amount +
135
+ settlement.timestamp.toString();
136
+ const expectedHash = Buffer.from((0, utils_1.sha256)(hashInput)).toString("hex");
137
+ const serviceHash = settlement.serviceHash;
138
+ if (expectedHash === serviceHash)
139
+ return settlement;
140
+ }
141
+ // 3. If requireMemo is false, accept any SPL transfer to the ATA
142
+ if (!requireMemo)
143
+ return true;
144
+ return false;
145
+ }
146
+ /**
147
+ * @name getX402DirectPayments
148
+ * @description Scan an agent's ATA for x402 direct payments.
149
+ *
150
+ * Fetches recent transaction signatures for the given `payTo` ATA,
151
+ * inspects each transaction for SPL token transfers, and filters
152
+ * for x402 payment patterns (memo prefix, settlement hash match, etc.).
153
+ *
154
+ * @param connection - Solana RPC connection.
155
+ * @param payToAta - The agent's receiving ATA (e.g. USDC ATA of Syra).
156
+ * @param opts - Filter and pagination options.
157
+ * @returns Array of recognized x402 direct payments, newest first.
158
+ *
159
+ * @category Utils
160
+ * @since v0.6.4
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * import { getX402DirectPayments, findATA } from "@oobe-protocol-labs/synapse-sap-sdk";
165
+ *
166
+ * const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
167
+ * const payToAta = findATA(agentWallet, USDC_MINT);
168
+ *
169
+ * const payments = await getX402DirectPayments(connection, payToAta, {
170
+ * limit: 50,
171
+ * knownSettlements: savedSettlements, // from your API PAYMENT-RESPONSE logs
172
+ * });
173
+ *
174
+ * for (const p of payments) {
175
+ * console.log(`${p.signature}: ${p.amount} from ${p.payerAta.toBase58()}`);
176
+ * if (p.settlement) {
177
+ * console.log(` Matched settlement: ${p.settlement.serviceHash}`);
178
+ * }
179
+ * }
180
+ * ```
181
+ */
182
+ async function getX402DirectPayments(connection, payToAta, opts) {
183
+ const limit = opts?.limit ?? 100;
184
+ const knownSettlements = opts?.knownSettlements ?? [];
185
+ const requireMemo = opts?.requireMemo ?? false;
186
+ // 1. Fetch signatures
187
+ const sigOpts = { limit };
188
+ if (opts?.before)
189
+ sigOpts.before = opts.before;
190
+ if (opts?.until)
191
+ sigOpts.until = opts.until;
192
+ const sigs = await connection.getSignaturesForAddress(payToAta, sigOpts);
193
+ if (sigs.length === 0)
194
+ return [];
195
+ // 2. Fetch transactions (batch with getParsedTransactions if available)
196
+ const txs = await connection.getParsedTransactions(sigs.map((s) => s.signature), { maxSupportedTransactionVersion: 0 });
197
+ // 3. Extract and filter
198
+ const results = [];
199
+ for (let i = 0; i < txs.length; i++) {
200
+ const tx = txs[i];
201
+ if (!tx)
202
+ continue;
203
+ // Extract SPL transfer to our ATA
204
+ const transfer = extractSplTransfer(tx, payToAta);
205
+ if (!transfer)
206
+ continue;
207
+ // Filter by payer if specified
208
+ if (opts?.filterPayer && !transfer.source.equals(opts.filterPayer)) {
209
+ continue;
210
+ }
211
+ // Extract memo
212
+ const memo = extractMemo(tx);
213
+ // Match x402 pattern
214
+ const match = matchesX402Pattern(transfer, memo, knownSettlements, requireMemo);
215
+ if (match === false)
216
+ continue;
217
+ results.push({
218
+ signature: sigs[i].signature,
219
+ amount: transfer.amount,
220
+ payerAta: transfer.source,
221
+ payeeAta: transfer.destination,
222
+ mint: transfer.mint,
223
+ memo,
224
+ settlement: typeof match === "object" ? match : null,
225
+ blockTime: tx.blockTime ?? null,
226
+ slot: tx.slot,
227
+ });
228
+ }
229
+ return results;
230
+ }
231
+ //# sourceMappingURL=x402-direct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-direct.js","sourceRoot":"","sources":["../../../src/utils/x402-direct.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export const SEEDS = {
45
45
  TOOL: "sap_tool",
46
46
  CHECKPOINT: "sap_checkpoint",
47
47
  ESCROW: "sap_escrow",
48
+ ESCROW_V2: "sap_escrow_v2",
48
49
  STATS: "sap_stats",
49
50
  TOOL_CATEGORY: "sap_tool_cat",
50
51
  ATTESTATION: "sap_attest",
@@ -52,5 +53,13 @@ export const SEEDS = {
52
53
  LEDGER_PAGE: "sap_page",
53
54
  BUFFER: "sap_buffer",
54
55
  DIGEST: "sap_digest",
56
+ PENDING: "sap_pending",
57
+ DISPUTE: "sap_dispute",
58
+ STAKE: "sap_stake",
59
+ SUBSCRIPTION: "sap_sub",
60
+ SHARD: "sap_shard",
61
+ INDEX_PAGE: "sap_idx_page",
62
+ /** @since v0.7.0 — Receipt batch merkle root PDA */
63
+ RECEIPT: "sap_receipt",
55
64
  };
56
65
  //# sourceMappingURL=seeds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../../src/constants/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,qBAAqB;AACrB,sEAAsE;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,gBAAgB,EAAE,aAAa;IAC/B,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,aAAa,EAAE,cAAc;IAC7B,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;CACZ,CAAC"}
1
+ {"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../../src/constants/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,qBAAqB;AACrB,sEAAsE;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,gBAAgB,EAAE,aAAa;IAC/B,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,WAAW;IAClB,aAAa,EAAE,cAAc;IAC7B,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,cAAc;IAC1B,oDAAoD;IACpD,OAAO,EAAE,aAAa;CACd,CAAC"}
@@ -31,6 +31,10 @@ import { IndexingModule } from "../modules/indexing";
31
31
  import { ToolsModule } from "../modules/tools";
32
32
  import { VaultModule } from "../modules/vault";
33
33
  import { EscrowModule } from "../modules/escrow";
34
+ import { EscrowV2Module } from "../modules/escrow-v2";
35
+ import { ReceiptModule } from "../modules/receipt";
36
+ import { StakingModule } from "../modules/staking";
37
+ import { SubscriptionModule } from "../modules/subscription";
34
38
  import { AttestationModule } from "../modules/attestation";
35
39
  import { LedgerModule } from "../modules/ledger";
36
40
  import { EventParser } from "../events";
@@ -103,6 +107,10 @@ export class SapClient {
103
107
  #tools;
104
108
  #vault;
105
109
  #escrow;
110
+ #escrowV2;
111
+ #receipt;
112
+ #staking;
113
+ #subscription;
106
114
  #attestation;
107
115
  #ledger;
108
116
  #events;
@@ -257,6 +265,53 @@ export class SapClient {
257
265
  get escrow() {
258
266
  return (this.#escrow ??= new EscrowModule(this.program));
259
267
  }
268
+ /**
269
+ * @name escrowV2
270
+ * @description V2 escrow settlement with dispute windows, co-signing,
271
+ * pending settlements, and migration from V1.
272
+ * @returns {EscrowV2Module} The lazily-instantiated `EscrowV2Module` singleton.
273
+ * @category Modules
274
+ * @since v0.7.0
275
+ * @see {@link EscrowV2Module}
276
+ */
277
+ get escrowV2() {
278
+ return (this.#escrowV2 ??= new EscrowV2Module(this.program));
279
+ }
280
+ /**
281
+ * @name receipt
282
+ * @description Receipt batch inscriptions and automatic dispute resolution (v0.7).
283
+ * @returns {ReceiptModule} The lazily-instantiated `ReceiptModule` singleton.
284
+ * @category Modules
285
+ * @since v0.7.0
286
+ * @see {@link ReceiptModule}
287
+ */
288
+ get receipt() {
289
+ return (this.#receipt ??= new ReceiptModule(this.program));
290
+ }
291
+ /**
292
+ * @name staking
293
+ * @description Agent staking: init stake, deposit, request unstake,
294
+ * and complete unstake.
295
+ * @returns {StakingModule} The lazily-instantiated `StakingModule` singleton.
296
+ * @category Modules
297
+ * @since v0.7.0
298
+ * @see {@link StakingModule}
299
+ */
300
+ get staking() {
301
+ return (this.#staking ??= new StakingModule(this.program));
302
+ }
303
+ /**
304
+ * @name subscription
305
+ * @description Recurring subscriptions: create, fund, cancel, and close
306
+ * subscriber-agent subscription accounts.
307
+ * @returns {SubscriptionModule} The lazily-instantiated `SubscriptionModule` singleton.
308
+ * @category Modules
309
+ * @since v0.7.0
310
+ * @see {@link SubscriptionModule}
311
+ */
312
+ get subscription() {
313
+ return (this.#subscription ??= new SubscriptionModule(this.program));
314
+ }
260
315
  /**
261
316
  * @name attestation
262
317
  * @description Web of trust: create, revoke, and close on-chain
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}