@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.
- package/dist/cjs/constants/seeds.js +7 -0
- package/dist/cjs/constants/seeds.js.map +1 -1
- package/dist/cjs/core/client.js +42 -0
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/events/geyser.js +295 -0
- package/dist/cjs/events/geyser.js.map +1 -0
- package/dist/cjs/idl/synapse_agent_sap.json +7545 -3501
- package/dist/cjs/index.js +28 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/escrow-v2.js +241 -0
- package/dist/cjs/modules/escrow-v2.js.map +1 -0
- package/dist/cjs/modules/escrow.js +4 -0
- package/dist/cjs/modules/escrow.js.map +1 -1
- package/dist/cjs/modules/index.js +7 -1
- package/dist/cjs/modules/index.js.map +1 -1
- package/dist/cjs/modules/staking.js +94 -0
- package/dist/cjs/modules/staking.js.map +1 -0
- package/dist/cjs/modules/subscription.js +96 -0
- package/dist/cjs/modules/subscription.js.map +1 -0
- package/dist/cjs/pda/index.js +143 -1
- package/dist/cjs/pda/index.js.map +1 -1
- package/dist/cjs/postgres/sync.js +72 -4
- package/dist/cjs/postgres/sync.js.map +1 -1
- package/dist/cjs/registries/x402.js +88 -51
- package/dist/cjs/registries/x402.js.map +1 -1
- package/dist/cjs/types/enums.js +51 -1
- package/dist/cjs/types/enums.js.map +1 -1
- package/dist/cjs/types/index.js +4 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/instructions.js.map +1 -1
- package/dist/cjs/utils/escrow-validation.js +219 -0
- package/dist/cjs/utils/escrow-validation.js.map +1 -0
- package/dist/cjs/utils/index.js +12 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/merchant-validator.js +246 -0
- package/dist/cjs/utils/merchant-validator.js.map +1 -0
- package/dist/cjs/utils/x402-direct.js +231 -0
- package/dist/cjs/utils/x402-direct.js.map +1 -0
- package/dist/esm/constants/seeds.js +7 -0
- package/dist/esm/constants/seeds.js.map +1 -1
- package/dist/esm/core/client.js +42 -0
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/events/geyser.js +258 -0
- package/dist/esm/events/geyser.js.map +1 -0
- package/dist/esm/idl/synapse_agent_sap.json +7545 -3501
- package/dist/esm/index.js +7 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/escrow-v2.js +237 -0
- package/dist/esm/modules/escrow-v2.js.map +1 -0
- package/dist/esm/modules/escrow.js +4 -0
- package/dist/esm/modules/escrow.js.map +1 -1
- package/dist/esm/modules/index.js +3 -0
- package/dist/esm/modules/index.js.map +1 -1
- package/dist/esm/modules/staking.js +90 -0
- package/dist/esm/modules/staking.js.map +1 -0
- package/dist/esm/modules/subscription.js +92 -0
- package/dist/esm/modules/subscription.js.map +1 -0
- package/dist/esm/pda/index.js +135 -0
- package/dist/esm/pda/index.js.map +1 -1
- package/dist/esm/postgres/sync.js +72 -4
- package/dist/esm/postgres/sync.js.map +1 -1
- package/dist/esm/registries/x402.js +89 -52
- package/dist/esm/registries/x402.js.map +1 -1
- package/dist/esm/types/enums.js +50 -0
- package/dist/esm/types/enums.js.map +1 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/instructions.js.map +1 -1
- package/dist/esm/utils/escrow-validation.js +212 -0
- package/dist/esm/utils/escrow-validation.js.map +1 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/merchant-validator.js +241 -0
- package/dist/esm/utils/merchant-validator.js.map +1 -0
- package/dist/esm/utils/x402-direct.js +228 -0
- package/dist/esm/utils/x402-direct.js.map +1 -0
- package/dist/types/constants/seeds.d.ts +7 -0
- package/dist/types/constants/seeds.d.ts.map +1 -1
- package/dist/types/core/client.d.ts +33 -0
- package/dist/types/core/client.d.ts.map +1 -1
- package/dist/types/events/geyser.d.ts +150 -0
- package/dist/types/events/geyser.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modules/escrow-v2.d.ts +51 -0
- package/dist/types/modules/escrow-v2.d.ts.map +1 -0
- package/dist/types/modules/escrow.d.ts +4 -0
- package/dist/types/modules/escrow.d.ts.map +1 -1
- package/dist/types/modules/index.d.ts +3 -0
- package/dist/types/modules/index.d.ts.map +1 -1
- package/dist/types/modules/staking.d.ts +32 -0
- package/dist/types/modules/staking.d.ts.map +1 -0
- package/dist/types/modules/subscription.d.ts +33 -0
- package/dist/types/modules/subscription.d.ts.map +1 -0
- package/dist/types/pda/index.d.ts +99 -0
- package/dist/types/pda/index.d.ts.map +1 -1
- package/dist/types/plugin/schemas.d.ts +2 -2
- package/dist/types/postgres/sync.d.ts +26 -2
- package/dist/types/postgres/sync.d.ts.map +1 -1
- package/dist/types/registries/x402.d.ts +14 -12
- package/dist/types/registries/x402.d.ts.map +1 -1
- package/dist/types/types/accounts.d.ts +157 -1
- package/dist/types/types/accounts.d.ts.map +1 -1
- package/dist/types/types/enums.d.ts +64 -0
- package/dist/types/types/enums.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +4 -4
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/instructions.d.ts +34 -0
- package/dist/types/types/instructions.d.ts.map +1 -1
- package/dist/types/utils/escrow-validation.d.ts +145 -0
- package/dist/types/utils/escrow-validation.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/merchant-validator.d.ts +176 -0
- package/dist/types/utils/merchant-validator.d.ts.map +1 -0
- package/dist/types/utils/x402-direct.d.ts +114 -0
- package/dist/types/utils/x402-direct.d.ts.map +1 -0
- package/package.json +5 -1
- package/src/constants/seeds.ts +7 -0
- package/src/core/client.ts +45 -0
- package/src/events/geyser.ts +384 -0
- package/src/events/yellowstone.d.ts +7 -0
- package/src/idl/synapse_agent_sap.json +7545 -3501
- package/src/index.ts +51 -0
- package/src/modules/escrow-v2.ts +396 -0
- package/src/modules/escrow.ts +4 -0
- package/src/modules/index.ts +3 -0
- package/src/modules/staking.ts +122 -0
- package/src/modules/subscription.ts +147 -0
- package/src/pda/index.ts +196 -0
- package/src/postgres/sync.ts +90 -4
- package/src/registries/x402.ts +108 -69
- package/src/types/accounts.ts +192 -1
- package/src/types/enums.ts +65 -0
- package/src/types/index.ts +15 -0
- package/src/types/instructions.ts +40 -0
- package/src/utils/escrow-validation.ts +301 -0
- package/src/utils/index.ts +28 -0
- package/src/utils/merchant-validator.ts +359 -0
- package/src/utils/x402-direct.ts +370 -0
package/dist/cjs/pda/index.js
CHANGED
|
@@ -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("
|
|
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":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;AAGH,sCAAwC;
|
|
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
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
380
|
-
|
|
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
|
-
//
|
|
432
|
-
const
|
|
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
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
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
|
-
//
|
|
489
|
-
const
|
|
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
|
|
530
|
-
|
|
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
|
|
566
|
-
const
|
|
567
|
-
|
|
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
|
|
582
|
-
return
|
|
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
|