@oobe-protocol-labs/synapse-sap-sdk 0.1.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/LICENSE +21 -0
- package/README.md +882 -0
- package/dist/cjs/constants/index.js +43 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/constants/limits.js +161 -0
- package/dist/cjs/constants/limits.js.map +1 -0
- package/dist/cjs/constants/programs.js +78 -0
- package/dist/cjs/constants/programs.js.map +1 -0
- package/dist/cjs/constants/seeds.js +57 -0
- package/dist/cjs/constants/seeds.js.map +1 -0
- package/dist/cjs/core/client.js +391 -0
- package/dist/cjs/core/client.js.map +1 -0
- package/dist/cjs/core/connection.js +319 -0
- package/dist/cjs/core/connection.js.map +1 -0
- package/dist/cjs/core/index.js +24 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/errors/index.js +334 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/events/index.js +136 -0
- package/dist/cjs/events/index.js.map +1 -0
- package/dist/cjs/idl/index.js +63 -0
- package/dist/cjs/idl/index.js.map +1 -0
- package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
- package/dist/cjs/index.js +147 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/modules/agent.js +272 -0
- package/dist/cjs/modules/agent.js.map +1 -0
- package/dist/cjs/modules/attestation.js +147 -0
- package/dist/cjs/modules/attestation.js.map +1 -0
- package/dist/cjs/modules/base.js +128 -0
- package/dist/cjs/modules/base.js.map +1 -0
- package/dist/cjs/modules/escrow.js +246 -0
- package/dist/cjs/modules/escrow.js.map +1 -0
- package/dist/cjs/modules/feedback.js +166 -0
- package/dist/cjs/modules/feedback.js.map +1 -0
- package/dist/cjs/modules/index.js +35 -0
- package/dist/cjs/modules/index.js.map +1 -0
- package/dist/cjs/modules/indexing.js +375 -0
- package/dist/cjs/modules/indexing.js.map +1 -0
- package/dist/cjs/modules/ledger.js +234 -0
- package/dist/cjs/modules/ledger.js.map +1 -0
- package/dist/cjs/modules/tools.js +319 -0
- package/dist/cjs/modules/tools.js.map +1 -0
- package/dist/cjs/modules/vault.js +410 -0
- package/dist/cjs/modules/vault.js.map +1 -0
- package/dist/cjs/pda/index.js +377 -0
- package/dist/cjs/pda/index.js.map +1 -0
- package/dist/cjs/plugin/index.js +934 -0
- package/dist/cjs/plugin/index.js.map +1 -0
- package/dist/cjs/plugin/protocols.js +282 -0
- package/dist/cjs/plugin/protocols.js.map +1 -0
- package/dist/cjs/plugin/schemas.js +831 -0
- package/dist/cjs/plugin/schemas.js.map +1 -0
- package/dist/cjs/postgres/adapter.js +715 -0
- package/dist/cjs/postgres/adapter.js.map +1 -0
- package/dist/cjs/postgres/index.js +50 -0
- package/dist/cjs/postgres/index.js.map +1 -0
- package/dist/cjs/postgres/serializers.js +381 -0
- package/dist/cjs/postgres/serializers.js.map +1 -0
- package/dist/cjs/postgres/sync.js +221 -0
- package/dist/cjs/postgres/sync.js.map +1 -0
- package/dist/cjs/postgres/types.js +44 -0
- package/dist/cjs/postgres/types.js.map +1 -0
- package/dist/cjs/registries/builder.js +414 -0
- package/dist/cjs/registries/builder.js.map +1 -0
- package/dist/cjs/registries/discovery.js +362 -0
- package/dist/cjs/registries/discovery.js.map +1 -0
- package/dist/cjs/registries/index.js +51 -0
- package/dist/cjs/registries/index.js.map +1 -0
- package/dist/cjs/registries/session.js +433 -0
- package/dist/cjs/registries/session.js.map +1 -0
- package/dist/cjs/registries/x402.js +577 -0
- package/dist/cjs/registries/x402.js.map +1 -0
- package/dist/cjs/types/accounts.js +13 -0
- package/dist/cjs/types/accounts.js.map +1 -0
- package/dist/cjs/types/common.js +13 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/enums.js +174 -0
- package/dist/cjs/types/enums.js.map +1 -0
- package/dist/cjs/types/index.js +36 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/instructions.js +92 -0
- package/dist/cjs/types/instructions.js.map +1 -0
- package/dist/cjs/utils/hash.js +58 -0
- package/dist/cjs/utils/hash.js.map +1 -0
- package/dist/cjs/utils/index.js +27 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/serialization.js +105 -0
- package/dist/cjs/utils/serialization.js.map +1 -0
- package/dist/cjs/utils/validation.js +36 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/esm/constants/index.js +29 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/limits.js +158 -0
- package/dist/esm/constants/limits.js.map +1 -0
- package/dist/esm/constants/programs.js +75 -0
- package/dist/esm/constants/programs.js.map +1 -0
- package/dist/esm/constants/seeds.js +54 -0
- package/dist/esm/constants/seeds.js.map +1 -0
- package/dist/esm/core/client.js +384 -0
- package/dist/esm/core/client.js.map +1 -0
- package/dist/esm/core/connection.js +315 -0
- package/dist/esm/core/connection.js.map +1 -0
- package/dist/esm/core/index.js +19 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/errors/index.js +325 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/events/index.js +132 -0
- package/dist/esm/events/index.js.map +1 -0
- package/dist/esm/idl/index.js +57 -0
- package/dist/esm/idl/index.js.map +1 -0
- package/dist/esm/idl/synapse_agent_sap.json +9710 -0
- package/dist/esm/index.js +70 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/modules/agent.js +268 -0
- package/dist/esm/modules/agent.js.map +1 -0
- package/dist/esm/modules/attestation.js +143 -0
- package/dist/esm/modules/attestation.js.map +1 -0
- package/dist/esm/modules/base.js +124 -0
- package/dist/esm/modules/base.js.map +1 -0
- package/dist/esm/modules/escrow.js +242 -0
- package/dist/esm/modules/escrow.js.map +1 -0
- package/dist/esm/modules/feedback.js +162 -0
- package/dist/esm/modules/feedback.js.map +1 -0
- package/dist/esm/modules/index.js +23 -0
- package/dist/esm/modules/index.js.map +1 -0
- package/dist/esm/modules/indexing.js +371 -0
- package/dist/esm/modules/indexing.js.map +1 -0
- package/dist/esm/modules/ledger.js +230 -0
- package/dist/esm/modules/ledger.js.map +1 -0
- package/dist/esm/modules/tools.js +315 -0
- package/dist/esm/modules/tools.js.map +1 -0
- package/dist/esm/modules/vault.js +406 -0
- package/dist/esm/modules/vault.js.map +1 -0
- package/dist/esm/pda/index.js +357 -0
- package/dist/esm/pda/index.js.map +1 -0
- package/dist/esm/plugin/index.js +927 -0
- package/dist/esm/plugin/index.js.map +1 -0
- package/dist/esm/plugin/protocols.js +279 -0
- package/dist/esm/plugin/protocols.js.map +1 -0
- package/dist/esm/plugin/schemas.js +828 -0
- package/dist/esm/plugin/schemas.js.map +1 -0
- package/dist/esm/postgres/adapter.js +678 -0
- package/dist/esm/postgres/adapter.js.map +1 -0
- package/dist/esm/postgres/index.js +27 -0
- package/dist/esm/postgres/index.js.map +1 -0
- package/dist/esm/postgres/serializers.js +362 -0
- package/dist/esm/postgres/serializers.js.map +1 -0
- package/dist/esm/postgres/sync.js +217 -0
- package/dist/esm/postgres/sync.js.map +1 -0
- package/dist/esm/postgres/types.js +41 -0
- package/dist/esm/postgres/types.js.map +1 -0
- package/dist/esm/registries/builder.js +410 -0
- package/dist/esm/registries/builder.js.map +1 -0
- package/dist/esm/registries/discovery.js +358 -0
- package/dist/esm/registries/discovery.js.map +1 -0
- package/dist/esm/registries/index.js +44 -0
- package/dist/esm/registries/index.js.map +1 -0
- package/dist/esm/registries/session.js +429 -0
- package/dist/esm/registries/session.js.map +1 -0
- package/dist/esm/registries/x402.js +573 -0
- package/dist/esm/registries/x402.js.map +1 -0
- package/dist/esm/types/accounts.js +12 -0
- package/dist/esm/types/accounts.js.map +1 -0
- package/dist/esm/types/common.js +12 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/enums.js +171 -0
- package/dist/esm/types/enums.js.map +1 -0
- package/dist/esm/types/index.js +25 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/instructions.js +89 -0
- package/dist/esm/types/instructions.js.map +1 -0
- package/dist/esm/utils/hash.js +53 -0
- package/dist/esm/utils/hash.js.map +1 -0
- package/dist/esm/utils/index.js +19 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/serialization.js +98 -0
- package/dist/esm/utils/serialization.js.map +1 -0
- package/dist/esm/utils/validation.js +33 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/types/constants/index.d.ts +27 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/limits.d.ts +149 -0
- package/dist/types/constants/limits.d.ts.map +1 -0
- package/dist/types/constants/programs.d.ts +69 -0
- package/dist/types/constants/programs.d.ts.map +1 -0
- package/dist/types/constants/seeds.d.ts +61 -0
- package/dist/types/constants/seeds.d.ts.map +1 -0
- package/dist/types/core/client.d.ts +323 -0
- package/dist/types/core/client.d.ts.map +1 -0
- package/dist/types/core/connection.d.ts +279 -0
- package/dist/types/core/connection.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +20 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +276 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/events/index.d.ts +248 -0
- package/dist/types/events/index.d.ts.map +1 -0
- package/dist/types/idl/index.d.ts +70 -0
- package/dist/types/idl/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +68 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/agent.d.ts +166 -0
- package/dist/types/modules/agent.d.ts.map +1 -0
- package/dist/types/modules/attestation.d.ts +96 -0
- package/dist/types/modules/attestation.d.ts.map +1 -0
- package/dist/types/modules/base.d.ts +126 -0
- package/dist/types/modules/base.d.ts.map +1 -0
- package/dist/types/modules/escrow.d.ts +151 -0
- package/dist/types/modules/escrow.d.ts.map +1 -0
- package/dist/types/modules/feedback.d.ts +105 -0
- package/dist/types/modules/feedback.d.ts.map +1 -0
- package/dist/types/modules/index.d.ts +24 -0
- package/dist/types/modules/index.d.ts.map +1 -0
- package/dist/types/modules/indexing.d.ts +200 -0
- package/dist/types/modules/indexing.d.ts.map +1 -0
- package/dist/types/modules/ledger.d.ts +150 -0
- package/dist/types/modules/ledger.d.ts.map +1 -0
- package/dist/types/modules/tools.d.ts +182 -0
- package/dist/types/modules/tools.d.ts.map +1 -0
- package/dist/types/modules/vault.d.ts +240 -0
- package/dist/types/modules/vault.d.ts.map +1 -0
- package/dist/types/pda/index.d.ts +296 -0
- package/dist/types/pda/index.d.ts.map +1 -0
- package/dist/types/plugin/index.d.ts +171 -0
- package/dist/types/plugin/index.d.ts.map +1 -0
- package/dist/types/plugin/protocols.d.ts +152 -0
- package/dist/types/plugin/protocols.d.ts.map +1 -0
- package/dist/types/plugin/schemas.d.ts +823 -0
- package/dist/types/plugin/schemas.d.ts.map +1 -0
- package/dist/types/postgres/adapter.d.ts +355 -0
- package/dist/types/postgres/adapter.d.ts.map +1 -0
- package/dist/types/postgres/index.d.ts +24 -0
- package/dist/types/postgres/index.d.ts.map +1 -0
- package/dist/types/postgres/serializers.d.ts +30 -0
- package/dist/types/postgres/serializers.d.ts.map +1 -0
- package/dist/types/postgres/sync.d.ts +132 -0
- package/dist/types/postgres/sync.d.ts.map +1 -0
- package/dist/types/postgres/types.d.ts +167 -0
- package/dist/types/postgres/types.d.ts.map +1 -0
- package/dist/types/registries/builder.d.ts +340 -0
- package/dist/types/registries/builder.d.ts.map +1 -0
- package/dist/types/registries/discovery.d.ts +333 -0
- package/dist/types/registries/discovery.d.ts.map +1 -0
- package/dist/types/registries/index.d.ts +48 -0
- package/dist/types/registries/index.d.ts.map +1 -0
- package/dist/types/registries/session.d.ts +323 -0
- package/dist/types/registries/session.d.ts.map +1 -0
- package/dist/types/registries/x402.d.ts +463 -0
- package/dist/types/registries/x402.d.ts.map +1 -0
- package/dist/types/types/accounts.d.ts +565 -0
- package/dist/types/types/accounts.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +166 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +238 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +28 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/instructions.d.ts +366 -0
- package/dist/types/types/instructions.d.ts.map +1 -0
- package/dist/types/utils/hash.d.ts +48 -0
- package/dist/types/utils/hash.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +19 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/serialization.d.ts +69 -0
- package/dist/types/utils/serialization.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +29 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/package.json +178 -0
- package/src/constants/index.ts +44 -0
- package/src/constants/limits.ts +165 -0
- package/src/constants/programs.ts +83 -0
- package/src/constants/seeds.ts +66 -0
- package/src/core/client.ts +416 -0
- package/src/core/connection.ts +409 -0
- package/src/core/index.ts +20 -0
- package/src/errors/index.ts +346 -0
- package/src/events/index.ts +335 -0
- package/src/idl/index.ts +76 -0
- package/src/idl/synapse_agent_sap.json +9710 -0
- package/src/index.ts +253 -0
- package/src/modules/agent.ts +319 -0
- package/src/modules/attestation.ts +168 -0
- package/src/modules/base.ts +158 -0
- package/src/modules/escrow.ts +308 -0
- package/src/modules/feedback.ts +186 -0
- package/src/modules/index.ts +24 -0
- package/src/modules/indexing.ts +444 -0
- package/src/modules/ledger.ts +262 -0
- package/src/modules/tools.ts +411 -0
- package/src/modules/vault.ts +533 -0
- package/src/pda/index.ts +512 -0
- package/src/plugin/index.ts +1202 -0
- package/src/plugin/protocols.ts +404 -0
- package/src/plugin/schemas.ts +909 -0
- package/src/postgres/adapter.ts +904 -0
- package/src/postgres/index.ts +59 -0
- package/src/postgres/schema.sql +683 -0
- package/src/postgres/serializers.ts +485 -0
- package/src/postgres/sync.ts +254 -0
- package/src/postgres/types.ts +245 -0
- package/src/registries/builder.ts +607 -0
- package/src/registries/discovery.ts +572 -0
- package/src/registries/index.ts +77 -0
- package/src/registries/session.ts +613 -0
- package/src/registries/x402.ts +906 -0
- package/src/types/accounts.ts +618 -0
- package/src/types/common.ts +187 -0
- package/src/types/enums.ts +214 -0
- package/src/types/index.ts +92 -0
- package/src/types/instructions.ts +413 -0
- package/src/utils/hash.ts +57 -0
- package/src/utils/index.ts +19 -0
- package/src/utils/serialization.ts +98 -0
- package/src/utils/validation.ts +36 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module escrow
|
|
3
|
+
* @description x402 escrow settlement layer — create, deposit,
|
|
4
|
+
* settle, withdraw, batch settle, and close escrow accounts.
|
|
5
|
+
*
|
|
6
|
+
* Supports both SOL and SPL token escrows. SPL operations require
|
|
7
|
+
* passing additional `AccountMeta[]` via the `splAccounts` parameter.
|
|
8
|
+
*
|
|
9
|
+
* @category Modules
|
|
10
|
+
* @since v0.1.0
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { SystemProgram, } from "@solana/web3.js";
|
|
14
|
+
import { BaseModule } from "./base";
|
|
15
|
+
import { deriveAgent, deriveAgentStats, deriveEscrow, } from "../pda";
|
|
16
|
+
/**
|
|
17
|
+
* @name EscrowModule
|
|
18
|
+
* @description Manages x402-compatible escrow accounts for agent micropayments.
|
|
19
|
+
* Provides methods to create, fund, settle, withdraw, batch-settle, close,
|
|
20
|
+
* and fetch escrow PDAs on the Solana Agent Protocol.
|
|
21
|
+
*
|
|
22
|
+
* @category Modules
|
|
23
|
+
* @since v0.1.0
|
|
24
|
+
* @extends BaseModule
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const sap = new SapClient(provider);
|
|
29
|
+
* // Create a SOL escrow for an agent
|
|
30
|
+
* const sig = await sap.escrow.create(agentWallet, {
|
|
31
|
+
* pricePerCall: new BN(1_000_000),
|
|
32
|
+
* maxCalls: new BN(100),
|
|
33
|
+
* initialDeposit: new BN(100_000_000),
|
|
34
|
+
* expiresAt: null,
|
|
35
|
+
* volumeCurve: null,
|
|
36
|
+
* tokenMint: null,
|
|
37
|
+
* tokenDecimals: null,
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export class EscrowModule extends BaseModule {
|
|
42
|
+
// ── PDA helpers ──────────────────────────────────────
|
|
43
|
+
/**
|
|
44
|
+
* @name deriveEscrow
|
|
45
|
+
* @description Derive the `EscrowAccount` PDA for a given agent and depositor.
|
|
46
|
+
* @param agentPda - The agent account PDA.
|
|
47
|
+
* @param depositor - The depositor wallet. Defaults to the connected wallet.
|
|
48
|
+
* @returns A tuple of `[PublicKey, bump]` for the escrow PDA.
|
|
49
|
+
* @see {@link deriveEscrow} from `pda/` module for the underlying derivation.
|
|
50
|
+
* @since v0.1.0
|
|
51
|
+
*/
|
|
52
|
+
deriveEscrow(agentPda, depositor) {
|
|
53
|
+
return deriveEscrow(agentPda, depositor ?? this.walletPubkey);
|
|
54
|
+
}
|
|
55
|
+
// ── Instructions ─────────────────────────────────────
|
|
56
|
+
/**
|
|
57
|
+
* @name create
|
|
58
|
+
* @description Create a new escrow for agent micropayments.
|
|
59
|
+
*
|
|
60
|
+
* For **SOL escrow**: pass `tokenMint: null` and leave `splAccounts` empty.
|
|
61
|
+
* For **SPL escrow**: pass `tokenMint`, `tokenDecimals`, and provide
|
|
62
|
+
* `splAccounts` with `[depositorAta, escrowAta, tokenMint, tokenProgram]`.
|
|
63
|
+
*
|
|
64
|
+
* @param agentWallet - The wallet of the agent to pay.
|
|
65
|
+
* @param args - Escrow creation parameters (price, max calls, deposit, expiry, volume curve, token info).
|
|
66
|
+
* @param splAccounts - Remaining accounts for SPL token transfers:
|
|
67
|
+
* `[depositorAta, escrowAta, tokenMint, tokenProgram]`. Defaults to `[]`.
|
|
68
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
69
|
+
* @since v0.1.0
|
|
70
|
+
*/
|
|
71
|
+
async create(agentWallet, args, splAccounts = []) {
|
|
72
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
73
|
+
const [escrowPda] = this.deriveEscrow(agentPda);
|
|
74
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
75
|
+
return this.methods
|
|
76
|
+
.createEscrow(args.pricePerCall, args.maxCalls, args.initialDeposit, args.expiresAt, args.volumeCurve, args.tokenMint, args.tokenDecimals)
|
|
77
|
+
.accounts({
|
|
78
|
+
depositor: this.walletPubkey,
|
|
79
|
+
agent: agentPda,
|
|
80
|
+
agentStats: statsPda,
|
|
81
|
+
escrow: escrowPda,
|
|
82
|
+
systemProgram: SystemProgram.programId,
|
|
83
|
+
})
|
|
84
|
+
.remainingAccounts(splAccounts)
|
|
85
|
+
.rpc();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @name deposit
|
|
89
|
+
* @description Deposit additional funds into an existing escrow.
|
|
90
|
+
* @param agentWallet - The wallet of the agent associated with the escrow.
|
|
91
|
+
* @param amount - The amount to deposit (lamports for SOL, smallest unit for SPL).
|
|
92
|
+
* @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
|
|
93
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
94
|
+
* @since v0.1.0
|
|
95
|
+
*/
|
|
96
|
+
async deposit(agentWallet, amount, splAccounts = []) {
|
|
97
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
98
|
+
const [escrowPda] = this.deriveEscrow(agentPda);
|
|
99
|
+
return this.methods
|
|
100
|
+
.depositEscrow(this.bn(amount))
|
|
101
|
+
.accounts({
|
|
102
|
+
depositor: this.walletPubkey,
|
|
103
|
+
escrow: escrowPda,
|
|
104
|
+
systemProgram: SystemProgram.programId,
|
|
105
|
+
})
|
|
106
|
+
.remainingAccounts(splAccounts)
|
|
107
|
+
.rpc();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @name settle
|
|
111
|
+
* @description Agent settles calls — claims earned funds from the escrow.
|
|
112
|
+
* Must be called by the agent owner wallet.
|
|
113
|
+
* @param depositorWallet - The wallet of the client who funded the escrow.
|
|
114
|
+
* @param callsToSettle - Number of calls to settle payment for.
|
|
115
|
+
* @param serviceHash - A 32-byte SHA-256 hash identifying the service rendered.
|
|
116
|
+
* @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
|
|
117
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
118
|
+
* @since v0.1.0
|
|
119
|
+
*/
|
|
120
|
+
async settle(depositorWallet, callsToSettle, serviceHash, splAccounts = []) {
|
|
121
|
+
const [agentPda] = deriveAgent(this.walletPubkey);
|
|
122
|
+
const [escrowPda] = deriveEscrow(agentPda, depositorWallet);
|
|
123
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
124
|
+
return this.methods
|
|
125
|
+
.settleCalls(this.bn(callsToSettle), serviceHash)
|
|
126
|
+
.accounts({
|
|
127
|
+
wallet: this.walletPubkey,
|
|
128
|
+
agent: agentPda,
|
|
129
|
+
agentStats: statsPda,
|
|
130
|
+
escrow: escrowPda,
|
|
131
|
+
systemProgram: SystemProgram.programId,
|
|
132
|
+
})
|
|
133
|
+
.remainingAccounts(splAccounts)
|
|
134
|
+
.rpc();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @name withdraw
|
|
138
|
+
* @description Client withdraws un-settled funds from their escrow.
|
|
139
|
+
* @param agentWallet - The wallet of the agent associated with the escrow.
|
|
140
|
+
* @param amount - The amount to withdraw (lamports for SOL, smallest unit for SPL).
|
|
141
|
+
* @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
|
|
142
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
143
|
+
* @since v0.1.0
|
|
144
|
+
*/
|
|
145
|
+
async withdraw(agentWallet, amount, splAccounts = []) {
|
|
146
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
147
|
+
const [escrowPda] = this.deriveEscrow(agentPda);
|
|
148
|
+
return this.methods
|
|
149
|
+
.withdrawEscrow(this.bn(amount))
|
|
150
|
+
.accounts({
|
|
151
|
+
depositor: this.walletPubkey,
|
|
152
|
+
escrow: escrowPda,
|
|
153
|
+
systemProgram: SystemProgram.programId,
|
|
154
|
+
})
|
|
155
|
+
.remainingAccounts(splAccounts)
|
|
156
|
+
.rpc();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @name close
|
|
160
|
+
* @description Close an empty escrow PDA (balance must be 0) and reclaim rent.
|
|
161
|
+
* @param agentWallet - The wallet of the agent associated with the escrow.
|
|
162
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
163
|
+
* @since v0.1.0
|
|
164
|
+
*/
|
|
165
|
+
async close(agentWallet) {
|
|
166
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
167
|
+
const [escrowPda] = this.deriveEscrow(agentPda);
|
|
168
|
+
return this.methods
|
|
169
|
+
.closeEscrow()
|
|
170
|
+
.accounts({
|
|
171
|
+
depositor: this.walletPubkey,
|
|
172
|
+
escrow: escrowPda,
|
|
173
|
+
})
|
|
174
|
+
.rpc();
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* @name settleBatch
|
|
178
|
+
* @description Batch settlement — process up to 10 settlements in a single
|
|
179
|
+
* transaction. Must be called by the agent owner wallet.
|
|
180
|
+
* @param depositorWallet - The wallet of the client who funded the escrow.
|
|
181
|
+
* @param settlements - Array of settlement entries (up to 10).
|
|
182
|
+
* @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
|
|
183
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
184
|
+
* @since v0.1.0
|
|
185
|
+
*/
|
|
186
|
+
async settleBatch(depositorWallet, settlements, splAccounts = []) {
|
|
187
|
+
const [agentPda] = deriveAgent(this.walletPubkey);
|
|
188
|
+
const [escrowPda] = deriveEscrow(agentPda, depositorWallet);
|
|
189
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
190
|
+
return this.methods
|
|
191
|
+
.settleBatch(settlements)
|
|
192
|
+
.accounts({
|
|
193
|
+
wallet: this.walletPubkey,
|
|
194
|
+
agent: agentPda,
|
|
195
|
+
agentStats: statsPda,
|
|
196
|
+
escrow: escrowPda,
|
|
197
|
+
systemProgram: SystemProgram.programId,
|
|
198
|
+
})
|
|
199
|
+
.remainingAccounts(splAccounts)
|
|
200
|
+
.rpc();
|
|
201
|
+
}
|
|
202
|
+
// ── Fetchers ─────────────────────────────────────────
|
|
203
|
+
/**
|
|
204
|
+
* @name fetch
|
|
205
|
+
* @description Fetch a deserialized `EscrowAccount`.
|
|
206
|
+
* @param agentPda - The agent account PDA.
|
|
207
|
+
* @param depositor - The depositor wallet. Defaults to the connected wallet.
|
|
208
|
+
* @returns {Promise<EscrowAccountData>} The escrow account data.
|
|
209
|
+
* @throws Will throw if the escrow account does not exist.
|
|
210
|
+
* @since v0.1.0
|
|
211
|
+
*/
|
|
212
|
+
async fetch(agentPda, depositor) {
|
|
213
|
+
const [pda] = this.deriveEscrow(agentPda, depositor);
|
|
214
|
+
return this.fetchAccount("escrowAccount", pda);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @name fetchNullable
|
|
218
|
+
* @description Fetch a deserialized `EscrowAccount`, or `null` if it
|
|
219
|
+
* does not exist on-chain.
|
|
220
|
+
* @param agentPda - The agent account PDA.
|
|
221
|
+
* @param depositor - The depositor wallet. Defaults to the connected wallet.
|
|
222
|
+
* @returns {Promise<EscrowAccountData | null>} The escrow data or `null`.
|
|
223
|
+
* @since v0.1.0
|
|
224
|
+
*/
|
|
225
|
+
async fetchNullable(agentPda, depositor) {
|
|
226
|
+
const [pda] = this.deriveEscrow(agentPda, depositor);
|
|
227
|
+
return this.fetchAccountNullable("escrowAccount", pda);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* @name fetchByPda
|
|
231
|
+
* @description Fetch an escrow account by its PDA address directly,
|
|
232
|
+
* bypassing PDA derivation.
|
|
233
|
+
* @param escrowPda - The escrow PDA public key.
|
|
234
|
+
* @returns {Promise<EscrowAccountData>} The escrow account data.
|
|
235
|
+
* @throws Will throw if the escrow account does not exist.
|
|
236
|
+
* @since v0.1.0
|
|
237
|
+
*/
|
|
238
|
+
async fetchByPda(escrowPda) {
|
|
239
|
+
return this.fetchAccount("escrowAccount", escrowPda);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=escrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module feedback
|
|
3
|
+
* @description Trustless reputation system — give, update, revoke, and close
|
|
4
|
+
* on-chain feedback entries for agents.
|
|
5
|
+
*
|
|
6
|
+
* Feedback entries are PDA-based reviews tied to an agent and a reviewer wallet,
|
|
7
|
+
* enabling permissionless, verifiable reputation on Solana.
|
|
8
|
+
*
|
|
9
|
+
* @category Modules
|
|
10
|
+
* @since v0.1.0
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { SystemProgram } from "@solana/web3.js";
|
|
14
|
+
import { BaseModule } from "./base";
|
|
15
|
+
import { deriveAgent, deriveFeedback, deriveGlobalRegistry } from "../pda";
|
|
16
|
+
/**
|
|
17
|
+
* @name FeedbackModule
|
|
18
|
+
* @description Manages on-chain feedback entries for the Solana Agent Protocol.
|
|
19
|
+
* Provides methods to give, update, revoke, close, and fetch feedback PDAs
|
|
20
|
+
* that form the trustless reputation layer.
|
|
21
|
+
*
|
|
22
|
+
* @category Modules
|
|
23
|
+
* @since v0.1.0
|
|
24
|
+
* @extends BaseModule
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const sap = new SapClient(provider);
|
|
29
|
+
* const sig = await sap.feedback.give(agentWallet, {
|
|
30
|
+
* score: 5,
|
|
31
|
+
* tag: { quality: {} },
|
|
32
|
+
* commentHash: null,
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class FeedbackModule extends BaseModule {
|
|
37
|
+
// ── PDA helpers ──────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* @name deriveFeedback
|
|
40
|
+
* @description Derive the `FeedbackAccount` PDA for a given agent and reviewer.
|
|
41
|
+
* @param agentPda - The agent account PDA to review.
|
|
42
|
+
* @param reviewer - The reviewer wallet. Defaults to the connected wallet.
|
|
43
|
+
* @returns A tuple of `[PublicKey, bump]` for the feedback PDA.
|
|
44
|
+
* @see {@link deriveFeedback} from `pda/` module for the underlying derivation.
|
|
45
|
+
* @since v0.1.0
|
|
46
|
+
*/
|
|
47
|
+
deriveFeedback(agentPda, reviewer) {
|
|
48
|
+
return deriveFeedback(agentPda, reviewer ?? this.walletPubkey);
|
|
49
|
+
}
|
|
50
|
+
// ── Instructions ─────────────────────────────────────
|
|
51
|
+
/**
|
|
52
|
+
* @name give
|
|
53
|
+
* @description Leave on-chain feedback for an agent. Creates a new
|
|
54
|
+
* `FeedbackAccount` PDA owned by the reviewer.
|
|
55
|
+
* @param agentWallet - The wallet that owns the target agent.
|
|
56
|
+
* @param args - Feedback parameters (score, tag, optional comment hash).
|
|
57
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
58
|
+
* @since v0.1.0
|
|
59
|
+
*/
|
|
60
|
+
async give(agentWallet, args) {
|
|
61
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
62
|
+
const [feedbackPda] = this.deriveFeedback(agentPda);
|
|
63
|
+
const [globalPda] = deriveGlobalRegistry();
|
|
64
|
+
return this.methods
|
|
65
|
+
.giveFeedback(args.score, args.tag, args.commentHash ?? null)
|
|
66
|
+
.accounts({
|
|
67
|
+
reviewer: this.walletPubkey,
|
|
68
|
+
agent: agentPda,
|
|
69
|
+
feedback: feedbackPda,
|
|
70
|
+
globalRegistry: globalPda,
|
|
71
|
+
systemProgram: SystemProgram.programId,
|
|
72
|
+
})
|
|
73
|
+
.rpc();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @name update
|
|
77
|
+
* @description Update an existing feedback entry. Only the original reviewer
|
|
78
|
+
* may update their feedback.
|
|
79
|
+
* @param agentWallet - The wallet that owns the target agent.
|
|
80
|
+
* @param args - Updated feedback parameters (new score, optional new tag, optional comment hash).
|
|
81
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
82
|
+
* @since v0.1.0
|
|
83
|
+
*/
|
|
84
|
+
async update(agentWallet, args) {
|
|
85
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
86
|
+
const [feedbackPda] = this.deriveFeedback(agentPda);
|
|
87
|
+
return this.methods
|
|
88
|
+
.updateFeedback(args.newScore, args.newTag ?? null, args.commentHash ?? null)
|
|
89
|
+
.accounts({
|
|
90
|
+
reviewer: this.walletPubkey,
|
|
91
|
+
agent: agentPda,
|
|
92
|
+
feedback: feedbackPda,
|
|
93
|
+
})
|
|
94
|
+
.rpc();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @name revoke
|
|
98
|
+
* @description Revoke a feedback entry, marking it as revoked and excluding
|
|
99
|
+
* it from reputation calculations.
|
|
100
|
+
* @param agentWallet - The wallet that owns the target agent.
|
|
101
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
102
|
+
* @since v0.1.0
|
|
103
|
+
*/
|
|
104
|
+
async revoke(agentWallet) {
|
|
105
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
106
|
+
const [feedbackPda] = this.deriveFeedback(agentPda);
|
|
107
|
+
return this.methods
|
|
108
|
+
.revokeFeedback()
|
|
109
|
+
.accounts({
|
|
110
|
+
reviewer: this.walletPubkey,
|
|
111
|
+
agent: agentPda,
|
|
112
|
+
feedback: feedbackPda,
|
|
113
|
+
})
|
|
114
|
+
.rpc();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @name close
|
|
118
|
+
* @description Close a revoked feedback PDA and reclaim rent to the reviewer.
|
|
119
|
+
* @param agentWallet - The wallet that owns the target agent.
|
|
120
|
+
* @returns {Promise<TransactionSignature>} The transaction signature.
|
|
121
|
+
* @since v0.1.0
|
|
122
|
+
*/
|
|
123
|
+
async close(agentWallet) {
|
|
124
|
+
const [agentPda] = deriveAgent(agentWallet);
|
|
125
|
+
const [feedbackPda] = this.deriveFeedback(agentPda);
|
|
126
|
+
return this.methods
|
|
127
|
+
.closeFeedback()
|
|
128
|
+
.accounts({
|
|
129
|
+
reviewer: this.walletPubkey,
|
|
130
|
+
feedback: feedbackPda,
|
|
131
|
+
})
|
|
132
|
+
.rpc();
|
|
133
|
+
}
|
|
134
|
+
// ── Fetchers ─────────────────────────────────────────
|
|
135
|
+
/**
|
|
136
|
+
* @name fetch
|
|
137
|
+
* @description Fetch a deserialized `FeedbackAccount`.
|
|
138
|
+
* @param agentPda - The agent account PDA.
|
|
139
|
+
* @param reviewer - The reviewer wallet. Defaults to the connected wallet.
|
|
140
|
+
* @returns {Promise<FeedbackAccountData>} The feedback account data.
|
|
141
|
+
* @throws Will throw if the feedback account does not exist.
|
|
142
|
+
* @since v0.1.0
|
|
143
|
+
*/
|
|
144
|
+
async fetch(agentPda, reviewer) {
|
|
145
|
+
const [pda] = this.deriveFeedback(agentPda, reviewer);
|
|
146
|
+
return this.fetchAccount("feedbackAccount", pda);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @name fetchNullable
|
|
150
|
+
* @description Fetch a deserialized `FeedbackAccount`, or `null` if it
|
|
151
|
+
* does not exist on-chain.
|
|
152
|
+
* @param agentPda - The agent account PDA.
|
|
153
|
+
* @param reviewer - The reviewer wallet. Defaults to the connected wallet.
|
|
154
|
+
* @returns {Promise<FeedbackAccountData | null>} The feedback data or `null`.
|
|
155
|
+
* @since v0.1.0
|
|
156
|
+
*/
|
|
157
|
+
async fetchNullable(agentPda, reviewer) {
|
|
158
|
+
const [pda] = this.deriveFeedback(agentPda, reviewer);
|
|
159
|
+
return this.fetchAccountNullable("feedbackAccount", pda);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../../src/modules/feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module modules
|
|
3
|
+
* @description Barrel export for all domain modules of the `@synapse-sap/sdk`.
|
|
4
|
+
*
|
|
5
|
+
* Re-exports every module class so consumers can import from a single entry point:
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { AgentModule, VaultModule } from "@synapse-sap/sdk/modules";
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* @category Modules
|
|
11
|
+
* @since v0.1.0
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
export { AgentModule } from "./agent";
|
|
15
|
+
export { FeedbackModule } from "./feedback";
|
|
16
|
+
export { IndexingModule } from "./indexing";
|
|
17
|
+
export { ToolsModule } from "./tools";
|
|
18
|
+
export { VaultModule } from "./vault";
|
|
19
|
+
export { EscrowModule } from "./escrow";
|
|
20
|
+
export { AttestationModule } from "./attestation";
|
|
21
|
+
export { LedgerModule } from "./ledger";
|
|
22
|
+
export { BaseModule } from "./base";
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|