@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/esm/index.js
CHANGED
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
*/
|
|
46
46
|
// ── Core ─────────────────────────────────────────────
|
|
47
47
|
export { SapClient, SapConnection, KeypairWallet } from "./core";
|
|
48
|
-
export { TokenType, PluginType, SettlementMode, ToolHttpMethod, ToolCategory, DelegatePermission, SchemaType, CompressionType, } from "./types";
|
|
48
|
+
export { TokenType, PluginType, SettlementMode, ToolHttpMethod, ToolCategory, DelegatePermission, SchemaType, CompressionType, SettlementSecurity, DisputeOutcome, BillingInterval, } from "./types";
|
|
49
49
|
// ── Constants ────────────────────────────────────────
|
|
50
50
|
export { SAP_PROGRAM_ADDRESS, SAP_PROGRAM_ID, MAINNET_SAP_PROGRAM_ID, DEVNET_SAP_PROGRAM_ID, LOCALNET_SAP_PROGRAM_ID, SEEDS, LIMITS, AGENT_VERSION, VAULT_PROTOCOL_VERSION, TOOL_CATEGORY_VALUES, HTTP_METHOD_VALUES, SapNetwork, } from "./constants";
|
|
51
51
|
// ── IDL ──────────────────────────────────────────────
|
|
52
52
|
export { SAP_IDL, IDL_PROGRAM_ADDRESS, IDL_METADATA } from "./idl/index";
|
|
53
53
|
// ── PDA Derivation ───────────────────────────────────
|
|
54
|
-
export { deriveGlobalRegistry, deriveAgent, deriveAgentStats, deriveFeedback, deriveCapabilityIndex, deriveProtocolIndex, deriveToolCategoryIndex, deriveVault, deriveSession, deriveEpochPage, deriveVaultDelegate, deriveCheckpoint, deriveTool, deriveEscrow, deriveAttestation, deriveLedger, deriveLedgerPage, } from "./pda";
|
|
54
|
+
export { deriveGlobalRegistry, deriveAgent, deriveAgentStats, deriveFeedback, deriveCapabilityIndex, deriveProtocolIndex, deriveToolCategoryIndex, deriveVault, deriveSession, deriveEpochPage, deriveVaultDelegate, deriveCheckpoint, deriveTool, deriveEscrow, deriveEscrowV2, derivePendingSettlement, deriveDispute, deriveStake, deriveSubscription, deriveShard, deriveIndexPage, deriveAttestation, deriveLedger, deriveLedgerPage, } from "./pda";
|
|
55
55
|
// ── Utilities ────────────────────────────────────────
|
|
56
56
|
export { sha256, hashToArray, assert } from "./utils";
|
|
57
57
|
export { serializeAccount, serializeValue } from "./utils";
|
|
@@ -65,12 +65,16 @@ export { getRpcUrl, getFallbackRpcUrl, createDualConnection, findATA, classifyAn
|
|
|
65
65
|
export { createEnvSchema, createEndpointDescriptorSchema, createHealthCheckSchema, createToolManifestEntrySchema, createAgentManifestSchema, createPreparePaymentSchema, createRegisterAgentSchema, createCallArgsSchema, validateOrThrow, } from "./utils";
|
|
66
66
|
// v0.6.2 — Priority fee & settle options
|
|
67
67
|
export { buildPriorityFeeIxs, buildRpcOptions, FAST_SETTLE_OPTIONS, FAST_BATCH_SETTLE_OPTIONS, DEFAULT_SETTLE_PRIORITY_FEE, DEFAULT_SETTLE_COMPUTE_UNITS, DEFAULT_BATCH_SETTLE_COMPUTE_UNITS, } from "./utils";
|
|
68
|
+
// v0.6.4 — Escrow validation, merchant middleware, x402 direct
|
|
69
|
+
export { validateEscrowState, attachSplAccounts, toAccountMetas, MissingEscrowAtaError, SapMerchantValidator, parseX402Headers, getX402DirectPayments, } from "./utils";
|
|
68
70
|
// ── Errors ───────────────────────────────────────────
|
|
69
71
|
export { SapError, SapValidationError, SapRpcError, SapAccountNotFoundError, SapTimeoutError, SapPermissionError, } from "./errors";
|
|
70
72
|
// ── Events ───────────────────────────────────────────
|
|
71
73
|
export { EventParser, SAP_EVENT_NAMES } from "./events";
|
|
74
|
+
// ── Geyser (Yellowstone gRPC) ────────────────────────
|
|
75
|
+
export { GeyserEventStream } from "./events/geyser";
|
|
72
76
|
// ── Modules (for advanced usage / tree-shaking) ──────
|
|
73
|
-
export { AgentModule, FeedbackModule, IndexingModule, ToolsModule, VaultModule, EscrowModule, AttestationModule, LedgerModule, BaseModule, } from "./modules/index";
|
|
77
|
+
export { AgentModule, FeedbackModule, IndexingModule, ToolsModule, VaultModule, EscrowModule, EscrowV2Module, StakingModule, SubscriptionModule, AttestationModule, LedgerModule, BaseModule, } from "./modules/index";
|
|
74
78
|
// ── Plugin (SynapseAgentKit integration) ─────────────
|
|
75
79
|
export { createSAPPlugin, SAPPlugin } from "./plugin/index";
|
|
76
80
|
export { SAP_PROTOCOLS } from "./plugin/protocols";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,wDAAwD;AACxD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module escrow-v2
|
|
3
|
+
* @description V2 escrow settlement layer — supports settlement security
|
|
4
|
+
* modes (SelfReport, CoSigned, DisputeWindow), dispute resolution,
|
|
5
|
+
* pending settlements, and migration from V1.
|
|
6
|
+
*
|
|
7
|
+
* @category Modules
|
|
8
|
+
* @since v0.7.0
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
import { SystemProgram, } from "@solana/web3.js";
|
|
12
|
+
import { BN } from "@coral-xyz/anchor";
|
|
13
|
+
import { BaseModule } from "./base";
|
|
14
|
+
import { deriveAgent, deriveAgentStats, deriveEscrow, deriveEscrowV2, derivePendingSettlement as derivePendingPda, deriveDispute as deriveDisputePda, } from "../pda";
|
|
15
|
+
import { buildPriorityFeeIxs, buildRpcOptions, } from "../utils/priority-fee";
|
|
16
|
+
/**
|
|
17
|
+
* @name EscrowV2Module
|
|
18
|
+
* @description Manages V2 escrow accounts with settlement security modes,
|
|
19
|
+
* dispute windows, and pending settlement flows.
|
|
20
|
+
*
|
|
21
|
+
* @category Modules
|
|
22
|
+
* @since v0.7.0
|
|
23
|
+
* @extends BaseModule
|
|
24
|
+
*/
|
|
25
|
+
export class EscrowV2Module extends BaseModule {
|
|
26
|
+
// ── Helpers ──────────────────────────────────────────
|
|
27
|
+
/** Convert BN | number | bigint → number for PDA seed functions. */
|
|
28
|
+
toNum(v) {
|
|
29
|
+
return BN.isBN(v) ? v.toNumber() : Number(v);
|
|
30
|
+
}
|
|
31
|
+
// ── PDA helpers ──────────────────────────────────────
|
|
32
|
+
deriveEscrow(agentPda, depositor, nonce = 0) {
|
|
33
|
+
return deriveEscrowV2(agentPda, depositor ?? this.walletPubkey, this.toNum(nonce));
|
|
34
|
+
}
|
|
35
|
+
derivePendingSettlement(escrowV2Pda, settlementIndex) {
|
|
36
|
+
return derivePendingPda(escrowV2Pda, this.toNum(settlementIndex));
|
|
37
|
+
}
|
|
38
|
+
deriveDispute(pendingSettlementPda) {
|
|
39
|
+
return deriveDisputePda(pendingSettlementPda);
|
|
40
|
+
}
|
|
41
|
+
// ── Instructions ─────────────────────────────────────
|
|
42
|
+
async create(agentWallet, args, splAccounts = []) {
|
|
43
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
44
|
+
const [escrowPda] = this.deriveEscrow(agentPda, undefined, args.escrowNonce);
|
|
45
|
+
return this.methods
|
|
46
|
+
.createEscrowV2(this.bn(args.escrowNonce), this.bn(args.pricePerCall), this.bn(args.maxCalls), this.bn(args.initialDeposit), args.expiresAt, args.volumeCurve, args.tokenMint, args.tokenDecimals, args.settlementSecurity, this.bn(args.disputeWindowSlots), args.coSigner, args.arbiter)
|
|
47
|
+
.accounts({
|
|
48
|
+
depositor: this.walletPubkey,
|
|
49
|
+
agent: agentPda,
|
|
50
|
+
escrow: escrowPda,
|
|
51
|
+
systemProgram: SystemProgram.programId,
|
|
52
|
+
})
|
|
53
|
+
.remainingAccounts(splAccounts)
|
|
54
|
+
.rpc();
|
|
55
|
+
}
|
|
56
|
+
async deposit(agentWallet, nonce, amount, splAccounts = []) {
|
|
57
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
58
|
+
const [escrowPda] = this.deriveEscrow(agentPda, undefined, nonce);
|
|
59
|
+
return this.methods
|
|
60
|
+
.depositEscrowV2(this.bn(nonce), this.bn(amount))
|
|
61
|
+
.accounts({
|
|
62
|
+
depositor: this.walletPubkey,
|
|
63
|
+
escrow: escrowPda,
|
|
64
|
+
systemProgram: SystemProgram.programId,
|
|
65
|
+
})
|
|
66
|
+
.remainingAccounts(splAccounts)
|
|
67
|
+
.rpc();
|
|
68
|
+
}
|
|
69
|
+
async settle(depositorWallet, nonce, callsToSettle, serviceHash, splAccounts = [], opts) {
|
|
70
|
+
const [agentPda] = deriveAgent(this.walletPubkey);
|
|
71
|
+
const [escrowPda] = this.deriveEscrow(agentPda, depositorWallet, nonce);
|
|
72
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
73
|
+
const preIxs = buildPriorityFeeIxs(opts);
|
|
74
|
+
const rpcOpts = buildRpcOptions(opts);
|
|
75
|
+
let builder = this.methods
|
|
76
|
+
.settleCallsV2(this.bn(nonce), this.bn(callsToSettle), serviceHash)
|
|
77
|
+
.accounts({
|
|
78
|
+
wallet: this.walletPubkey,
|
|
79
|
+
agent: agentPda,
|
|
80
|
+
agentStats: statsPda,
|
|
81
|
+
escrow: escrowPda,
|
|
82
|
+
systemProgram: SystemProgram.programId,
|
|
83
|
+
})
|
|
84
|
+
.remainingAccounts(splAccounts);
|
|
85
|
+
if (preIxs.length > 0) {
|
|
86
|
+
builder = builder.preInstructions(preIxs);
|
|
87
|
+
}
|
|
88
|
+
return builder.rpc(rpcOpts);
|
|
89
|
+
}
|
|
90
|
+
async createPendingSettlement(agentWallet, depositorWallet, nonce, settlementIndex, callsToSettle, amount, serviceHash) {
|
|
91
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
92
|
+
const [escrowPda] = this.deriveEscrow(agentPda, depositorWallet, nonce);
|
|
93
|
+
const [pendingPda] = this.derivePendingSettlement(escrowPda, settlementIndex);
|
|
94
|
+
return this.methods
|
|
95
|
+
.createPendingSettlement(this.bn(settlementIndex), this.bn(callsToSettle), this.bn(amount), serviceHash)
|
|
96
|
+
.accounts({
|
|
97
|
+
wallet: this.walletPubkey,
|
|
98
|
+
agent: agentPda,
|
|
99
|
+
escrow: escrowPda,
|
|
100
|
+
pendingSettlement: pendingPda,
|
|
101
|
+
systemProgram: SystemProgram.programId,
|
|
102
|
+
})
|
|
103
|
+
.rpc();
|
|
104
|
+
}
|
|
105
|
+
async finalizeSettlement(agentWallet, depositorWallet, nonce, settlementIndex) {
|
|
106
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
107
|
+
const [escrowPda] = this.deriveEscrow(agentPda, depositorWallet, nonce);
|
|
108
|
+
const [pendingPda] = this.derivePendingSettlement(escrowPda, settlementIndex);
|
|
109
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
110
|
+
return this.methods
|
|
111
|
+
.finalizeSettlement()
|
|
112
|
+
.accounts({
|
|
113
|
+
payer: this.walletPubkey,
|
|
114
|
+
agentWallet,
|
|
115
|
+
escrow: escrowPda,
|
|
116
|
+
pendingSettlement: pendingPda,
|
|
117
|
+
agentStats: statsPda,
|
|
118
|
+
})
|
|
119
|
+
.rpc();
|
|
120
|
+
}
|
|
121
|
+
async fileDispute(agentWallet, nonce, settlementIndex, evidenceHash) {
|
|
122
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
123
|
+
const [escrowPda] = this.deriveEscrow(agentPda, undefined, nonce);
|
|
124
|
+
const [pendingPda] = this.derivePendingSettlement(escrowPda, settlementIndex);
|
|
125
|
+
const [disputePda] = this.deriveDispute(pendingPda);
|
|
126
|
+
return this.methods
|
|
127
|
+
.fileDispute(evidenceHash)
|
|
128
|
+
.accounts({
|
|
129
|
+
depositor: this.walletPubkey,
|
|
130
|
+
escrow: escrowPda,
|
|
131
|
+
pendingSettlement: pendingPda,
|
|
132
|
+
dispute: disputePda,
|
|
133
|
+
systemProgram: SystemProgram.programId,
|
|
134
|
+
})
|
|
135
|
+
.rpc();
|
|
136
|
+
}
|
|
137
|
+
async resolveDispute(depositorWallet, agentWallet, nonce, settlementIndex, outcome) {
|
|
138
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
139
|
+
const [escrowPda] = this.deriveEscrow(agentPda, depositorWallet, nonce);
|
|
140
|
+
const [pendingPda] = this.derivePendingSettlement(escrowPda, settlementIndex);
|
|
141
|
+
const [disputePda] = this.deriveDispute(pendingPda);
|
|
142
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
143
|
+
return this.methods
|
|
144
|
+
.resolveDispute(outcome)
|
|
145
|
+
.accounts({
|
|
146
|
+
arbiter: this.walletPubkey,
|
|
147
|
+
depositor: depositorWallet,
|
|
148
|
+
agentWallet,
|
|
149
|
+
escrow: escrowPda,
|
|
150
|
+
pendingSettlement: pendingPda,
|
|
151
|
+
dispute: disputePda,
|
|
152
|
+
agentStats: statsPda,
|
|
153
|
+
})
|
|
154
|
+
.rpc();
|
|
155
|
+
}
|
|
156
|
+
async closeDispute(pendingSettlementPda) {
|
|
157
|
+
const [disputePda] = this.deriveDispute(pendingSettlementPda);
|
|
158
|
+
return this.methods
|
|
159
|
+
.closeDispute()
|
|
160
|
+
.accounts({
|
|
161
|
+
depositor: this.walletPubkey,
|
|
162
|
+
dispute: disputePda,
|
|
163
|
+
})
|
|
164
|
+
.rpc();
|
|
165
|
+
}
|
|
166
|
+
async closePendingSettlement(pendingSettlementPda) {
|
|
167
|
+
return this.methods
|
|
168
|
+
.closePendingSettlement()
|
|
169
|
+
.accounts({
|
|
170
|
+
payer: this.walletPubkey,
|
|
171
|
+
pendingSettlement: pendingSettlementPda,
|
|
172
|
+
})
|
|
173
|
+
.rpc();
|
|
174
|
+
}
|
|
175
|
+
async withdraw(agentWallet, nonce, amount) {
|
|
176
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
177
|
+
const [escrowPda] = this.deriveEscrow(agentPda, undefined, nonce);
|
|
178
|
+
return this.methods
|
|
179
|
+
.withdrawEscrowV2(this.bn(amount))
|
|
180
|
+
.accounts({
|
|
181
|
+
depositor: this.walletPubkey,
|
|
182
|
+
escrow: escrowPda,
|
|
183
|
+
})
|
|
184
|
+
.rpc();
|
|
185
|
+
}
|
|
186
|
+
async close(agentWallet, nonce = 0) {
|
|
187
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
188
|
+
const [escrowPda] = this.deriveEscrow(agentPda, undefined, nonce);
|
|
189
|
+
return this.methods
|
|
190
|
+
.closeEscrowV2()
|
|
191
|
+
.accounts({
|
|
192
|
+
depositor: this.walletPubkey,
|
|
193
|
+
escrow: escrowPda,
|
|
194
|
+
})
|
|
195
|
+
.rpc();
|
|
196
|
+
}
|
|
197
|
+
async migrateFromV1(agentWallet) {
|
|
198
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
199
|
+
const [escrowV1Pda] = deriveEscrow(agentPda, this.walletPubkey);
|
|
200
|
+
const [escrowV2Pda] = this.deriveEscrow(agentPda, undefined, 0);
|
|
201
|
+
return this.methods
|
|
202
|
+
.migrateEscrowV1ToV2()
|
|
203
|
+
.accounts({
|
|
204
|
+
depositor: this.walletPubkey,
|
|
205
|
+
agent: agentPda,
|
|
206
|
+
escrowV1: escrowV1Pda,
|
|
207
|
+
escrowV2: escrowV2Pda,
|
|
208
|
+
systemProgram: SystemProgram.programId,
|
|
209
|
+
})
|
|
210
|
+
.rpc();
|
|
211
|
+
}
|
|
212
|
+
// ── Fetchers ─────────────────────────────────────────
|
|
213
|
+
async fetch(agentPda, depositor, nonce = 0) {
|
|
214
|
+
const [pda] = this.deriveEscrow(agentPda, depositor, nonce);
|
|
215
|
+
return this.fetchAccount("escrowAccountV2", pda);
|
|
216
|
+
}
|
|
217
|
+
async fetchNullable(agentPda, depositor, nonce = 0) {
|
|
218
|
+
const [pda] = this.deriveEscrow(agentPda, depositor, nonce);
|
|
219
|
+
return this.fetchAccountNullable("escrowAccountV2", pda);
|
|
220
|
+
}
|
|
221
|
+
async fetchByPda(escrowPda) {
|
|
222
|
+
return this.fetchAccount("escrowAccountV2", escrowPda);
|
|
223
|
+
}
|
|
224
|
+
async fetchPendingSettlement(pendingPda) {
|
|
225
|
+
return this.fetchAccount("pendingSettlement", pendingPda);
|
|
226
|
+
}
|
|
227
|
+
async fetchPendingSettlementNullable(pendingPda) {
|
|
228
|
+
return this.fetchAccountNullable("pendingSettlement", pendingPda);
|
|
229
|
+
}
|
|
230
|
+
async fetchDispute(disputePda) {
|
|
231
|
+
return this.fetchAccount("disputeRecord", disputePda);
|
|
232
|
+
}
|
|
233
|
+
async fetchDisputeNullable(disputePda) {
|
|
234
|
+
return this.fetchAccountNullable("disputeRecord", disputePda);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=escrow-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow-v2.js","sourceRoot":"","sources":["../../../src/modules/escrow-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,10 @@ import { buildPriorityFeeIxs, buildRpcOptions, } from "../utils/priority-fee";
|
|
|
38
38
|
* tokenDecimals: null,
|
|
39
39
|
* });
|
|
40
40
|
* ```
|
|
41
|
+
*
|
|
42
|
+
* @deprecated Since v0.7.0 — Use {@link EscrowV2Module} (`client.escrowV2`) instead.
|
|
43
|
+
* V1 escrows lack settlement security, dispute resolution, and staking integration.
|
|
44
|
+
* Existing V1 escrows can be migrated via `client.escrowV2.migrateFromV1()`.
|
|
41
45
|
*/
|
|
42
46
|
export class EscrowModule extends BaseModule {
|
|
43
47
|
// ── PDA helpers ──────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,aAAa,GAId,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,GACb,MAAM,QAAQ,CAAC;AAMhB,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B
|
|
1
|
+
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,9 @@ export { IndexingModule } from "./indexing";
|
|
|
17
17
|
export { ToolsModule } from "./tools";
|
|
18
18
|
export { VaultModule } from "./vault";
|
|
19
19
|
export { EscrowModule } from "./escrow";
|
|
20
|
+
export { EscrowV2Module } from "./escrow-v2";
|
|
21
|
+
export { StakingModule } from "./staking";
|
|
22
|
+
export { SubscriptionModule } from "./subscription";
|
|
20
23
|
export { AttestationModule } from "./attestation";
|
|
21
24
|
export { LedgerModule } from "./ledger";
|
|
22
25
|
export { BaseModule } from "./base";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module staking
|
|
3
|
+
* @description Agent staking lifecycle — init, deposit, request unstake,
|
|
4
|
+
* complete unstake, and fetch stake accounts.
|
|
5
|
+
*
|
|
6
|
+
* @category Modules
|
|
7
|
+
* @since v0.7.0
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { SystemProgram, } from "@solana/web3.js";
|
|
11
|
+
import { BaseModule } from "./base";
|
|
12
|
+
import { deriveAgent, deriveStake } from "../pda";
|
|
13
|
+
/**
|
|
14
|
+
* @name StakingModule
|
|
15
|
+
* @description Manages agent stake accounts — init, deposit, unstake, and fetch.
|
|
16
|
+
*
|
|
17
|
+
* @category Modules
|
|
18
|
+
* @since v0.7.0
|
|
19
|
+
* @extends BaseModule
|
|
20
|
+
*/
|
|
21
|
+
export class StakingModule extends BaseModule {
|
|
22
|
+
// ── PDA helpers ──────────────────────────────────────
|
|
23
|
+
deriveStake(agentPda) {
|
|
24
|
+
return deriveStake(agentPda);
|
|
25
|
+
}
|
|
26
|
+
// ── Instructions ─────────────────────────────────────
|
|
27
|
+
async initStake(agentWallet, initialDeposit) {
|
|
28
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
29
|
+
const [stakePda] = this.deriveStake(agentPda);
|
|
30
|
+
return this.methods
|
|
31
|
+
.initStake(this.bn(initialDeposit))
|
|
32
|
+
.accounts({
|
|
33
|
+
wallet: this.walletPubkey,
|
|
34
|
+
agent: agentPda,
|
|
35
|
+
stake: stakePda,
|
|
36
|
+
systemProgram: SystemProgram.programId,
|
|
37
|
+
})
|
|
38
|
+
.rpc();
|
|
39
|
+
}
|
|
40
|
+
async deposit(agentWallet, amount) {
|
|
41
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
42
|
+
const [stakePda] = this.deriveStake(agentPda);
|
|
43
|
+
return this.methods
|
|
44
|
+
.depositStake(this.bn(amount))
|
|
45
|
+
.accounts({
|
|
46
|
+
wallet: this.walletPubkey,
|
|
47
|
+
agent: agentPda,
|
|
48
|
+
stake: stakePda,
|
|
49
|
+
systemProgram: SystemProgram.programId,
|
|
50
|
+
})
|
|
51
|
+
.rpc();
|
|
52
|
+
}
|
|
53
|
+
async requestUnstake(agentWallet, amount) {
|
|
54
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
55
|
+
const [stakePda] = this.deriveStake(agentPda);
|
|
56
|
+
return this.methods
|
|
57
|
+
.requestUnstake(this.bn(amount))
|
|
58
|
+
.accounts({
|
|
59
|
+
wallet: this.walletPubkey,
|
|
60
|
+
agent: agentPda,
|
|
61
|
+
stake: stakePda,
|
|
62
|
+
})
|
|
63
|
+
.rpc();
|
|
64
|
+
}
|
|
65
|
+
async completeUnstake(agentWallet) {
|
|
66
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
67
|
+
const [stakePda] = this.deriveStake(agentPda);
|
|
68
|
+
return this.methods
|
|
69
|
+
.completeUnstake()
|
|
70
|
+
.accounts({
|
|
71
|
+
wallet: this.walletPubkey,
|
|
72
|
+
agent: agentPda,
|
|
73
|
+
stake: stakePda,
|
|
74
|
+
})
|
|
75
|
+
.rpc();
|
|
76
|
+
}
|
|
77
|
+
// ── Fetchers ─────────────────────────────────────────
|
|
78
|
+
async fetch(agentPda) {
|
|
79
|
+
const [pda] = this.deriveStake(agentPda);
|
|
80
|
+
return this.fetchAccount("agentStake", pda);
|
|
81
|
+
}
|
|
82
|
+
async fetchNullable(agentPda) {
|
|
83
|
+
const [pda] = this.deriveStake(agentPda);
|
|
84
|
+
return this.fetchAccountNullable("agentStake", pda);
|
|
85
|
+
}
|
|
86
|
+
async fetchByPda(stakePda) {
|
|
87
|
+
return this.fetchAccount("agentStake", stakePda);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=staking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/modules/staking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module subscription
|
|
3
|
+
* @description Agent subscription lifecycle — create, fund, cancel,
|
|
4
|
+
* close, and fetch subscription accounts.
|
|
5
|
+
*
|
|
6
|
+
* @category Modules
|
|
7
|
+
* @since v0.7.0
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { SystemProgram, } from "@solana/web3.js";
|
|
11
|
+
import { BN } from "@coral-xyz/anchor";
|
|
12
|
+
import { BaseModule } from "./base";
|
|
13
|
+
import { deriveAgent, deriveSubscription } from "../pda";
|
|
14
|
+
/**
|
|
15
|
+
* @name SubscriptionModule
|
|
16
|
+
* @description Manages recurring subscriptions between subscribers and agents.
|
|
17
|
+
*
|
|
18
|
+
* @category Modules
|
|
19
|
+
* @since v0.7.0
|
|
20
|
+
* @extends BaseModule
|
|
21
|
+
*/
|
|
22
|
+
export class SubscriptionModule extends BaseModule {
|
|
23
|
+
// ── PDA helpers ──────────────────────────────────────
|
|
24
|
+
toNum(v) {
|
|
25
|
+
return BN.isBN(v) ? v.toNumber() : Number(v);
|
|
26
|
+
}
|
|
27
|
+
deriveSubscription(agentPda, subscriber, subId = 0) {
|
|
28
|
+
return deriveSubscription(agentPda, subscriber ?? this.walletPubkey, this.toNum(subId));
|
|
29
|
+
}
|
|
30
|
+
// ── Instructions ─────────────────────────────────────
|
|
31
|
+
async create(agentWallet, args) {
|
|
32
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
33
|
+
const [subPda] = this.deriveSubscription(agentPda, undefined, args.subId);
|
|
34
|
+
return this.methods
|
|
35
|
+
.createSubscription(this.bn(args.subId), this.bn(args.pricePerInterval), args.billingInterval, this.bn(args.initialFund))
|
|
36
|
+
.accounts({
|
|
37
|
+
subscriber: this.walletPubkey,
|
|
38
|
+
agent: agentPda,
|
|
39
|
+
subscription: subPda,
|
|
40
|
+
systemProgram: SystemProgram.programId,
|
|
41
|
+
})
|
|
42
|
+
.rpc();
|
|
43
|
+
}
|
|
44
|
+
async fund(agentWallet, subId, amount) {
|
|
45
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
46
|
+
const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
|
|
47
|
+
return this.methods
|
|
48
|
+
.fundSubscription(this.bn(amount))
|
|
49
|
+
.accounts({
|
|
50
|
+
subscriber: this.walletPubkey,
|
|
51
|
+
subscription: subPda,
|
|
52
|
+
systemProgram: SystemProgram.programId,
|
|
53
|
+
})
|
|
54
|
+
.rpc();
|
|
55
|
+
}
|
|
56
|
+
async cancel(agentWallet, subId = 0) {
|
|
57
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
58
|
+
const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
|
|
59
|
+
return this.methods
|
|
60
|
+
.cancelSubscription()
|
|
61
|
+
.accounts({
|
|
62
|
+
subscriber: this.walletPubkey,
|
|
63
|
+
agentWallet,
|
|
64
|
+
subscription: subPda,
|
|
65
|
+
})
|
|
66
|
+
.rpc();
|
|
67
|
+
}
|
|
68
|
+
async close(agentWallet, subId = 0) {
|
|
69
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
70
|
+
const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
|
|
71
|
+
return this.methods
|
|
72
|
+
.closeSubscription()
|
|
73
|
+
.accounts({
|
|
74
|
+
subscriber: this.walletPubkey,
|
|
75
|
+
subscription: subPda,
|
|
76
|
+
})
|
|
77
|
+
.rpc();
|
|
78
|
+
}
|
|
79
|
+
// ── Fetchers ─────────────────────────────────────────
|
|
80
|
+
async fetch(agentPda, subscriber, subId = 0) {
|
|
81
|
+
const [pda] = this.deriveSubscription(agentPda, subscriber, subId);
|
|
82
|
+
return this.fetchAccount("subscriptionAccount", pda);
|
|
83
|
+
}
|
|
84
|
+
async fetchNullable(agentPda, subscriber, subId = 0) {
|
|
85
|
+
const [pda] = this.deriveSubscription(agentPda, subscriber, subId);
|
|
86
|
+
return this.fetchAccountNullable("subscriptionAccount", pda);
|
|
87
|
+
}
|
|
88
|
+
async fetchByPda(subPda) {
|
|
89
|
+
return this.fetchAccount("subscriptionAccount", subPda);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/modules/subscription.ts"],"names":[],"mappings":"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"}
|