@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
@@ -48,6 +48,7 @@ exports.SEEDS = {
48
48
  TOOL: "sap_tool",
49
49
  CHECKPOINT: "sap_checkpoint",
50
50
  ESCROW: "sap_escrow",
51
+ ESCROW_V2: "sap_escrow_v2",
51
52
  STATS: "sap_stats",
52
53
  TOOL_CATEGORY: "sap_tool_cat",
53
54
  ATTESTATION: "sap_attest",
@@ -55,5 +56,11 @@ exports.SEEDS = {
55
56
  LEDGER_PAGE: "sap_page",
56
57
  BUFFER: "sap_buffer",
57
58
  DIGEST: "sap_digest",
59
+ PENDING: "sap_pending",
60
+ DISPUTE: "sap_dispute",
61
+ STAKE: "sap_stake",
62
+ SUBSCRIPTION: "sap_sub",
63
+ SHARD: "sap_shard",
64
+ INDEX_PAGE: "sap_idx_page",
58
65
  };
59
66
  //# 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;AACU,QAAA,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;AACU,QAAA,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;CAClB,CAAC"}
@@ -37,6 +37,9 @@ const indexing_1 = require("../modules/indexing");
37
37
  const tools_1 = require("../modules/tools");
38
38
  const vault_1 = require("../modules/vault");
39
39
  const escrow_1 = require("../modules/escrow");
40
+ const escrow_v2_1 = require("../modules/escrow-v2");
41
+ const staking_1 = require("../modules/staking");
42
+ const subscription_1 = require("../modules/subscription");
40
43
  const attestation_1 = require("../modules/attestation");
41
44
  const ledger_1 = require("../modules/ledger");
42
45
  const events_1 = require("../events");
@@ -109,6 +112,9 @@ class SapClient {
109
112
  #tools;
110
113
  #vault;
111
114
  #escrow;
115
+ #escrowV2;
116
+ #staking;
117
+ #subscription;
112
118
  #attestation;
113
119
  #ledger;
114
120
  #events;
@@ -263,6 +269,42 @@ class SapClient {
263
269
  get escrow() {
264
270
  return (this.#escrow ??= new escrow_1.EscrowModule(this.program));
265
271
  }
272
+ /**
273
+ * @name escrowV2
274
+ * @description V2 escrow settlement with dispute windows, co-signing,
275
+ * pending settlements, and migration from V1.
276
+ * @returns {EscrowV2Module} The lazily-instantiated `EscrowV2Module` singleton.
277
+ * @category Modules
278
+ * @since v0.7.0
279
+ * @see {@link EscrowV2Module}
280
+ */
281
+ get escrowV2() {
282
+ return (this.#escrowV2 ??= new escrow_v2_1.EscrowV2Module(this.program));
283
+ }
284
+ /**
285
+ * @name staking
286
+ * @description Agent staking: init stake, deposit, request unstake,
287
+ * and complete unstake.
288
+ * @returns {StakingModule} The lazily-instantiated `StakingModule` singleton.
289
+ * @category Modules
290
+ * @since v0.7.0
291
+ * @see {@link StakingModule}
292
+ */
293
+ get staking() {
294
+ return (this.#staking ??= new staking_1.StakingModule(this.program));
295
+ }
296
+ /**
297
+ * @name subscription
298
+ * @description Recurring subscriptions: create, fund, cancel, and close
299
+ * subscriber-agent subscription accounts.
300
+ * @returns {SubscriptionModule} The lazily-instantiated `SubscriptionModule` singleton.
301
+ * @category Modules
302
+ * @since v0.7.0
303
+ * @see {@link SubscriptionModule}
304
+ */
305
+ get subscription() {
306
+ return (this.#subscription ??= new subscription_1.SubscriptionModule(this.program));
307
+ }
266
308
  /**
267
309
  * @name attestation
268
310
  * @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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"}
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ /**
3
+ * @module events/geyser
4
+ * @description Yellowstone gRPC (Geyser) event stream for SAP v2.
5
+ *
6
+ * Drop-in alternative to the WebSocket `connection.onLogs()` pipeline.
7
+ * Uses Triton / Helius / any Yellowstone-compatible gRPC endpoint to
8
+ * receive program transaction updates with sub-second latency and
9
+ * automatic reconnection.
10
+ *
11
+ * @category Events
12
+ * @since v0.6.3
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { GeyserEventStream } from "@oobe-protocol-labs/synapse-sap-sdk";
17
+ * import { EventParser } from "@oobe-protocol-labs/synapse-sap-sdk";
18
+ *
19
+ * const stream = new GeyserEventStream({
20
+ * endpoint: "https://grpc.triton.one",
21
+ * token: process.env.GEYSER_TOKEN!,
22
+ * programId: "SAPpUhsWLJG1FfkGRcXagEDMrMsWGjbky7AyhGpFETZ",
23
+ * });
24
+ *
25
+ * const parser = new EventParser(program);
26
+ *
27
+ * stream.on("logs", (logs, signature, slot) => {
28
+ * const events = parser.parseLogs(logs);
29
+ * for (const event of events) {
30
+ * console.log(event.name, event.data);
31
+ * }
32
+ * });
33
+ *
34
+ * stream.on("error", (err) => console.error("gRPC error:", err));
35
+ *
36
+ * await stream.connect();
37
+ * // ... later
38
+ * await stream.disconnect();
39
+ * ```
40
+ */
41
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
42
+ if (k2 === undefined) k2 = k;
43
+ var desc = Object.getOwnPropertyDescriptor(m, k);
44
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
45
+ desc = { enumerable: true, get: function() { return m[k]; } };
46
+ }
47
+ Object.defineProperty(o, k2, desc);
48
+ }) : (function(o, m, k, k2) {
49
+ if (k2 === undefined) k2 = k;
50
+ o[k2] = m[k];
51
+ }));
52
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
53
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
54
+ }) : function(o, v) {
55
+ o["default"] = v;
56
+ });
57
+ var __importStar = (this && this.__importStar) || (function () {
58
+ var ownKeys = function(o) {
59
+ ownKeys = Object.getOwnPropertyNames || function (o) {
60
+ var ar = [];
61
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
62
+ return ar;
63
+ };
64
+ return ownKeys(o);
65
+ };
66
+ return function (mod) {
67
+ if (mod && mod.__esModule) return mod;
68
+ var result = {};
69
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
70
+ __setModuleDefault(result, mod);
71
+ return result;
72
+ };
73
+ })();
74
+ Object.defineProperty(exports, "__esModule", { value: true });
75
+ exports.GeyserEventStream = void 0;
76
+ const events_1 = require("events");
77
+ // ═══════════════════════════════════════════════════════════════════
78
+ // Constants
79
+ // ═══════════════════════════════════════════════════════════════════
80
+ const SAP_PROGRAM_ID = "SAPpUhsWLJG1FfkGRcXagEDMrMsWGjbky7AyhGpFETZ";
81
+ const COMMITMENT_MAP = {
82
+ processed: 0,
83
+ confirmed: 1,
84
+ finalized: 2,
85
+ };
86
+ // ═══════════════════════════════════════════════════════════════════
87
+ // GeyserEventStream
88
+ // ═══════════════════════════════════════════════════════════════════
89
+ /**
90
+ * Yellowstone gRPC event stream for SAP v2 programs.
91
+ *
92
+ * Wraps `@triton-one/yellowstone-grpc` and emits parsed log lines
93
+ * compatible with the existing {@link EventParser}.
94
+ *
95
+ * @name GeyserEventStream
96
+ * @category Events
97
+ * @since v0.6.3
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * const stream = new GeyserEventStream({
102
+ * endpoint: "https://grpc.triton.one",
103
+ * token: process.env.GEYSER_TOKEN!,
104
+ * });
105
+ *
106
+ * stream.on("logs", (logs, sig, slot) => {
107
+ * const events = parser.parseLogs(logs);
108
+ * events.forEach(e => db.insertEvent(e));
109
+ * });
110
+ *
111
+ * await stream.connect();
112
+ * ```
113
+ */
114
+ class GeyserEventStream extends events_1.EventEmitter {
115
+ config;
116
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+ client = null;
118
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
+ stream = null;
120
+ reconnectAttempts = 0;
121
+ _connected = false;
122
+ _stopped = false;
123
+ constructor(config) {
124
+ super();
125
+ this.config = {
126
+ endpoint: config.endpoint,
127
+ token: config.token,
128
+ programId: config.programId ?? SAP_PROGRAM_ID,
129
+ commitment: config.commitment ?? "confirmed",
130
+ autoReconnect: config.autoReconnect ?? true,
131
+ reconnectDelayMs: config.reconnectDelayMs ?? 3_000,
132
+ maxReconnectAttempts: config.maxReconnectAttempts ?? 0,
133
+ includeFailedTxs: config.includeFailedTxs ?? false,
134
+ };
135
+ }
136
+ /** Whether the gRPC stream is currently connected. */
137
+ get connected() {
138
+ return this._connected;
139
+ }
140
+ /**
141
+ * Connect to the Yellowstone gRPC endpoint and start streaming.
142
+ *
143
+ * @throws If `@triton-one/yellowstone-grpc` is not installed.
144
+ */
145
+ async connect() {
146
+ this._stopped = false;
147
+ this.reconnectAttempts = 0;
148
+ // Dynamic import — yellowstone is an optional peer dependency
149
+ let YellowstoneClient;
150
+ try {
151
+ const mod = await Promise.resolve().then(() => __importStar(require("@triton-one/yellowstone-grpc")));
152
+ YellowstoneClient = mod.default ?? mod.Client;
153
+ }
154
+ catch {
155
+ throw new Error("Missing dependency: @triton-one/yellowstone-grpc\n" +
156
+ "Install it with: npm i @triton-one/yellowstone-grpc");
157
+ }
158
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
+ this.client = new YellowstoneClient(this.config.endpoint, this.config.token, undefined);
160
+ await this.subscribe();
161
+ }
162
+ /**
163
+ * Disconnect from the gRPC stream and stop reconnection.
164
+ */
165
+ async disconnect() {
166
+ this._stopped = true;
167
+ this._connected = false;
168
+ if (this.stream) {
169
+ try {
170
+ this.stream.cancel?.();
171
+ this.stream = null;
172
+ }
173
+ catch {
174
+ // ignore cancel errors
175
+ }
176
+ }
177
+ this.emit("disconnected", "manual");
178
+ }
179
+ // ─── Internal ──────────────────────────────────────
180
+ async subscribe() {
181
+ if (!this.client || this._stopped)
182
+ return;
183
+ try {
184
+ this.stream = await this.client.subscribe();
185
+ }
186
+ catch (err) {
187
+ this.emit("error", err instanceof Error ? err : new Error(String(err)));
188
+ await this.maybeReconnect();
189
+ return;
190
+ }
191
+ // Build the subscription request
192
+ const request = {
193
+ accounts: {},
194
+ slots: {},
195
+ transactions: {
196
+ sap: {
197
+ vote: false,
198
+ failed: this.config.includeFailedTxs,
199
+ signature: undefined,
200
+ accountInclude: [this.config.programId],
201
+ accountExclude: [],
202
+ accountRequired: [],
203
+ },
204
+ },
205
+ transactionsStatus: {},
206
+ blocks: {},
207
+ blocksMeta: {},
208
+ entry: {},
209
+ commitment: COMMITMENT_MAP[this.config.commitment] ?? 1,
210
+ accountsDataSlice: [],
211
+ ping: { id: 1 },
212
+ };
213
+ // Send subscription
214
+ try {
215
+ await new Promise((resolve, reject) => {
216
+ this.stream.write(request, (err) => {
217
+ if (err)
218
+ reject(err);
219
+ else
220
+ resolve();
221
+ });
222
+ });
223
+ }
224
+ catch (err) {
225
+ this.emit("error", err instanceof Error ? err : new Error(String(err)));
226
+ await this.maybeReconnect();
227
+ return;
228
+ }
229
+ this._connected = true;
230
+ this.reconnectAttempts = 0;
231
+ this.emit("connected");
232
+ // Listen for data
233
+ this.stream.on("data", (data) => {
234
+ try {
235
+ this.handleMessage(data);
236
+ }
237
+ catch (err) {
238
+ this.emit("error", err instanceof Error ? err : new Error(String(err)));
239
+ }
240
+ });
241
+ this.stream.on("error", (err) => {
242
+ this.emit("error", err);
243
+ });
244
+ this.stream.on("end", () => {
245
+ this._connected = false;
246
+ this.emit("disconnected", "stream-end");
247
+ this.maybeReconnect();
248
+ });
249
+ this.stream.on("close", () => {
250
+ this._connected = false;
251
+ this.emit("disconnected", "stream-close");
252
+ this.maybeReconnect();
253
+ });
254
+ }
255
+ handleMessage(data) {
256
+ // Respond to pings to keep the stream alive
257
+ if (data.ping) {
258
+ this.stream?.write({ ping: { id: data.ping.id } }, () => { });
259
+ return;
260
+ }
261
+ // Extract transaction data
262
+ const tx = data.transaction;
263
+ if (!tx?.transaction?.transaction)
264
+ return;
265
+ const meta = tx.transaction.meta;
266
+ if (!meta)
267
+ return;
268
+ // Extract log messages from the transaction meta
269
+ const logs = meta.logMessages ?? [];
270
+ if (logs.length === 0)
271
+ return;
272
+ const signature = tx.transaction.signature
273
+ ? Buffer.from(tx.transaction.signature).toString("base64")
274
+ : "unknown";
275
+ const slot = Number(tx.slot ?? 0);
276
+ this.emit("logs", logs, signature, slot);
277
+ }
278
+ async maybeReconnect() {
279
+ if (this._stopped || !this.config.autoReconnect)
280
+ return;
281
+ const max = this.config.maxReconnectAttempts;
282
+ if (max > 0 && this.reconnectAttempts >= max) {
283
+ this.emit("error", new Error(`Max reconnect attempts (${max}) exceeded`));
284
+ return;
285
+ }
286
+ this.reconnectAttempts++;
287
+ this.emit("reconnecting", this.reconnectAttempts);
288
+ await new Promise((r) => setTimeout(r, this.config.reconnectDelayMs));
289
+ if (!this._stopped) {
290
+ await this.subscribe();
291
+ }
292
+ }
293
+ }
294
+ exports.GeyserEventStream = GeyserEventStream;
295
+ //# sourceMappingURL=geyser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geyser.js","sourceRoot":"","sources":["../../../src/events/geyser.ts"],"names":[],"mappings":"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"}