@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.
Files changed (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +882 -0
  3. package/dist/cjs/constants/index.js +43 -0
  4. package/dist/cjs/constants/index.js.map +1 -0
  5. package/dist/cjs/constants/limits.js +161 -0
  6. package/dist/cjs/constants/limits.js.map +1 -0
  7. package/dist/cjs/constants/programs.js +78 -0
  8. package/dist/cjs/constants/programs.js.map +1 -0
  9. package/dist/cjs/constants/seeds.js +57 -0
  10. package/dist/cjs/constants/seeds.js.map +1 -0
  11. package/dist/cjs/core/client.js +391 -0
  12. package/dist/cjs/core/client.js.map +1 -0
  13. package/dist/cjs/core/connection.js +319 -0
  14. package/dist/cjs/core/connection.js.map +1 -0
  15. package/dist/cjs/core/index.js +24 -0
  16. package/dist/cjs/core/index.js.map +1 -0
  17. package/dist/cjs/errors/index.js +334 -0
  18. package/dist/cjs/errors/index.js.map +1 -0
  19. package/dist/cjs/events/index.js +136 -0
  20. package/dist/cjs/events/index.js.map +1 -0
  21. package/dist/cjs/idl/index.js +63 -0
  22. package/dist/cjs/idl/index.js.map +1 -0
  23. package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
  24. package/dist/cjs/index.js +147 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/modules/agent.js +272 -0
  27. package/dist/cjs/modules/agent.js.map +1 -0
  28. package/dist/cjs/modules/attestation.js +147 -0
  29. package/dist/cjs/modules/attestation.js.map +1 -0
  30. package/dist/cjs/modules/base.js +128 -0
  31. package/dist/cjs/modules/base.js.map +1 -0
  32. package/dist/cjs/modules/escrow.js +246 -0
  33. package/dist/cjs/modules/escrow.js.map +1 -0
  34. package/dist/cjs/modules/feedback.js +166 -0
  35. package/dist/cjs/modules/feedback.js.map +1 -0
  36. package/dist/cjs/modules/index.js +35 -0
  37. package/dist/cjs/modules/index.js.map +1 -0
  38. package/dist/cjs/modules/indexing.js +375 -0
  39. package/dist/cjs/modules/indexing.js.map +1 -0
  40. package/dist/cjs/modules/ledger.js +234 -0
  41. package/dist/cjs/modules/ledger.js.map +1 -0
  42. package/dist/cjs/modules/tools.js +319 -0
  43. package/dist/cjs/modules/tools.js.map +1 -0
  44. package/dist/cjs/modules/vault.js +410 -0
  45. package/dist/cjs/modules/vault.js.map +1 -0
  46. package/dist/cjs/pda/index.js +377 -0
  47. package/dist/cjs/pda/index.js.map +1 -0
  48. package/dist/cjs/plugin/index.js +934 -0
  49. package/dist/cjs/plugin/index.js.map +1 -0
  50. package/dist/cjs/plugin/protocols.js +282 -0
  51. package/dist/cjs/plugin/protocols.js.map +1 -0
  52. package/dist/cjs/plugin/schemas.js +831 -0
  53. package/dist/cjs/plugin/schemas.js.map +1 -0
  54. package/dist/cjs/postgres/adapter.js +715 -0
  55. package/dist/cjs/postgres/adapter.js.map +1 -0
  56. package/dist/cjs/postgres/index.js +50 -0
  57. package/dist/cjs/postgres/index.js.map +1 -0
  58. package/dist/cjs/postgres/serializers.js +381 -0
  59. package/dist/cjs/postgres/serializers.js.map +1 -0
  60. package/dist/cjs/postgres/sync.js +221 -0
  61. package/dist/cjs/postgres/sync.js.map +1 -0
  62. package/dist/cjs/postgres/types.js +44 -0
  63. package/dist/cjs/postgres/types.js.map +1 -0
  64. package/dist/cjs/registries/builder.js +414 -0
  65. package/dist/cjs/registries/builder.js.map +1 -0
  66. package/dist/cjs/registries/discovery.js +362 -0
  67. package/dist/cjs/registries/discovery.js.map +1 -0
  68. package/dist/cjs/registries/index.js +51 -0
  69. package/dist/cjs/registries/index.js.map +1 -0
  70. package/dist/cjs/registries/session.js +433 -0
  71. package/dist/cjs/registries/session.js.map +1 -0
  72. package/dist/cjs/registries/x402.js +577 -0
  73. package/dist/cjs/registries/x402.js.map +1 -0
  74. package/dist/cjs/types/accounts.js +13 -0
  75. package/dist/cjs/types/accounts.js.map +1 -0
  76. package/dist/cjs/types/common.js +13 -0
  77. package/dist/cjs/types/common.js.map +1 -0
  78. package/dist/cjs/types/enums.js +174 -0
  79. package/dist/cjs/types/enums.js.map +1 -0
  80. package/dist/cjs/types/index.js +36 -0
  81. package/dist/cjs/types/index.js.map +1 -0
  82. package/dist/cjs/types/instructions.js +92 -0
  83. package/dist/cjs/types/instructions.js.map +1 -0
  84. package/dist/cjs/utils/hash.js +58 -0
  85. package/dist/cjs/utils/hash.js.map +1 -0
  86. package/dist/cjs/utils/index.js +27 -0
  87. package/dist/cjs/utils/index.js.map +1 -0
  88. package/dist/cjs/utils/serialization.js +105 -0
  89. package/dist/cjs/utils/serialization.js.map +1 -0
  90. package/dist/cjs/utils/validation.js +36 -0
  91. package/dist/cjs/utils/validation.js.map +1 -0
  92. package/dist/esm/constants/index.js +29 -0
  93. package/dist/esm/constants/index.js.map +1 -0
  94. package/dist/esm/constants/limits.js +158 -0
  95. package/dist/esm/constants/limits.js.map +1 -0
  96. package/dist/esm/constants/programs.js +75 -0
  97. package/dist/esm/constants/programs.js.map +1 -0
  98. package/dist/esm/constants/seeds.js +54 -0
  99. package/dist/esm/constants/seeds.js.map +1 -0
  100. package/dist/esm/core/client.js +384 -0
  101. package/dist/esm/core/client.js.map +1 -0
  102. package/dist/esm/core/connection.js +315 -0
  103. package/dist/esm/core/connection.js.map +1 -0
  104. package/dist/esm/core/index.js +19 -0
  105. package/dist/esm/core/index.js.map +1 -0
  106. package/dist/esm/errors/index.js +325 -0
  107. package/dist/esm/errors/index.js.map +1 -0
  108. package/dist/esm/events/index.js +132 -0
  109. package/dist/esm/events/index.js.map +1 -0
  110. package/dist/esm/idl/index.js +57 -0
  111. package/dist/esm/idl/index.js.map +1 -0
  112. package/dist/esm/idl/synapse_agent_sap.json +9710 -0
  113. package/dist/esm/index.js +70 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/modules/agent.js +268 -0
  116. package/dist/esm/modules/agent.js.map +1 -0
  117. package/dist/esm/modules/attestation.js +143 -0
  118. package/dist/esm/modules/attestation.js.map +1 -0
  119. package/dist/esm/modules/base.js +124 -0
  120. package/dist/esm/modules/base.js.map +1 -0
  121. package/dist/esm/modules/escrow.js +242 -0
  122. package/dist/esm/modules/escrow.js.map +1 -0
  123. package/dist/esm/modules/feedback.js +162 -0
  124. package/dist/esm/modules/feedback.js.map +1 -0
  125. package/dist/esm/modules/index.js +23 -0
  126. package/dist/esm/modules/index.js.map +1 -0
  127. package/dist/esm/modules/indexing.js +371 -0
  128. package/dist/esm/modules/indexing.js.map +1 -0
  129. package/dist/esm/modules/ledger.js +230 -0
  130. package/dist/esm/modules/ledger.js.map +1 -0
  131. package/dist/esm/modules/tools.js +315 -0
  132. package/dist/esm/modules/tools.js.map +1 -0
  133. package/dist/esm/modules/vault.js +406 -0
  134. package/dist/esm/modules/vault.js.map +1 -0
  135. package/dist/esm/pda/index.js +357 -0
  136. package/dist/esm/pda/index.js.map +1 -0
  137. package/dist/esm/plugin/index.js +927 -0
  138. package/dist/esm/plugin/index.js.map +1 -0
  139. package/dist/esm/plugin/protocols.js +279 -0
  140. package/dist/esm/plugin/protocols.js.map +1 -0
  141. package/dist/esm/plugin/schemas.js +828 -0
  142. package/dist/esm/plugin/schemas.js.map +1 -0
  143. package/dist/esm/postgres/adapter.js +678 -0
  144. package/dist/esm/postgres/adapter.js.map +1 -0
  145. package/dist/esm/postgres/index.js +27 -0
  146. package/dist/esm/postgres/index.js.map +1 -0
  147. package/dist/esm/postgres/serializers.js +362 -0
  148. package/dist/esm/postgres/serializers.js.map +1 -0
  149. package/dist/esm/postgres/sync.js +217 -0
  150. package/dist/esm/postgres/sync.js.map +1 -0
  151. package/dist/esm/postgres/types.js +41 -0
  152. package/dist/esm/postgres/types.js.map +1 -0
  153. package/dist/esm/registries/builder.js +410 -0
  154. package/dist/esm/registries/builder.js.map +1 -0
  155. package/dist/esm/registries/discovery.js +358 -0
  156. package/dist/esm/registries/discovery.js.map +1 -0
  157. package/dist/esm/registries/index.js +44 -0
  158. package/dist/esm/registries/index.js.map +1 -0
  159. package/dist/esm/registries/session.js +429 -0
  160. package/dist/esm/registries/session.js.map +1 -0
  161. package/dist/esm/registries/x402.js +573 -0
  162. package/dist/esm/registries/x402.js.map +1 -0
  163. package/dist/esm/types/accounts.js +12 -0
  164. package/dist/esm/types/accounts.js.map +1 -0
  165. package/dist/esm/types/common.js +12 -0
  166. package/dist/esm/types/common.js.map +1 -0
  167. package/dist/esm/types/enums.js +171 -0
  168. package/dist/esm/types/enums.js.map +1 -0
  169. package/dist/esm/types/index.js +25 -0
  170. package/dist/esm/types/index.js.map +1 -0
  171. package/dist/esm/types/instructions.js +89 -0
  172. package/dist/esm/types/instructions.js.map +1 -0
  173. package/dist/esm/utils/hash.js +53 -0
  174. package/dist/esm/utils/hash.js.map +1 -0
  175. package/dist/esm/utils/index.js +19 -0
  176. package/dist/esm/utils/index.js.map +1 -0
  177. package/dist/esm/utils/serialization.js +98 -0
  178. package/dist/esm/utils/serialization.js.map +1 -0
  179. package/dist/esm/utils/validation.js +33 -0
  180. package/dist/esm/utils/validation.js.map +1 -0
  181. package/dist/types/constants/index.d.ts +27 -0
  182. package/dist/types/constants/index.d.ts.map +1 -0
  183. package/dist/types/constants/limits.d.ts +149 -0
  184. package/dist/types/constants/limits.d.ts.map +1 -0
  185. package/dist/types/constants/programs.d.ts +69 -0
  186. package/dist/types/constants/programs.d.ts.map +1 -0
  187. package/dist/types/constants/seeds.d.ts +61 -0
  188. package/dist/types/constants/seeds.d.ts.map +1 -0
  189. package/dist/types/core/client.d.ts +323 -0
  190. package/dist/types/core/client.d.ts.map +1 -0
  191. package/dist/types/core/connection.d.ts +279 -0
  192. package/dist/types/core/connection.d.ts.map +1 -0
  193. package/dist/types/core/index.d.ts +20 -0
  194. package/dist/types/core/index.d.ts.map +1 -0
  195. package/dist/types/errors/index.d.ts +276 -0
  196. package/dist/types/errors/index.d.ts.map +1 -0
  197. package/dist/types/events/index.d.ts +248 -0
  198. package/dist/types/events/index.d.ts.map +1 -0
  199. package/dist/types/idl/index.d.ts +70 -0
  200. package/dist/types/idl/index.d.ts.map +1 -0
  201. package/dist/types/index.d.ts +68 -0
  202. package/dist/types/index.d.ts.map +1 -0
  203. package/dist/types/modules/agent.d.ts +166 -0
  204. package/dist/types/modules/agent.d.ts.map +1 -0
  205. package/dist/types/modules/attestation.d.ts +96 -0
  206. package/dist/types/modules/attestation.d.ts.map +1 -0
  207. package/dist/types/modules/base.d.ts +126 -0
  208. package/dist/types/modules/base.d.ts.map +1 -0
  209. package/dist/types/modules/escrow.d.ts +151 -0
  210. package/dist/types/modules/escrow.d.ts.map +1 -0
  211. package/dist/types/modules/feedback.d.ts +105 -0
  212. package/dist/types/modules/feedback.d.ts.map +1 -0
  213. package/dist/types/modules/index.d.ts +24 -0
  214. package/dist/types/modules/index.d.ts.map +1 -0
  215. package/dist/types/modules/indexing.d.ts +200 -0
  216. package/dist/types/modules/indexing.d.ts.map +1 -0
  217. package/dist/types/modules/ledger.d.ts +150 -0
  218. package/dist/types/modules/ledger.d.ts.map +1 -0
  219. package/dist/types/modules/tools.d.ts +182 -0
  220. package/dist/types/modules/tools.d.ts.map +1 -0
  221. package/dist/types/modules/vault.d.ts +240 -0
  222. package/dist/types/modules/vault.d.ts.map +1 -0
  223. package/dist/types/pda/index.d.ts +296 -0
  224. package/dist/types/pda/index.d.ts.map +1 -0
  225. package/dist/types/plugin/index.d.ts +171 -0
  226. package/dist/types/plugin/index.d.ts.map +1 -0
  227. package/dist/types/plugin/protocols.d.ts +152 -0
  228. package/dist/types/plugin/protocols.d.ts.map +1 -0
  229. package/dist/types/plugin/schemas.d.ts +823 -0
  230. package/dist/types/plugin/schemas.d.ts.map +1 -0
  231. package/dist/types/postgres/adapter.d.ts +355 -0
  232. package/dist/types/postgres/adapter.d.ts.map +1 -0
  233. package/dist/types/postgres/index.d.ts +24 -0
  234. package/dist/types/postgres/index.d.ts.map +1 -0
  235. package/dist/types/postgres/serializers.d.ts +30 -0
  236. package/dist/types/postgres/serializers.d.ts.map +1 -0
  237. package/dist/types/postgres/sync.d.ts +132 -0
  238. package/dist/types/postgres/sync.d.ts.map +1 -0
  239. package/dist/types/postgres/types.d.ts +167 -0
  240. package/dist/types/postgres/types.d.ts.map +1 -0
  241. package/dist/types/registries/builder.d.ts +340 -0
  242. package/dist/types/registries/builder.d.ts.map +1 -0
  243. package/dist/types/registries/discovery.d.ts +333 -0
  244. package/dist/types/registries/discovery.d.ts.map +1 -0
  245. package/dist/types/registries/index.d.ts +48 -0
  246. package/dist/types/registries/index.d.ts.map +1 -0
  247. package/dist/types/registries/session.d.ts +323 -0
  248. package/dist/types/registries/session.d.ts.map +1 -0
  249. package/dist/types/registries/x402.d.ts +463 -0
  250. package/dist/types/registries/x402.d.ts.map +1 -0
  251. package/dist/types/types/accounts.d.ts +565 -0
  252. package/dist/types/types/accounts.d.ts.map +1 -0
  253. package/dist/types/types/common.d.ts +166 -0
  254. package/dist/types/types/common.d.ts.map +1 -0
  255. package/dist/types/types/enums.d.ts +238 -0
  256. package/dist/types/types/enums.d.ts.map +1 -0
  257. package/dist/types/types/index.d.ts +28 -0
  258. package/dist/types/types/index.d.ts.map +1 -0
  259. package/dist/types/types/instructions.d.ts +366 -0
  260. package/dist/types/types/instructions.d.ts.map +1 -0
  261. package/dist/types/utils/hash.d.ts +48 -0
  262. package/dist/types/utils/hash.d.ts.map +1 -0
  263. package/dist/types/utils/index.d.ts +19 -0
  264. package/dist/types/utils/index.d.ts.map +1 -0
  265. package/dist/types/utils/serialization.d.ts +69 -0
  266. package/dist/types/utils/serialization.d.ts.map +1 -0
  267. package/dist/types/utils/validation.d.ts +29 -0
  268. package/dist/types/utils/validation.d.ts.map +1 -0
  269. package/package.json +178 -0
  270. package/src/constants/index.ts +44 -0
  271. package/src/constants/limits.ts +165 -0
  272. package/src/constants/programs.ts +83 -0
  273. package/src/constants/seeds.ts +66 -0
  274. package/src/core/client.ts +416 -0
  275. package/src/core/connection.ts +409 -0
  276. package/src/core/index.ts +20 -0
  277. package/src/errors/index.ts +346 -0
  278. package/src/events/index.ts +335 -0
  279. package/src/idl/index.ts +76 -0
  280. package/src/idl/synapse_agent_sap.json +9710 -0
  281. package/src/index.ts +253 -0
  282. package/src/modules/agent.ts +319 -0
  283. package/src/modules/attestation.ts +168 -0
  284. package/src/modules/base.ts +158 -0
  285. package/src/modules/escrow.ts +308 -0
  286. package/src/modules/feedback.ts +186 -0
  287. package/src/modules/index.ts +24 -0
  288. package/src/modules/indexing.ts +444 -0
  289. package/src/modules/ledger.ts +262 -0
  290. package/src/modules/tools.ts +411 -0
  291. package/src/modules/vault.ts +533 -0
  292. package/src/pda/index.ts +512 -0
  293. package/src/plugin/index.ts +1202 -0
  294. package/src/plugin/protocols.ts +404 -0
  295. package/src/plugin/schemas.ts +909 -0
  296. package/src/postgres/adapter.ts +904 -0
  297. package/src/postgres/index.ts +59 -0
  298. package/src/postgres/schema.sql +683 -0
  299. package/src/postgres/serializers.ts +485 -0
  300. package/src/postgres/sync.ts +254 -0
  301. package/src/postgres/types.ts +245 -0
  302. package/src/registries/builder.ts +607 -0
  303. package/src/registries/discovery.ts +572 -0
  304. package/src/registries/index.ts +77 -0
  305. package/src/registries/session.ts +613 -0
  306. package/src/registries/x402.ts +906 -0
  307. package/src/types/accounts.ts +618 -0
  308. package/src/types/common.ts +187 -0
  309. package/src/types/enums.ts +214 -0
  310. package/src/types/index.ts +92 -0
  311. package/src/types/instructions.ts +413 -0
  312. package/src/utils/hash.ts +57 -0
  313. package/src/utils/index.ts +19 -0
  314. package/src/utils/serialization.ts +98 -0
  315. package/src/utils/validation.ts +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * @module core/connection
3
+ * @description RPC connection factory for SAP v2 SDK.
4
+ *
5
+ * Provides a high-level, synapse-client-sdk–compatible entry point
6
+ * for creating {@link SapClient} instances from an RPC URL and wallet.
7
+ *
8
+ * @category Core
9
+ * @since v0.1.0
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { SapConnection } from "@synapse-sap/sdk";
14
+ *
15
+ * // Quick start — RPC URL + Keypair
16
+ * const sap = SapConnection.fromKeypair("https://api.devnet.solana.com", keypair);
17
+ * const agent = await sap.client.agent.fetch();
18
+ *
19
+ * // Or build step-by-step
20
+ * const conn = new SapConnection({
21
+ * rpcUrl: "https://us-1-mainnet.oobeprotocol.ai/rpc?api_key=xxx",
22
+ * cluster: "mainnet-beta",
23
+ * commitment: "confirmed",
24
+ * });
25
+ * const client = conn.createClient(wallet);
26
+ * ```
27
+ */
28
+ import { Connection, LAMPORTS_PER_SOL, } from "@solana/web3.js";
29
+ import { AnchorProvider, Wallet } from "@coral-xyz/anchor";
30
+ import { SAP_PROGRAM_ID, MAINNET_SAP_PROGRAM_ID, DEVNET_SAP_PROGRAM_ID, LOCALNET_SAP_PROGRAM_ID, } from "../constants";
31
+ import { SapClient } from "./client";
32
+ // ═══════════════════════════════════════════════════════════════════
33
+ // Implementation
34
+ // ═══════════════════════════════════════════════════════════════════
35
+ /**
36
+ * @name SapConnection
37
+ * @description Lightweight RPC connection wrapper that creates
38
+ * properly-configured {@link SapClient} instances.
39
+ *
40
+ * Compatible with the `synapse-client-sdk` connection model:
41
+ * start from an RPC URL, attach a wallet, get a typed client.
42
+ *
43
+ * @category Core
44
+ * @since v0.1.0
45
+ * @see {@link SapClient}
46
+ * @see {@link SapConnectionConfig}
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * // Factory shortcut for devnet
51
+ * const conn = SapConnection.devnet();
52
+ * const client = conn.createClient(wallet);
53
+ *
54
+ * // One-liner with Keypair
55
+ * const { client } = SapConnection.fromKeypair(
56
+ * "https://api.devnet.solana.com",
57
+ * keypair,
58
+ * );
59
+ * ```
60
+ */
61
+ export class SapConnection {
62
+ /**
63
+ * @readonly
64
+ * @description Raw Solana {@link Connection}. Exposed for advanced
65
+ * use-cases that need direct RPC access.
66
+ */
67
+ connection;
68
+ /**
69
+ * @readonly
70
+ * @description The resolved Solana cluster for this connection,
71
+ * either explicitly provided or auto-detected from the RPC URL.
72
+ */
73
+ cluster;
74
+ /**
75
+ * @readonly
76
+ * @description Commitment level used for all queries and
77
+ * transaction confirmations on this connection.
78
+ */
79
+ commitment;
80
+ /**
81
+ * @readonly
82
+ * @description The SAP on-chain program {@link PublicKey} resolved
83
+ * for the current {@link cluster}.
84
+ * @see {@link SapConnection.programIdForCluster}
85
+ */
86
+ programId;
87
+ constructor(config) {
88
+ this.commitment = config.commitment ?? "confirmed";
89
+ this.cluster = config.cluster ?? SapConnection.detectCluster(config.rpcUrl);
90
+ this.programId = SapConnection.programIdForCluster(this.cluster);
91
+ this.connection = new Connection(config.rpcUrl, {
92
+ commitment: this.commitment,
93
+ wsEndpoint: config.wsUrl,
94
+ });
95
+ }
96
+ // ─────────────────────────────────────────────
97
+ // Factory helpers
98
+ // ─────────────────────────────────────────────
99
+ /**
100
+ * Create a {@link SapConnection} for **devnet** with sensible defaults.
101
+ *
102
+ * @static
103
+ * @param {Commitment} [commitment="confirmed"] — Commitment level.
104
+ * @returns {SapConnection} A connection targeting Solana devnet.
105
+ * @since v0.1.0
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * const conn = SapConnection.devnet();
110
+ * ```
111
+ */
112
+ static devnet(commitment = "confirmed") {
113
+ return new SapConnection({
114
+ rpcUrl: "https://api.devnet.solana.com",
115
+ cluster: "devnet",
116
+ commitment,
117
+ });
118
+ }
119
+ /**
120
+ * Create a {@link SapConnection} for **mainnet-beta** with sensible defaults.
121
+ *
122
+ * @static
123
+ * @param {string} [rpcUrl="https://api.mainnet-beta.solana.com"] — Custom RPC URL.
124
+ * @param {Commitment} [commitment="confirmed"] — Commitment level.
125
+ * @returns {SapConnection} A connection targeting Solana mainnet-beta.
126
+ * @since v0.1.0
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * const conn = SapConnection.mainnet("https://my-rpc.example.com");
131
+ * ```
132
+ */
133
+ static mainnet(rpcUrl = "https://api.mainnet-beta.solana.com", commitment = "confirmed") {
134
+ return new SapConnection({ rpcUrl, cluster: "mainnet-beta", commitment });
135
+ }
136
+ /**
137
+ * Create a {@link SapConnection} for **localnet** (`localhost:8899`).
138
+ *
139
+ * @static
140
+ * @param {Commitment} [commitment="confirmed"] — Commitment level.
141
+ * @returns {SapConnection} A connection targeting a local validator.
142
+ * @since v0.1.0
143
+ *
144
+ * @example
145
+ * ```ts
146
+ * const conn = SapConnection.localnet();
147
+ * ```
148
+ */
149
+ static localnet(commitment = "confirmed") {
150
+ return new SapConnection({
151
+ rpcUrl: "http://localhost:8899",
152
+ cluster: "localnet",
153
+ commitment,
154
+ });
155
+ }
156
+ /**
157
+ * One-liner: create a {@link SapConnection} + {@link SapClient} from
158
+ * an RPC URL and a `Keypair`. Perfect for scripts and CLI tools.
159
+ *
160
+ * @static
161
+ * @param {string} rpcUrl — Solana JSON-RPC endpoint.
162
+ * @param {Keypair} keypair — Signer keypair.
163
+ * @param {object} [opts] — Optional overrides.
164
+ * @param {Commitment} [opts.commitment] — Commitment level.
165
+ * @param {SapCluster} [opts.cluster] — Explicit cluster hint.
166
+ * @returns {SapConnection & { readonly client: SapClient }} Connection with an attached client.
167
+ * @since v0.1.0
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * const { client, connection } = SapConnection.fromKeypair(
172
+ * "https://api.devnet.solana.com",
173
+ * Keypair.generate(),
174
+ * );
175
+ * ```
176
+ */
177
+ static fromKeypair(rpcUrl, keypair, opts) {
178
+ const conn = new SapConnection({
179
+ rpcUrl,
180
+ commitment: opts?.commitment,
181
+ cluster: opts?.cluster,
182
+ });
183
+ const client = conn.createClient(new Wallet(keypair));
184
+ return Object.assign(conn, { client });
185
+ }
186
+ // ─────────────────────────────────────────────
187
+ // Client creation
188
+ // ─────────────────────────────────────────────
189
+ /**
190
+ * Create a {@link SapClient} from an Anchor {@link Wallet} (signer).
191
+ *
192
+ * @param {Wallet} wallet — An Anchor-compatible wallet/signer.
193
+ * @returns {SapClient} A fully-configured SAP client.
194
+ * @since v0.1.0
195
+ *
196
+ * @example
197
+ * ```ts
198
+ * const client = conn.createClient(new Wallet(keypair));
199
+ * ```
200
+ */
201
+ createClient(wallet) {
202
+ const provider = new AnchorProvider(this.connection, wallet, {
203
+ commitment: this.commitment,
204
+ });
205
+ return SapClient.from(provider, this.programId);
206
+ }
207
+ /**
208
+ * Create a {@link SapClient} from a raw {@link Keypair}.
209
+ *
210
+ * @param {Keypair} keypair — The signer keypair.
211
+ * @returns {SapClient} A fully-configured SAP client.
212
+ * @since v0.1.0
213
+ *
214
+ * @example
215
+ * ```ts
216
+ * const client = conn.fromKeypair(Keypair.generate());
217
+ * ```
218
+ */
219
+ fromKeypair(keypair) {
220
+ return this.createClient(new Wallet(keypair));
221
+ }
222
+ // ─────────────────────────────────────────────
223
+ // Utility methods
224
+ // ─────────────────────────────────────────────
225
+ /**
226
+ * Request an airdrop (devnet / localnet only).
227
+ *
228
+ * @param {PublicKey} to — Recipient public key.
229
+ * @param {number} solAmount — Amount of SOL to airdrop.
230
+ * @returns {Promise<string>} The confirmed transaction signature.
231
+ * @throws {Error} If the airdrop request or confirmation fails (e.g. on mainnet).
232
+ * @since v0.1.0
233
+ *
234
+ * @example
235
+ * ```ts
236
+ * const sig = await conn.airdrop(wallet.publicKey, 2);
237
+ * ```
238
+ */
239
+ async airdrop(to, solAmount) {
240
+ const sig = await this.connection.requestAirdrop(to, solAmount * LAMPORTS_PER_SOL);
241
+ await this.connection.confirmTransaction(sig, this.commitment);
242
+ return sig;
243
+ }
244
+ /**
245
+ * Get the SOL balance of an address in **lamports**.
246
+ *
247
+ * @param {PublicKey} address — The account to query.
248
+ * @returns {Promise<number>} Balance in lamports.
249
+ * @since v0.1.0
250
+ */
251
+ async getBalance(address) {
252
+ return this.connection.getBalance(address, this.commitment);
253
+ }
254
+ /**
255
+ * Get the SOL balance of an address in **SOL** (human-readable).
256
+ *
257
+ * @param {PublicKey} address — The account to query.
258
+ * @returns {Promise<number>} Balance in SOL.
259
+ * @since v0.1.0
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * const sol = await conn.getBalanceSol(wallet.publicKey);
264
+ * console.log(`Balance: ${sol} SOL`);
265
+ * ```
266
+ */
267
+ async getBalanceSol(address) {
268
+ const lamports = await this.getBalance(address);
269
+ return lamports / LAMPORTS_PER_SOL;
270
+ }
271
+ // ─────────────────────────────────────────────
272
+ // Internal helpers
273
+ // ─────────────────────────────────────────────
274
+ /**
275
+ * Infer the {@link SapCluster} from an RPC URL by inspecting
276
+ * well-known substrings (`devnet`, `localhost`, `:8899`).
277
+ *
278
+ * @static
279
+ * @param {string} rpcUrl — The RPC endpoint to inspect.
280
+ * @returns {SapCluster} The detected cluster, defaulting to `"mainnet-beta"`.
281
+ * @since v0.1.0
282
+ */
283
+ static detectCluster(rpcUrl) {
284
+ const lower = rpcUrl.toLowerCase();
285
+ if (lower.includes("devnet"))
286
+ return "devnet";
287
+ if (lower.includes("localhost") ||
288
+ lower.includes("127.0.0.1") ||
289
+ lower.includes(":8899"))
290
+ return "localnet";
291
+ return "mainnet-beta";
292
+ }
293
+ /**
294
+ * Map a {@link SapCluster} to the canonical SAP on-chain program ID.
295
+ *
296
+ * @static
297
+ * @param {SapCluster} cluster — Target cluster.
298
+ * @returns {PublicKey} The program {@link PublicKey} for the given cluster.
299
+ * @since v0.1.0
300
+ * @see {@link SAP_PROGRAM_ID}
301
+ */
302
+ static programIdForCluster(cluster) {
303
+ switch (cluster) {
304
+ case "mainnet-beta":
305
+ return MAINNET_SAP_PROGRAM_ID;
306
+ case "devnet":
307
+ return DEVNET_SAP_PROGRAM_ID;
308
+ case "localnet":
309
+ return LOCALNET_SAP_PROGRAM_ID;
310
+ default:
311
+ return SAP_PROGRAM_ID;
312
+ }
313
+ }
314
+ }
315
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/core/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module core
3
+ * @description Core infrastructure — client creation and RPC connection.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { SapClient, SapConnection } from "@synapse-sap/sdk";
8
+ *
9
+ * // From Anchor provider
10
+ * const client = SapClient.from(provider);
11
+ *
12
+ * // From RPC URL + keypair (synapse-client-sdk compatible)
13
+ * const conn = SapConnection.devnet();
14
+ * const client2 = conn.fromKeypair(keypair);
15
+ * ```
16
+ */
17
+ export { SapClient } from "./client";
18
+ export { SapConnection } from "./connection";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * @module errors
3
+ * @description Typed error classes for the SAP v2 SDK.
4
+ *
5
+ * All SDK errors extend {@link SapError} to allow catch-all handling,
6
+ * while concrete subclasses enable fine-grained error matching.
7
+ *
8
+ * @category Errors
9
+ * @since v0.1.0
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { SapError, SapRpcError, SapAccountNotFoundError } from "@synapse-sap/sdk/errors";
14
+ *
15
+ * try {
16
+ * const agent = await client.agent.fetch();
17
+ * } catch (err) {
18
+ * if (err instanceof SapAccountNotFoundError) {
19
+ * console.log("Agent not registered yet");
20
+ * } else if (err instanceof SapRpcError) {
21
+ * console.error("RPC failure:", err.rpcCode);
22
+ * } else if (err instanceof SapError) {
23
+ * console.error("SAP error:", err.message);
24
+ * }
25
+ * }
26
+ * ```
27
+ *
28
+ * @see {@link SapError}
29
+ * @see {@link SapValidationError}
30
+ * @see {@link SapRpcError}
31
+ * @see {@link SapAccountNotFoundError}
32
+ * @see {@link SapTimeoutError}
33
+ * @see {@link SapPermissionError}
34
+ */
35
+ // ═══════════════════════════════════════════════════════════════════
36
+ // Base Error
37
+ // ═══════════════════════════════════════════════════════════════════
38
+ /**
39
+ * @name SapError
40
+ * @description Base class for all SAP SDK errors.
41
+ *
42
+ * Extends `Error` and sets `name` automatically so `instanceof`
43
+ * checks work correctly in both CJS and ESM environments.
44
+ *
45
+ * @category Errors
46
+ * @since v0.1.0
47
+ * @extends {Error}
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * try {
52
+ * await client.agent.fetch();
53
+ * } catch (err) {
54
+ * if (err instanceof SapError) {
55
+ * console.error(`[${err.code}] ${err.message}`);
56
+ * }
57
+ * }
58
+ * ```
59
+ *
60
+ * @see {@link SapValidationError}
61
+ * @see {@link SapRpcError}
62
+ * @see {@link SapAccountNotFoundError}
63
+ * @see {@link SapTimeoutError}
64
+ * @see {@link SapPermissionError}
65
+ */
66
+ export class SapError extends Error {
67
+ /**
68
+ * @description Machine-readable error code for programmatic handling.
69
+ * @readonly
70
+ */
71
+ code;
72
+ /**
73
+ * @param message - A human-readable description of the error.
74
+ * @param code - Machine-readable error code (defaults to `"SAP_ERROR"`).
75
+ */
76
+ constructor(message, code = "SAP_ERROR") {
77
+ super(message);
78
+ this.name = "SapError";
79
+ this.code = code;
80
+ // Fix prototype chain for instanceof checks
81
+ Object.setPrototypeOf(this, new.target.prototype);
82
+ }
83
+ }
84
+ // ═══════════════════════════════════════════════════════════════════
85
+ // Validation Error
86
+ // ═══════════════════════════════════════════════════════════════════
87
+ /**
88
+ * @name SapValidationError
89
+ * @description Thrown when SDK-side input validation fails before sending a
90
+ * transaction or making an RPC call.
91
+ *
92
+ * @category Errors
93
+ * @since v0.1.0
94
+ * @extends {SapError}
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * try {
99
+ * await client.agent.register({ name: "" });
100
+ * } catch (err) {
101
+ * if (err instanceof SapValidationError) {
102
+ * console.error(`Validation failed on field "${err.field}": ${err.message}`);
103
+ * }
104
+ * }
105
+ * ```
106
+ *
107
+ * @see {@link SapError}
108
+ */
109
+ export class SapValidationError extends SapError {
110
+ /**
111
+ * @description Field or parameter that failed validation (if applicable).
112
+ * @readonly
113
+ */
114
+ field;
115
+ /**
116
+ * @param message - A human-readable description of the validation failure.
117
+ * @param field - The name of the field or parameter that failed validation.
118
+ */
119
+ constructor(message, field) {
120
+ super(message, "SAP_VALIDATION_ERROR");
121
+ this.name = "SapValidationError";
122
+ this.field = field;
123
+ }
124
+ }
125
+ // ═══════════════════════════════════════════════════════════════════
126
+ // RPC / Transaction Error
127
+ // ═══════════════════════════════════════════════════════════════════
128
+ /**
129
+ * @name SapRpcError
130
+ * @description Wraps Solana RPC or Anchor transaction errors with additional
131
+ * context (error code, logs).
132
+ *
133
+ * @category Errors
134
+ * @since v0.1.0
135
+ * @extends {SapError}
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * try {
140
+ * await client.agent.register(params);
141
+ * } catch (err) {
142
+ * if (err instanceof SapRpcError) {
143
+ * console.error(`RPC error ${err.rpcCode}: ${err.message}`);
144
+ * err.logs?.forEach((log) => console.debug(log));
145
+ * }
146
+ * }
147
+ * ```
148
+ *
149
+ * @see {@link SapRpcError.fromAnchor}
150
+ * @see {@link SapError}
151
+ */
152
+ export class SapRpcError extends SapError {
153
+ /**
154
+ * @description Anchor / program error code, if available.
155
+ * @readonly
156
+ */
157
+ rpcCode;
158
+ /**
159
+ * @description Transaction logs returned by the RPC node.
160
+ * @readonly
161
+ */
162
+ logs;
163
+ /**
164
+ * @param message - A human-readable description of the RPC or transaction error.
165
+ * @param opts - Optional additional context.
166
+ * @param opts.rpcCode - Anchor or Solana program error code.
167
+ * @param opts.logs - Raw transaction logs from the RPC node.
168
+ */
169
+ constructor(message, opts) {
170
+ super(message, "SAP_RPC_ERROR");
171
+ this.name = "SapRpcError";
172
+ this.rpcCode = opts?.rpcCode;
173
+ this.logs = opts?.logs;
174
+ }
175
+ /**
176
+ * @static
177
+ * @description Create a {@link SapRpcError} from an Anchor-style error object.
178
+ * Extracts `code` and `logs` automatically from the Anchor error shape.
179
+ *
180
+ * @param err - The raw Anchor or Solana error object.
181
+ * @returns A new {@link SapRpcError} populated with extracted code, logs, and message.
182
+ *
183
+ * @example
184
+ * ```ts
185
+ * try {
186
+ * await program.methods.registerAgent(args).rpc();
187
+ * } catch (raw) {
188
+ * throw SapRpcError.fromAnchor(raw);
189
+ * }
190
+ * ```
191
+ *
192
+ * @see {@link SapRpcError}
193
+ */
194
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
195
+ static fromAnchor(err) {
196
+ const code = err?.error?.errorCode?.number ?? err?.code;
197
+ const logs = err?.logs ?? err?.error?.logs ?? [];
198
+ const msg = err?.error?.errorMessage ?? err?.message ?? "Unknown RPC error";
199
+ return new SapRpcError(msg, { rpcCode: code, logs });
200
+ }
201
+ }
202
+ // ═══════════════════════════════════════════════════════════════════
203
+ // Account Not Found
204
+ // ═══════════════════════════════════════════════════════════════════
205
+ /**
206
+ * @name SapAccountNotFoundError
207
+ * @description Thrown when an expected on-chain account does not exist or has
208
+ * been closed.
209
+ *
210
+ * @category Errors
211
+ * @since v0.1.0
212
+ * @extends {SapError}
213
+ *
214
+ * @example
215
+ * ```ts
216
+ * try {
217
+ * const agent = await client.agent.fetch(agentPda);
218
+ * } catch (err) {
219
+ * if (err instanceof SapAccountNotFoundError) {
220
+ * console.warn(`Missing ${err.accountType ?? "account"}: ${err.address}`);
221
+ * }
222
+ * }
223
+ * ```
224
+ *
225
+ * @see {@link SapError}
226
+ */
227
+ export class SapAccountNotFoundError extends SapError {
228
+ /**
229
+ * @description The base-58 encoded account address that was not found.
230
+ * @readonly
231
+ */
232
+ address;
233
+ /**
234
+ * @description The expected account type (e.g. `"AgentRecord"`, `"VaultAccount"`).
235
+ * @readonly
236
+ */
237
+ accountType;
238
+ /**
239
+ * @param address - The base-58 encoded address of the missing account.
240
+ * @param accountType - Optional label for the expected account type.
241
+ */
242
+ constructor(address, accountType) {
243
+ const label = accountType ? `${accountType} account` : "Account";
244
+ super(`${label} not found: ${address}`, "SAP_ACCOUNT_NOT_FOUND");
245
+ this.name = "SapAccountNotFoundError";
246
+ this.address = address;
247
+ this.accountType = accountType;
248
+ }
249
+ }
250
+ // ═══════════════════════════════════════════════════════════════════
251
+ // Timeout Error
252
+ // ═══════════════════════════════════════════════════════════════════
253
+ /**
254
+ * @name SapTimeoutError
255
+ * @description Thrown when an operation (e.g., transaction confirmation) exceeds
256
+ * the configured timeout.
257
+ *
258
+ * @category Errors
259
+ * @since v0.1.0
260
+ * @extends {SapError}
261
+ *
262
+ * @example
263
+ * ```ts
264
+ * try {
265
+ * await client.agent.register(params, { timeoutMs: 30_000 });
266
+ * } catch (err) {
267
+ * if (err instanceof SapTimeoutError) {
268
+ * console.error(`Timed out after ${err.timeoutMs}ms: ${err.message}`);
269
+ * }
270
+ * }
271
+ * ```
272
+ *
273
+ * @see {@link SapError}
274
+ */
275
+ export class SapTimeoutError extends SapError {
276
+ /**
277
+ * @description Timeout duration in milliseconds that was exceeded.
278
+ * @readonly
279
+ */
280
+ timeoutMs;
281
+ /**
282
+ * @param message - A human-readable description of the timeout.
283
+ * @param timeoutMs - The timeout threshold in milliseconds.
284
+ */
285
+ constructor(message, timeoutMs) {
286
+ super(message, "SAP_TIMEOUT");
287
+ this.name = "SapTimeoutError";
288
+ this.timeoutMs = timeoutMs;
289
+ }
290
+ }
291
+ // ═══════════════════════════════════════════════════════════════════
292
+ // Permission Error
293
+ // ═══════════════════════════════════════════════════════════════════
294
+ /**
295
+ * @name SapPermissionError
296
+ * @description Thrown when the current wallet lacks the required permission
297
+ * (authority, delegate, etc.) for an operation.
298
+ *
299
+ * @category Errors
300
+ * @since v0.1.0
301
+ * @extends {SapError}
302
+ *
303
+ * @example
304
+ * ```ts
305
+ * try {
306
+ * await client.agent.update(agentPda, updates);
307
+ * } catch (err) {
308
+ * if (err instanceof SapPermissionError) {
309
+ * console.error(`Permission denied: ${err.message}`);
310
+ * }
311
+ * }
312
+ * ```
313
+ *
314
+ * @see {@link SapError}
315
+ */
316
+ export class SapPermissionError extends SapError {
317
+ /**
318
+ * @param message - A human-readable description of the permission failure.
319
+ */
320
+ constructor(message) {
321
+ super(message, "SAP_PERMISSION_DENIED");
322
+ this.name = "SapPermissionError";
323
+ }
324
+ }
325
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"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"}