@oobe-protocol-labs/synapse-sap-sdk 0.13.0 → 0.14.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 (654) hide show
  1. package/dist/cjs/accounts/index.js +286 -0
  2. package/dist/cjs/accounts/index.js.map +1 -0
  3. package/dist/cjs/client.js +108 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/constants.js +59 -0
  6. package/dist/cjs/constants.js.map +1 -0
  7. package/dist/cjs/errors.js +250 -0
  8. package/dist/cjs/errors.js.map +1 -0
  9. package/dist/cjs/events/index.js +38 -130
  10. package/dist/cjs/events/index.js.map +1 -1
  11. package/dist/cjs/idlTypes.js +4 -0
  12. package/dist/cjs/idlTypes.js.map +1 -0
  13. package/dist/cjs/index.js +75 -241
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/instructions/agent.js +89 -0
  16. package/dist/cjs/instructions/agent.js.map +1 -0
  17. package/dist/cjs/instructions/attestation.js +112 -0
  18. package/dist/cjs/instructions/attestation.js.map +1 -0
  19. package/dist/cjs/instructions/digest.js +28 -0
  20. package/dist/cjs/instructions/digest.js.map +1 -0
  21. package/dist/cjs/instructions/dispute.js +116 -0
  22. package/dist/cjs/instructions/dispute.js.map +1 -0
  23. package/dist/cjs/instructions/escrow.js +101 -0
  24. package/dist/cjs/instructions/escrow.js.map +1 -0
  25. package/dist/cjs/instructions/global.js +28 -0
  26. package/dist/cjs/instructions/global.js.map +1 -0
  27. package/dist/cjs/instructions/index.js +31 -0
  28. package/dist/cjs/instructions/index.js.map +1 -0
  29. package/dist/cjs/instructions/indexing.js +221 -0
  30. package/dist/cjs/instructions/indexing.js.map +1 -0
  31. package/dist/cjs/instructions/misc.js +73 -0
  32. package/dist/cjs/instructions/misc.js.map +1 -0
  33. package/dist/cjs/instructions/session.js +89 -0
  34. package/dist/cjs/instructions/session.js.map +1 -0
  35. package/dist/cjs/instructions/staking.js +132 -0
  36. package/dist/cjs/instructions/staking.js.map +1 -0
  37. package/dist/cjs/instructions/subscription.js +80 -0
  38. package/dist/cjs/instructions/subscription.js.map +1 -0
  39. package/dist/cjs/instructions/tools.js +109 -0
  40. package/dist/cjs/instructions/tools.js.map +1 -0
  41. package/dist/cjs/instructions/vault.js +106 -0
  42. package/dist/cjs/instructions/vault.js.map +1 -0
  43. package/dist/cjs/pdas/index.js +120 -0
  44. package/dist/cjs/pdas/index.js.map +1 -0
  45. package/dist/cjs/types.js +42 -0
  46. package/dist/cjs/types.js.map +1 -0
  47. package/dist/cjs/utils/index.js +29 -86
  48. package/dist/cjs/utils/index.js.map +1 -1
  49. package/dist/cjs/utils/validate.js +236 -0
  50. package/dist/cjs/utils/validate.js.map +1 -0
  51. package/dist/esm/accounts/index.d.ts +11 -0
  52. package/dist/esm/accounts/index.d.ts.map +1 -0
  53. package/dist/esm/accounts/index.js +273 -0
  54. package/dist/esm/accounts/index.js.map +1 -0
  55. package/dist/esm/client.d.ts +55 -0
  56. package/dist/esm/client.d.ts.map +1 -0
  57. package/dist/esm/client.js +70 -0
  58. package/dist/esm/client.js.map +1 -0
  59. package/dist/esm/constants.d.ts +52 -0
  60. package/dist/esm/constants.d.ts.map +1 -0
  61. package/dist/esm/constants.js +56 -0
  62. package/dist/esm/constants.js.map +1 -0
  63. package/dist/esm/errors.d.ts +111 -0
  64. package/dist/esm/errors.d.ts.map +1 -0
  65. package/dist/esm/errors.js +244 -0
  66. package/dist/esm/errors.js.map +1 -0
  67. package/dist/esm/events/index.d.ts +13 -0
  68. package/dist/esm/events/index.d.ts.map +1 -0
  69. package/dist/esm/events/index.js +36 -128
  70. package/dist/esm/events/index.js.map +1 -1
  71. package/dist/esm/idlTypes.d.ts +925 -0
  72. package/dist/esm/idlTypes.d.ts.map +1 -0
  73. package/dist/esm/idlTypes.js +3 -0
  74. package/dist/esm/idlTypes.js.map +1 -0
  75. package/dist/esm/index.d.ts +12 -0
  76. package/dist/esm/index.d.ts.map +1 -0
  77. package/dist/esm/index.js +15 -88
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/instructions/agent.d.ts +71 -0
  80. package/dist/esm/instructions/agent.d.ts.map +1 -0
  81. package/dist/esm/instructions/agent.js +85 -0
  82. package/dist/esm/instructions/agent.js.map +1 -0
  83. package/dist/esm/instructions/attestation.d.ts +76 -0
  84. package/dist/esm/instructions/attestation.d.ts.map +1 -0
  85. package/dist/esm/instructions/attestation.js +108 -0
  86. package/dist/esm/instructions/attestation.js.map +1 -0
  87. package/dist/esm/instructions/digest.d.ts +20 -0
  88. package/dist/esm/instructions/digest.d.ts.map +1 -0
  89. package/dist/esm/instructions/digest.js +24 -0
  90. package/dist/esm/instructions/digest.js.map +1 -0
  91. package/dist/esm/instructions/dispute.d.ts +81 -0
  92. package/dist/esm/instructions/dispute.d.ts.map +1 -0
  93. package/dist/esm/instructions/dispute.js +112 -0
  94. package/dist/esm/instructions/dispute.js.map +1 -0
  95. package/dist/esm/instructions/escrow.d.ts +79 -0
  96. package/dist/esm/instructions/escrow.d.ts.map +1 -0
  97. package/dist/esm/instructions/escrow.js +97 -0
  98. package/dist/esm/instructions/escrow.js.map +1 -0
  99. package/dist/esm/instructions/global.d.ts +14 -0
  100. package/dist/esm/instructions/global.d.ts.map +1 -0
  101. package/dist/esm/instructions/global.js +24 -0
  102. package/dist/esm/instructions/global.js.map +1 -0
  103. package/dist/esm/instructions/index.d.ts +14 -0
  104. package/dist/esm/instructions/index.d.ts.map +1 -0
  105. package/dist/esm/instructions/index.js +15 -0
  106. package/dist/esm/instructions/index.js.map +1 -0
  107. package/dist/esm/instructions/indexing.d.ts +150 -0
  108. package/dist/esm/instructions/indexing.d.ts.map +1 -0
  109. package/dist/esm/instructions/indexing.js +217 -0
  110. package/dist/esm/instructions/indexing.js.map +1 -0
  111. package/dist/esm/instructions/memory.d.ts +8 -0
  112. package/dist/esm/instructions/memory.d.ts.map +1 -0
  113. package/dist/esm/instructions/memory.js +234 -0
  114. package/dist/esm/instructions/memory.js.map +1 -0
  115. package/dist/esm/instructions/misc.d.ts +50 -0
  116. package/dist/esm/instructions/misc.d.ts.map +1 -0
  117. package/dist/esm/instructions/misc.js +69 -0
  118. package/dist/esm/instructions/misc.js.map +1 -0
  119. package/dist/esm/instructions/session.d.ts +57 -0
  120. package/dist/esm/instructions/session.d.ts.map +1 -0
  121. package/dist/esm/instructions/session.js +85 -0
  122. package/dist/esm/instructions/session.js.map +1 -0
  123. package/dist/esm/instructions/staking.d.ts +85 -0
  124. package/dist/esm/instructions/staking.d.ts.map +1 -0
  125. package/dist/esm/instructions/staking.js +128 -0
  126. package/dist/esm/instructions/staking.js.map +1 -0
  127. package/dist/esm/instructions/subscription.d.ts +50 -0
  128. package/dist/esm/instructions/subscription.d.ts.map +1 -0
  129. package/dist/esm/instructions/subscription.js +76 -0
  130. package/dist/esm/instructions/subscription.js.map +1 -0
  131. package/dist/esm/instructions/tools.d.ts +88 -0
  132. package/dist/esm/instructions/tools.d.ts.map +1 -0
  133. package/dist/esm/instructions/tools.js +105 -0
  134. package/dist/esm/instructions/tools.js.map +1 -0
  135. package/dist/esm/instructions/vault.d.ts +84 -0
  136. package/dist/esm/instructions/vault.d.ts.map +1 -0
  137. package/dist/esm/instructions/vault.js +102 -0
  138. package/dist/esm/instructions/vault.js.map +1 -0
  139. package/dist/esm/pdas/index.d.ts +37 -0
  140. package/dist/esm/pdas/index.d.ts.map +1 -0
  141. package/dist/esm/pdas/index.js +101 -0
  142. package/dist/esm/pdas/index.js.map +1 -0
  143. package/dist/esm/types.d.ts +208 -0
  144. package/dist/esm/types.d.ts.map +1 -0
  145. package/dist/esm/types.js +39 -0
  146. package/dist/esm/types.js.map +1 -0
  147. package/dist/esm/utils/index.d.ts +4 -0
  148. package/dist/esm/utils/index.d.ts.map +1 -0
  149. package/dist/esm/utils/index.js +13 -33
  150. package/dist/esm/utils/index.js.map +1 -1
  151. package/dist/esm/utils/validate.d.ts +66 -0
  152. package/dist/esm/utils/validate.d.ts.map +1 -0
  153. package/dist/esm/utils/validate.js +221 -0
  154. package/dist/esm/utils/validate.js.map +1 -0
  155. package/package.json +59 -183
  156. package/LICENSE +0 -21
  157. package/README.md +0 -986
  158. package/dist/cjs/constants/addresses.js +0 -143
  159. package/dist/cjs/constants/addresses.js.map +0 -1
  160. package/dist/cjs/constants/index.js +0 -64
  161. package/dist/cjs/constants/index.js.map +0 -1
  162. package/dist/cjs/constants/limits.js +0 -161
  163. package/dist/cjs/constants/limits.js.map +0 -1
  164. package/dist/cjs/constants/network.js +0 -81
  165. package/dist/cjs/constants/network.js.map +0 -1
  166. package/dist/cjs/constants/payments.js +0 -137
  167. package/dist/cjs/constants/payments.js.map +0 -1
  168. package/dist/cjs/constants/programs.js +0 -78
  169. package/dist/cjs/constants/programs.js.map +0 -1
  170. package/dist/cjs/constants/seeds.js +0 -76
  171. package/dist/cjs/constants/seeds.js.map +0 -1
  172. package/dist/cjs/core/client.js +0 -546
  173. package/dist/cjs/core/client.js.map +0 -1
  174. package/dist/cjs/core/connection.js +0 -350
  175. package/dist/cjs/core/connection.js.map +0 -1
  176. package/dist/cjs/core/index.js +0 -25
  177. package/dist/cjs/core/index.js.map +0 -1
  178. package/dist/cjs/errors/index.js +0 -334
  179. package/dist/cjs/errors/index.js.map +0 -1
  180. package/dist/cjs/events/geyser.js +0 -295
  181. package/dist/cjs/events/geyser.js.map +0 -1
  182. package/dist/cjs/idl/index.js +0 -63
  183. package/dist/cjs/idl/index.js.map +0 -1
  184. package/dist/cjs/idl/synapse_agent_sap.json +0 -14595
  185. package/dist/cjs/modules/agent.js +0 -272
  186. package/dist/cjs/modules/agent.js.map +0 -1
  187. package/dist/cjs/modules/attestation.js +0 -147
  188. package/dist/cjs/modules/attestation.js.map +0 -1
  189. package/dist/cjs/modules/base.js +0 -189
  190. package/dist/cjs/modules/base.js.map +0 -1
  191. package/dist/cjs/modules/escrow-v2.js +0 -607
  192. package/dist/cjs/modules/escrow-v2.js.map +0 -1
  193. package/dist/cjs/modules/escrow.js +0 -336
  194. package/dist/cjs/modules/escrow.js.map +0 -1
  195. package/dist/cjs/modules/feedback.js +0 -166
  196. package/dist/cjs/modules/feedback.js.map +0 -1
  197. package/dist/cjs/modules/index.js +0 -43
  198. package/dist/cjs/modules/index.js.map +0 -1
  199. package/dist/cjs/modules/indexing.js +0 -375
  200. package/dist/cjs/modules/indexing.js.map +0 -1
  201. package/dist/cjs/modules/ledger.js +0 -234
  202. package/dist/cjs/modules/ledger.js.map +0 -1
  203. package/dist/cjs/modules/receipt.js +0 -148
  204. package/dist/cjs/modules/receipt.js.map +0 -1
  205. package/dist/cjs/modules/staking.js +0 -159
  206. package/dist/cjs/modules/staking.js.map +0 -1
  207. package/dist/cjs/modules/subscription.js +0 -96
  208. package/dist/cjs/modules/subscription.js.map +0 -1
  209. package/dist/cjs/modules/tools.js +0 -345
  210. package/dist/cjs/modules/tools.js.map +0 -1
  211. package/dist/cjs/modules/vault.js +0 -427
  212. package/dist/cjs/modules/vault.js.map +0 -1
  213. package/dist/cjs/parser/client.js +0 -146
  214. package/dist/cjs/parser/client.js.map +0 -1
  215. package/dist/cjs/parser/complete.js +0 -177
  216. package/dist/cjs/parser/complete.js.map +0 -1
  217. package/dist/cjs/parser/index.js +0 -57
  218. package/dist/cjs/parser/index.js.map +0 -1
  219. package/dist/cjs/parser/inner.js +0 -185
  220. package/dist/cjs/parser/inner.js.map +0 -1
  221. package/dist/cjs/parser/instructions.js +0 -114
  222. package/dist/cjs/parser/instructions.js.map +0 -1
  223. package/dist/cjs/parser/transaction.js +0 -153
  224. package/dist/cjs/parser/transaction.js.map +0 -1
  225. package/dist/cjs/parser/types.js +0 -14
  226. package/dist/cjs/parser/types.js.map +0 -1
  227. package/dist/cjs/pda/index.js +0 -672
  228. package/dist/cjs/pda/index.js.map +0 -1
  229. package/dist/cjs/plugin/index.js +0 -952
  230. package/dist/cjs/plugin/index.js.map +0 -1
  231. package/dist/cjs/plugin/protocols.js +0 -282
  232. package/dist/cjs/plugin/protocols.js.map +0 -1
  233. package/dist/cjs/plugin/schemas.js +0 -863
  234. package/dist/cjs/plugin/schemas.js.map +0 -1
  235. package/dist/cjs/postgres/adapter.js +0 -715
  236. package/dist/cjs/postgres/adapter.js.map +0 -1
  237. package/dist/cjs/postgres/index.js +0 -50
  238. package/dist/cjs/postgres/index.js.map +0 -1
  239. package/dist/cjs/postgres/serializers.js +0 -381
  240. package/dist/cjs/postgres/serializers.js.map +0 -1
  241. package/dist/cjs/postgres/sync.js +0 -289
  242. package/dist/cjs/postgres/sync.js.map +0 -1
  243. package/dist/cjs/postgres/types.js +0 -44
  244. package/dist/cjs/postgres/types.js.map +0 -1
  245. package/dist/cjs/registries/builder.js +0 -414
  246. package/dist/cjs/registries/builder.js.map +0 -1
  247. package/dist/cjs/registries/discovery.js +0 -362
  248. package/dist/cjs/registries/discovery.js.map +0 -1
  249. package/dist/cjs/registries/fairscale.js +0 -639
  250. package/dist/cjs/registries/fairscale.js.map +0 -1
  251. package/dist/cjs/registries/index.js +0 -58
  252. package/dist/cjs/registries/index.js.map +0 -1
  253. package/dist/cjs/registries/metaplex-bridge.js +0 -743
  254. package/dist/cjs/registries/metaplex-bridge.js.map +0 -1
  255. package/dist/cjs/registries/session.js +0 -433
  256. package/dist/cjs/registries/session.js.map +0 -1
  257. package/dist/cjs/registries/x402.js +0 -668
  258. package/dist/cjs/registries/x402.js.map +0 -1
  259. package/dist/cjs/types/accounts.js +0 -13
  260. package/dist/cjs/types/accounts.js.map +0 -1
  261. package/dist/cjs/types/common.js +0 -13
  262. package/dist/cjs/types/common.js.map +0 -1
  263. package/dist/cjs/types/endpoint.js +0 -15
  264. package/dist/cjs/types/endpoint.js.map +0 -1
  265. package/dist/cjs/types/enums.js +0 -269
  266. package/dist/cjs/types/enums.js.map +0 -1
  267. package/dist/cjs/types/index.js +0 -41
  268. package/dist/cjs/types/index.js.map +0 -1
  269. package/dist/cjs/types/instructions.js +0 -92
  270. package/dist/cjs/types/instructions.js.map +0 -1
  271. package/dist/cjs/utils/anchor-errors.js +0 -453
  272. package/dist/cjs/utils/anchor-errors.js.map +0 -1
  273. package/dist/cjs/utils/endpoint-validator.js +0 -232
  274. package/dist/cjs/utils/endpoint-validator.js.map +0 -1
  275. package/dist/cjs/utils/escrow-validation.js +0 -219
  276. package/dist/cjs/utils/escrow-validation.js.map +0 -1
  277. package/dist/cjs/utils/hash.js +0 -109
  278. package/dist/cjs/utils/hash.js.map +0 -1
  279. package/dist/cjs/utils/merchant-validator.js +0 -246
  280. package/dist/cjs/utils/merchant-validator.js.map +0 -1
  281. package/dist/cjs/utils/network-normalizer.js +0 -236
  282. package/dist/cjs/utils/network-normalizer.js.map +0 -1
  283. package/dist/cjs/utils/priority-fee.js +0 -215
  284. package/dist/cjs/utils/priority-fee.js.map +0 -1
  285. package/dist/cjs/utils/rpc-strategy.js +0 -239
  286. package/dist/cjs/utils/rpc-strategy.js.map +0 -1
  287. package/dist/cjs/utils/schemas.js +0 -331
  288. package/dist/cjs/utils/schemas.js.map +0 -1
  289. package/dist/cjs/utils/serialization.js +0 -105
  290. package/dist/cjs/utils/serialization.js.map +0 -1
  291. package/dist/cjs/utils/validation.js +0 -36
  292. package/dist/cjs/utils/validation.js.map +0 -1
  293. package/dist/cjs/utils/volume-curve.js +0 -117
  294. package/dist/cjs/utils/volume-curve.js.map +0 -1
  295. package/dist/cjs/utils/x402-direct.js +0 -231
  296. package/dist/cjs/utils/x402-direct.js.map +0 -1
  297. package/dist/esm/constants/addresses.js +0 -140
  298. package/dist/esm/constants/addresses.js.map +0 -1
  299. package/dist/esm/constants/index.js +0 -35
  300. package/dist/esm/constants/index.js.map +0 -1
  301. package/dist/esm/constants/limits.js +0 -158
  302. package/dist/esm/constants/limits.js.map +0 -1
  303. package/dist/esm/constants/network.js +0 -78
  304. package/dist/esm/constants/network.js.map +0 -1
  305. package/dist/esm/constants/payments.js +0 -131
  306. package/dist/esm/constants/payments.js.map +0 -1
  307. package/dist/esm/constants/programs.js +0 -75
  308. package/dist/esm/constants/programs.js.map +0 -1
  309. package/dist/esm/constants/seeds.js +0 -73
  310. package/dist/esm/constants/seeds.js.map +0 -1
  311. package/dist/esm/core/client.js +0 -539
  312. package/dist/esm/core/client.js.map +0 -1
  313. package/dist/esm/core/connection.js +0 -345
  314. package/dist/esm/core/connection.js.map +0 -1
  315. package/dist/esm/core/index.js +0 -19
  316. package/dist/esm/core/index.js.map +0 -1
  317. package/dist/esm/errors/index.js +0 -325
  318. package/dist/esm/errors/index.js.map +0 -1
  319. package/dist/esm/events/geyser.js +0 -258
  320. package/dist/esm/events/geyser.js.map +0 -1
  321. package/dist/esm/idl/index.js +0 -57
  322. package/dist/esm/idl/index.js.map +0 -1
  323. package/dist/esm/idl/synapse_agent_sap.json +0 -14595
  324. package/dist/esm/modules/agent.js +0 -268
  325. package/dist/esm/modules/agent.js.map +0 -1
  326. package/dist/esm/modules/attestation.js +0 -143
  327. package/dist/esm/modules/attestation.js.map +0 -1
  328. package/dist/esm/modules/base.js +0 -185
  329. package/dist/esm/modules/base.js.map +0 -1
  330. package/dist/esm/modules/escrow-v2.js +0 -603
  331. package/dist/esm/modules/escrow-v2.js.map +0 -1
  332. package/dist/esm/modules/escrow.js +0 -332
  333. package/dist/esm/modules/escrow.js.map +0 -1
  334. package/dist/esm/modules/feedback.js +0 -162
  335. package/dist/esm/modules/feedback.js.map +0 -1
  336. package/dist/esm/modules/index.js +0 -27
  337. package/dist/esm/modules/index.js.map +0 -1
  338. package/dist/esm/modules/indexing.js +0 -371
  339. package/dist/esm/modules/indexing.js.map +0 -1
  340. package/dist/esm/modules/ledger.js +0 -230
  341. package/dist/esm/modules/ledger.js.map +0 -1
  342. package/dist/esm/modules/receipt.js +0 -144
  343. package/dist/esm/modules/receipt.js.map +0 -1
  344. package/dist/esm/modules/staking.js +0 -155
  345. package/dist/esm/modules/staking.js.map +0 -1
  346. package/dist/esm/modules/subscription.js +0 -92
  347. package/dist/esm/modules/subscription.js.map +0 -1
  348. package/dist/esm/modules/tools.js +0 -341
  349. package/dist/esm/modules/tools.js.map +0 -1
  350. package/dist/esm/modules/vault.js +0 -423
  351. package/dist/esm/modules/vault.js.map +0 -1
  352. package/dist/esm/parser/client.js +0 -142
  353. package/dist/esm/parser/client.js.map +0 -1
  354. package/dist/esm/parser/complete.js +0 -173
  355. package/dist/esm/parser/complete.js.map +0 -1
  356. package/dist/esm/parser/index.js +0 -43
  357. package/dist/esm/parser/index.js.map +0 -1
  358. package/dist/esm/parser/inner.js +0 -180
  359. package/dist/esm/parser/inner.js.map +0 -1
  360. package/dist/esm/parser/instructions.js +0 -109
  361. package/dist/esm/parser/instructions.js.map +0 -1
  362. package/dist/esm/parser/transaction.js +0 -149
  363. package/dist/esm/parser/transaction.js.map +0 -1
  364. package/dist/esm/parser/types.js +0 -13
  365. package/dist/esm/parser/types.js.map +0 -1
  366. package/dist/esm/pda/index.js +0 -638
  367. package/dist/esm/pda/index.js.map +0 -1
  368. package/dist/esm/plugin/index.js +0 -945
  369. package/dist/esm/plugin/index.js.map +0 -1
  370. package/dist/esm/plugin/protocols.js +0 -279
  371. package/dist/esm/plugin/protocols.js.map +0 -1
  372. package/dist/esm/plugin/schemas.js +0 -860
  373. package/dist/esm/plugin/schemas.js.map +0 -1
  374. package/dist/esm/postgres/adapter.js +0 -678
  375. package/dist/esm/postgres/adapter.js.map +0 -1
  376. package/dist/esm/postgres/index.js +0 -27
  377. package/dist/esm/postgres/index.js.map +0 -1
  378. package/dist/esm/postgres/serializers.js +0 -362
  379. package/dist/esm/postgres/serializers.js.map +0 -1
  380. package/dist/esm/postgres/sync.js +0 -285
  381. package/dist/esm/postgres/sync.js.map +0 -1
  382. package/dist/esm/postgres/types.js +0 -41
  383. package/dist/esm/postgres/types.js.map +0 -1
  384. package/dist/esm/registries/builder.js +0 -410
  385. package/dist/esm/registries/builder.js.map +0 -1
  386. package/dist/esm/registries/discovery.js +0 -358
  387. package/dist/esm/registries/discovery.js.map +0 -1
  388. package/dist/esm/registries/fairscale.js +0 -633
  389. package/dist/esm/registries/fairscale.js.map +0 -1
  390. package/dist/esm/registries/index.js +0 -46
  391. package/dist/esm/registries/index.js.map +0 -1
  392. package/dist/esm/registries/metaplex-bridge.js +0 -706
  393. package/dist/esm/registries/metaplex-bridge.js.map +0 -1
  394. package/dist/esm/registries/session.js +0 -429
  395. package/dist/esm/registries/session.js.map +0 -1
  396. package/dist/esm/registries/x402.js +0 -664
  397. package/dist/esm/registries/x402.js.map +0 -1
  398. package/dist/esm/types/accounts.js +0 -12
  399. package/dist/esm/types/accounts.js.map +0 -1
  400. package/dist/esm/types/common.js +0 -12
  401. package/dist/esm/types/common.js.map +0 -1
  402. package/dist/esm/types/endpoint.js +0 -14
  403. package/dist/esm/types/endpoint.js.map +0 -1
  404. package/dist/esm/types/enums.js +0 -266
  405. package/dist/esm/types/enums.js.map +0 -1
  406. package/dist/esm/types/index.js +0 -25
  407. package/dist/esm/types/index.js.map +0 -1
  408. package/dist/esm/types/instructions.js +0 -89
  409. package/dist/esm/types/instructions.js.map +0 -1
  410. package/dist/esm/utils/anchor-errors.js +0 -447
  411. package/dist/esm/utils/anchor-errors.js.map +0 -1
  412. package/dist/esm/utils/endpoint-validator.js +0 -226
  413. package/dist/esm/utils/endpoint-validator.js.map +0 -1
  414. package/dist/esm/utils/escrow-validation.js +0 -212
  415. package/dist/esm/utils/escrow-validation.js.map +0 -1
  416. package/dist/esm/utils/hash.js +0 -103
  417. package/dist/esm/utils/hash.js.map +0 -1
  418. package/dist/esm/utils/merchant-validator.js +0 -241
  419. package/dist/esm/utils/merchant-validator.js.map +0 -1
  420. package/dist/esm/utils/network-normalizer.js +0 -229
  421. package/dist/esm/utils/network-normalizer.js.map +0 -1
  422. package/dist/esm/utils/priority-fee.js +0 -209
  423. package/dist/esm/utils/priority-fee.js.map +0 -1
  424. package/dist/esm/utils/rpc-strategy.js +0 -231
  425. package/dist/esm/utils/rpc-strategy.js.map +0 -1
  426. package/dist/esm/utils/schemas.js +0 -320
  427. package/dist/esm/utils/schemas.js.map +0 -1
  428. package/dist/esm/utils/serialization.js +0 -98
  429. package/dist/esm/utils/serialization.js.map +0 -1
  430. package/dist/esm/utils/validation.js +0 -33
  431. package/dist/esm/utils/validation.js.map +0 -1
  432. package/dist/esm/utils/volume-curve.js +0 -114
  433. package/dist/esm/utils/volume-curve.js.map +0 -1
  434. package/dist/esm/utils/x402-direct.js +0 -228
  435. package/dist/esm/utils/x402-direct.js.map +0 -1
  436. package/dist/types/constants/addresses.d.ts +0 -117
  437. package/dist/types/constants/addresses.d.ts.map +0 -1
  438. package/dist/types/constants/index.d.ts +0 -31
  439. package/dist/types/constants/index.d.ts.map +0 -1
  440. package/dist/types/constants/limits.d.ts +0 -149
  441. package/dist/types/constants/limits.d.ts.map +0 -1
  442. package/dist/types/constants/network.d.ts +0 -81
  443. package/dist/types/constants/network.d.ts.map +0 -1
  444. package/dist/types/constants/payments.d.ts +0 -121
  445. package/dist/types/constants/payments.d.ts.map +0 -1
  446. package/dist/types/constants/programs.d.ts +0 -69
  447. package/dist/types/constants/programs.d.ts.map +0 -1
  448. package/dist/types/constants/seeds.d.ts +0 -80
  449. package/dist/types/constants/seeds.d.ts.map +0 -1
  450. package/dist/types/core/client.d.ts +0 -452
  451. package/dist/types/core/client.d.ts.map +0 -1
  452. package/dist/types/core/connection.d.ts +0 -305
  453. package/dist/types/core/connection.d.ts.map +0 -1
  454. package/dist/types/core/index.d.ts +0 -20
  455. package/dist/types/core/index.d.ts.map +0 -1
  456. package/dist/types/errors/index.d.ts +0 -276
  457. package/dist/types/errors/index.d.ts.map +0 -1
  458. package/dist/types/events/geyser.d.ts +0 -150
  459. package/dist/types/events/geyser.d.ts.map +0 -1
  460. package/dist/types/events/index.d.ts +0 -248
  461. package/dist/types/events/index.d.ts.map +0 -1
  462. package/dist/types/idl/index.d.ts +0 -70
  463. package/dist/types/idl/index.d.ts.map +0 -1
  464. package/dist/types/index.d.ts +0 -85
  465. package/dist/types/index.d.ts.map +0 -1
  466. package/dist/types/modules/agent.d.ts +0 -166
  467. package/dist/types/modules/agent.d.ts.map +0 -1
  468. package/dist/types/modules/attestation.d.ts +0 -96
  469. package/dist/types/modules/attestation.d.ts.map +0 -1
  470. package/dist/types/modules/base.d.ts +0 -161
  471. package/dist/types/modules/base.d.ts.map +0 -1
  472. package/dist/types/modules/escrow-v2.d.ts +0 -169
  473. package/dist/types/modules/escrow-v2.d.ts.map +0 -1
  474. package/dist/types/modules/escrow.d.ts +0 -168
  475. package/dist/types/modules/escrow.d.ts.map +0 -1
  476. package/dist/types/modules/feedback.d.ts +0 -105
  477. package/dist/types/modules/feedback.d.ts.map +0 -1
  478. package/dist/types/modules/index.d.ts +0 -28
  479. package/dist/types/modules/index.d.ts.map +0 -1
  480. package/dist/types/modules/indexing.d.ts +0 -200
  481. package/dist/types/modules/indexing.d.ts.map +0 -1
  482. package/dist/types/modules/ledger.d.ts +0 -150
  483. package/dist/types/modules/ledger.d.ts.map +0 -1
  484. package/dist/types/modules/receipt.d.ts +0 -77
  485. package/dist/types/modules/receipt.d.ts.map +0 -1
  486. package/dist/types/modules/staking.d.ts +0 -51
  487. package/dist/types/modules/staking.d.ts.map +0 -1
  488. package/dist/types/modules/subscription.d.ts +0 -33
  489. package/dist/types/modules/subscription.d.ts.map +0 -1
  490. package/dist/types/modules/tools.d.ts +0 -182
  491. package/dist/types/modules/tools.d.ts.map +0 -1
  492. package/dist/types/modules/vault.d.ts +0 -240
  493. package/dist/types/modules/vault.d.ts.map +0 -1
  494. package/dist/types/parser/client.d.ts +0 -123
  495. package/dist/types/parser/client.d.ts.map +0 -1
  496. package/dist/types/parser/complete.d.ts +0 -90
  497. package/dist/types/parser/complete.d.ts.map +0 -1
  498. package/dist/types/parser/index.d.ts +0 -40
  499. package/dist/types/parser/index.d.ts.map +0 -1
  500. package/dist/types/parser/inner.d.ts +0 -114
  501. package/dist/types/parser/inner.d.ts.map +0 -1
  502. package/dist/types/parser/instructions.d.ts +0 -76
  503. package/dist/types/parser/instructions.d.ts.map +0 -1
  504. package/dist/types/parser/transaction.d.ts +0 -77
  505. package/dist/types/parser/transaction.d.ts.map +0 -1
  506. package/dist/types/parser/types.d.ts +0 -154
  507. package/dist/types/parser/types.d.ts.map +0 -1
  508. package/dist/types/pda/index.d.ts +0 -510
  509. package/dist/types/pda/index.d.ts.map +0 -1
  510. package/dist/types/plugin/index.d.ts +0 -171
  511. package/dist/types/plugin/index.d.ts.map +0 -1
  512. package/dist/types/plugin/protocols.d.ts +0 -152
  513. package/dist/types/plugin/protocols.d.ts.map +0 -1
  514. package/dist/types/plugin/schemas.d.ts +0 -829
  515. package/dist/types/plugin/schemas.d.ts.map +0 -1
  516. package/dist/types/postgres/adapter.d.ts +0 -355
  517. package/dist/types/postgres/adapter.d.ts.map +0 -1
  518. package/dist/types/postgres/index.d.ts +0 -24
  519. package/dist/types/postgres/index.d.ts.map +0 -1
  520. package/dist/types/postgres/serializers.d.ts +0 -30
  521. package/dist/types/postgres/serializers.d.ts.map +0 -1
  522. package/dist/types/postgres/sync.d.ts +0 -156
  523. package/dist/types/postgres/sync.d.ts.map +0 -1
  524. package/dist/types/postgres/types.d.ts +0 -167
  525. package/dist/types/postgres/types.d.ts.map +0 -1
  526. package/dist/types/registries/builder.d.ts +0 -340
  527. package/dist/types/registries/builder.d.ts.map +0 -1
  528. package/dist/types/registries/discovery.d.ts +0 -333
  529. package/dist/types/registries/discovery.d.ts.map +0 -1
  530. package/dist/types/registries/fairscale.d.ts +0 -680
  531. package/dist/types/registries/fairscale.d.ts.map +0 -1
  532. package/dist/types/registries/index.d.ts +0 -52
  533. package/dist/types/registries/index.d.ts.map +0 -1
  534. package/dist/types/registries/metaplex-bridge.d.ts +0 -488
  535. package/dist/types/registries/metaplex-bridge.d.ts.map +0 -1
  536. package/dist/types/registries/session.d.ts +0 -323
  537. package/dist/types/registries/session.d.ts.map +0 -1
  538. package/dist/types/registries/x402.d.ts +0 -530
  539. package/dist/types/registries/x402.d.ts.map +0 -1
  540. package/dist/types/types/accounts.d.ts +0 -765
  541. package/dist/types/types/accounts.d.ts.map +0 -1
  542. package/dist/types/types/common.d.ts +0 -166
  543. package/dist/types/types/common.d.ts.map +0 -1
  544. package/dist/types/types/endpoint.d.ts +0 -161
  545. package/dist/types/types/endpoint.d.ts.map +0 -1
  546. package/dist/types/types/enums.d.ts +0 -353
  547. package/dist/types/types/enums.d.ts.map +0 -1
  548. package/dist/types/types/index.d.ts +0 -29
  549. package/dist/types/types/index.d.ts.map +0 -1
  550. package/dist/types/types/instructions.d.ts +0 -400
  551. package/dist/types/types/instructions.d.ts.map +0 -1
  552. package/dist/types/utils/anchor-errors.d.ts +0 -61
  553. package/dist/types/utils/anchor-errors.d.ts.map +0 -1
  554. package/dist/types/utils/endpoint-validator.d.ts +0 -110
  555. package/dist/types/utils/endpoint-validator.d.ts.map +0 -1
  556. package/dist/types/utils/escrow-validation.d.ts +0 -145
  557. package/dist/types/utils/escrow-validation.d.ts.map +0 -1
  558. package/dist/types/utils/hash.d.ts +0 -75
  559. package/dist/types/utils/hash.d.ts.map +0 -1
  560. package/dist/types/utils/index.d.ts +0 -36
  561. package/dist/types/utils/index.d.ts.map +0 -1
  562. package/dist/types/utils/merchant-validator.d.ts +0 -176
  563. package/dist/types/utils/merchant-validator.d.ts.map +0 -1
  564. package/dist/types/utils/network-normalizer.d.ts +0 -120
  565. package/dist/types/utils/network-normalizer.d.ts.map +0 -1
  566. package/dist/types/utils/priority-fee.d.ts +0 -205
  567. package/dist/types/utils/priority-fee.d.ts.map +0 -1
  568. package/dist/types/utils/rpc-strategy.d.ts +0 -172
  569. package/dist/types/utils/rpc-strategy.d.ts.map +0 -1
  570. package/dist/types/utils/schemas.d.ts +0 -351
  571. package/dist/types/utils/schemas.d.ts.map +0 -1
  572. package/dist/types/utils/serialization.d.ts +0 -69
  573. package/dist/types/utils/serialization.d.ts.map +0 -1
  574. package/dist/types/utils/validation.d.ts +0 -29
  575. package/dist/types/utils/validation.d.ts.map +0 -1
  576. package/dist/types/utils/volume-curve.d.ts +0 -60
  577. package/dist/types/utils/volume-curve.d.ts.map +0 -1
  578. package/dist/types/utils/x402-direct.d.ts +0 -114
  579. package/dist/types/utils/x402-direct.d.ts.map +0 -1
  580. package/src/constants/addresses.ts +0 -162
  581. package/src/constants/index.ts +0 -69
  582. package/src/constants/limits.ts +0 -165
  583. package/src/constants/network.ts +0 -89
  584. package/src/constants/payments.ts +0 -145
  585. package/src/constants/programs.ts +0 -83
  586. package/src/constants/seeds.ts +0 -85
  587. package/src/core/client.ts +0 -583
  588. package/src/core/connection.ts +0 -461
  589. package/src/core/index.ts +0 -20
  590. package/src/errors/index.ts +0 -346
  591. package/src/events/geyser.ts +0 -384
  592. package/src/events/index.ts +0 -335
  593. package/src/events/yellowstone.d.ts +0 -7
  594. package/src/idl/index.ts +0 -76
  595. package/src/idl/synapse_agent_sap.json +0 -14595
  596. package/src/index.ts +0 -421
  597. package/src/modules/agent.ts +0 -319
  598. package/src/modules/attestation.ts +0 -168
  599. package/src/modules/base.ts +0 -247
  600. package/src/modules/escrow-v2.ts +0 -871
  601. package/src/modules/escrow.ts +0 -439
  602. package/src/modules/feedback.ts +0 -186
  603. package/src/modules/index.ts +0 -28
  604. package/src/modules/indexing.ts +0 -444
  605. package/src/modules/ledger.ts +0 -262
  606. package/src/modules/receipt.ts +0 -212
  607. package/src/modules/staking.ts +0 -223
  608. package/src/modules/subscription.ts +0 -147
  609. package/src/modules/tools.ts +0 -454
  610. package/src/modules/vault.ts +0 -558
  611. package/src/parser/client.ts +0 -211
  612. package/src/parser/complete.ts +0 -232
  613. package/src/parser/index.ts +0 -71
  614. package/src/parser/inner.ts +0 -255
  615. package/src/parser/instructions.ts +0 -135
  616. package/src/parser/transaction.ts +0 -200
  617. package/src/parser/types.ts +0 -182
  618. package/src/pda/index.ts +0 -919
  619. package/src/plugin/index.ts +0 -1224
  620. package/src/plugin/protocols.ts +0 -404
  621. package/src/plugin/schemas.ts +0 -941
  622. package/src/postgres/adapter.ts +0 -904
  623. package/src/postgres/index.ts +0 -59
  624. package/src/postgres/schema.sql +0 -683
  625. package/src/postgres/serializers.ts +0 -485
  626. package/src/postgres/sync.ts +0 -340
  627. package/src/postgres/types.ts +0 -245
  628. package/src/registries/builder.ts +0 -607
  629. package/src/registries/discovery.ts +0 -572
  630. package/src/registries/fairscale.ts +0 -1278
  631. package/src/registries/index.ts +0 -143
  632. package/src/registries/metaplex-bridge.ts +0 -1199
  633. package/src/registries/session.ts +0 -613
  634. package/src/registries/x402.ts +0 -1048
  635. package/src/types/accounts.ts +0 -858
  636. package/src/types/common.ts +0 -187
  637. package/src/types/endpoint.ts +0 -181
  638. package/src/types/enums.ts +0 -333
  639. package/src/types/index.ts +0 -121
  640. package/src/types/instructions.ts +0 -453
  641. package/src/utils/anchor-errors.ts +0 -461
  642. package/src/utils/endpoint-validator.ts +0 -300
  643. package/src/utils/escrow-validation.ts +0 -301
  644. package/src/utils/hash.ts +0 -113
  645. package/src/utils/index.ts +0 -118
  646. package/src/utils/merchant-validator.ts +0 -359
  647. package/src/utils/network-normalizer.ts +0 -240
  648. package/src/utils/priority-fee.ts +0 -325
  649. package/src/utils/rpc-strategy.ts +0 -322
  650. package/src/utils/schemas.ts +0 -359
  651. package/src/utils/serialization.ts +0 -98
  652. package/src/utils/validation.ts +0 -36
  653. package/src/utils/volume-curve.ts +0 -131
  654. package/src/utils/x402-direct.ts +0 -370
@@ -1,322 +0,0 @@
1
- /**
2
- * @module utils/rpc-strategy
3
- * @description Dual-connection RPC strategy and idempotent ATA creation.
4
- *
5
- * Solves two interoperability problems:
6
- *
7
- * 1. **WebSocket 400 loop**: Some authenticated RPCs reject WebSocket
8
- * connections for SPL token operations. This module exposes a
9
- * dual-connection strategy: primary RPC for SAP program calls,
10
- * fallback public RPC for token operations.
11
- *
12
- * 2. **Idempotent ATA creation**: Wraps `getOrCreateAssociatedTokenAccount`
13
- * with retries so "account already exists" doesn't surface as a
14
- * hard error.
15
- *
16
- * @category Utils
17
- * @since v0.6.0
18
- */
19
-
20
- import {
21
- Connection,
22
- type Commitment,
23
- PublicKey,
24
- type TransactionSignature,
25
- } from "@solana/web3.js";
26
-
27
- // ═══════════════════════════════════════════════════════════════════
28
- // RPC Strategy Types
29
- // ═══════════════════════════════════════════════════════════════════
30
-
31
- /**
32
- * @interface RpcConfig
33
- * @description Configuration for dual-connection RPC strategy.
34
- * @category Utils
35
- * @since v0.6.0
36
- */
37
- export interface RpcConfig {
38
- /** Primary RPC URL (for SAP program calls). */
39
- readonly primaryUrl: string;
40
- /** Fallback RPC URL (for SPL token ops, public RPCs). */
41
- readonly fallbackUrl?: string;
42
- /** Commitment level. */
43
- readonly commitment?: Commitment;
44
- }
45
-
46
- /**
47
- * @interface DualConnection
48
- * @description Dual RPC connections: primary for SAP, fallback for tokens.
49
- * @category Utils
50
- * @since v0.6.0
51
- */
52
- export interface DualConnection {
53
- /** Primary connection for SAP program calls. */
54
- readonly primary: Connection;
55
- /** Fallback connection for SPL token operations. */
56
- readonly fallback: Connection;
57
- }
58
-
59
- // ═══════════════════════════════════════════════════════════════════
60
- // Default Public RPCs
61
- // ═══════════════════════════════════════════════════════════════════
62
-
63
- /** Well-known public fallback RPCs by cluster. */
64
- const PUBLIC_RPCS: Record<string, string> = {
65
- "mainnet-beta": "https://api.mainnet-beta.solana.com",
66
- devnet: "https://api.devnet.solana.com",
67
- localnet: "http://localhost:8899",
68
- };
69
-
70
- // ═══════════════════════════════════════════════════════════════════
71
- // Public API
72
- // ═══════════════════════════════════════════════════════════════════
73
-
74
- /**
75
- * @name getRpcUrl
76
- * @description Get the primary RPC URL from environment or config.
77
- *
78
- * Resolution order:
79
- * 1. Explicit `config.primaryUrl`
80
- * 2. `SOLANA_RPC_URL` env var
81
- * 3. Cluster-appropriate public RPC
82
- *
83
- * @param config - Optional RPC configuration.
84
- * @param cluster - Cluster hint (defaults to "mainnet-beta").
85
- * @returns The resolved primary RPC URL.
86
- *
87
- * @category Utils
88
- * @since v0.6.0
89
- */
90
- export function getRpcUrl(
91
- config?: Partial<RpcConfig>,
92
- cluster: string = "mainnet-beta",
93
- ): string {
94
- if (config?.primaryUrl) return config.primaryUrl;
95
-
96
- // Environment variable
97
- const envUrl =
98
- typeof process !== "undefined" ? process.env?.SOLANA_RPC_URL : undefined;
99
- if (envUrl) return envUrl;
100
-
101
- return PUBLIC_RPCS[cluster] ?? PUBLIC_RPCS["mainnet-beta"]!;
102
- }
103
-
104
- /**
105
- * @name getFallbackRpcUrl
106
- * @description Get the fallback RPC URL for SPL token operations.
107
- *
108
- * This avoids the WebSocket-400 loop when the primary RPC is
109
- * an authenticated endpoint that rejects token-related WebSocket
110
- * subscriptions.
111
- *
112
- * @param config - Optional RPC configuration.
113
- * @param cluster - Cluster hint (defaults to "mainnet-beta").
114
- * @returns The resolved fallback RPC URL.
115
- *
116
- * @category Utils
117
- * @since v0.6.0
118
- */
119
- export function getFallbackRpcUrl(
120
- config?: Partial<RpcConfig>,
121
- cluster: string = "mainnet-beta",
122
- ): string {
123
- if (config?.fallbackUrl) return config.fallbackUrl;
124
-
125
- // Env fallback
126
- const envUrl =
127
- typeof process !== "undefined"
128
- ? process.env?.SOLANA_FALLBACK_RPC_URL
129
- : undefined;
130
- if (envUrl) return envUrl;
131
-
132
- return PUBLIC_RPCS[cluster] ?? PUBLIC_RPCS["mainnet-beta"]!;
133
- }
134
-
135
- /**
136
- * @name createDualConnection
137
- * @description Create a dual-connection pair: primary for SAP program calls,
138
- * fallback for SPL token operations.
139
- *
140
- * @param config - RPC configuration.
141
- * @param cluster - Cluster hint.
142
- * @returns A {@link DualConnection} with both connections.
143
- *
144
- * @category Utils
145
- * @since v0.6.0
146
- *
147
- * @example
148
- * ```ts
149
- * const { primary, fallback } = createDualConnection({
150
- * primaryUrl: "https://my-rpc.example.com",
151
- * }, "mainnet-beta");
152
- *
153
- * // Use primary for SAP calls
154
- * const provider = new AnchorProvider(primary, wallet, {});
155
- *
156
- * // Use fallback for SPL token account creation
157
- * const ata = await getOrCreateATA(fallback, mint, owner);
158
- * ```
159
- */
160
- export function createDualConnection(
161
- config: Partial<RpcConfig>,
162
- cluster: string = "mainnet-beta",
163
- ): DualConnection {
164
- const commitment = config.commitment ?? "confirmed";
165
- const primaryUrl = getRpcUrl(config, cluster);
166
- const fallbackUrl = getFallbackRpcUrl(config, cluster);
167
-
168
- return {
169
- primary: new Connection(primaryUrl, { commitment }),
170
- fallback: new Connection(fallbackUrl, { commitment }),
171
- };
172
- }
173
-
174
- // ═══════════════════════════════════════════════════════════════════
175
- // Idempotent ATA Creation
176
- // ═══════════════════════════════════════════════════════════════════
177
-
178
- /**
179
- * @interface AtaResult
180
- * @description Result of idempotent ATA creation attempt.
181
- * @category Utils
182
- * @since v0.6.0
183
- */
184
- export interface AtaResult {
185
- /** The ATA public key (exists or newly created). */
186
- readonly address: PublicKey;
187
- /** Whether the ATA already existed. */
188
- readonly existed: boolean;
189
- /** Transaction signature (only if newly created). */
190
- readonly txSignature?: TransactionSignature;
191
- }
192
-
193
- /**
194
- * @name findATA
195
- * @description Derive the Associated Token Account address.
196
- * Uses the standard ATA PDA derivation without importing the full
197
- * `@solana/spl-token` package.
198
- *
199
- * @param owner - The token account owner.
200
- * @param mint - The token mint.
201
- * @param programId - Token program ID (defaults to TOKEN_PROGRAM_ID).
202
- * @returns The derived ATA public key.
203
- *
204
- * @category Utils
205
- * @since v0.6.0
206
- */
207
- export function findATA(
208
- owner: PublicKey,
209
- mint: PublicKey,
210
- programId: PublicKey = new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),
211
- ): PublicKey {
212
- const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey(
213
- "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
214
- );
215
-
216
- const [ata] = PublicKey.findProgramAddressSync(
217
- [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],
218
- ASSOCIATED_TOKEN_PROGRAM_ID,
219
- );
220
- return ata;
221
- }
222
-
223
- // ═══════════════════════════════════════════════════════════════════
224
- // Error Classification
225
- // ═══════════════════════════════════════════════════════════════════
226
-
227
- /**
228
- * Anchor error code to friendly message mapping.
229
- * Converts cryptic Anchor errors into actionable messages.
230
- */
231
- const ANCHOR_ERROR_MESSAGES: Record<number, string> = {
232
- 6000: "Agent already registered for this wallet",
233
- 6001: "Agent not found — register first",
234
- 6002: "Name exceeds maximum length (64 bytes)",
235
- 6003: "Description exceeds maximum length (256 bytes)",
236
- 6004: "Too many capabilities (max 10)",
237
- 6005: "Too many pricing tiers (max 5)",
238
- 6006: "Too many protocols (max 5)",
239
- 6007: "Feedback score out of range (0-1000)",
240
- 6008: "Unauthorized — only the agent owner can perform this action",
241
- 6009: "Escrow expired",
242
- 6010: "Insufficient escrow balance",
243
- 6011: "Max calls exceeded",
244
- 6012: "Invalid settlement — calls must be > 0",
245
- 6013: "Escrow not empty — withdraw balance before closing",
246
- 6014: "Invalid token program — make sure you passed TOKEN_PROGRAM_ID as the 3rd remaining account",
247
- 6015: "Vault already initialized",
248
- 6016: "Session already exists",
249
- 6017: "Session closed — cannot write to closed session",
250
- 6018: "Data exceeds maximum write size (750 bytes)",
251
- 6019: "Ring buffer overflow — seal before writing more",
252
- };
253
-
254
- /**
255
- * @name classifyAnchorError
256
- * @description Convert an Anchor error code into a friendly, actionable message.
257
- *
258
- * @param errorCode - The numeric Anchor error code.
259
- * @returns A human-readable error message, or a generic message for unknown codes.
260
- *
261
- * @category Utils
262
- * @since v0.6.0
263
- *
264
- * @example
265
- * ```ts
266
- * try {
267
- * await client.escrow.create(...);
268
- * } catch (err) {
269
- * const code = extractAnchorErrorCode(err);
270
- * if (code !== null) {
271
- * console.error(classifyAnchorError(code));
272
- * }
273
- * }
274
- * ```
275
- */
276
- export function classifyAnchorError(errorCode: number): string {
277
- return (
278
- ANCHOR_ERROR_MESSAGES[errorCode] ??
279
- `Unknown SAP program error (code ${errorCode}). Check the IDL for details.`
280
- );
281
- }
282
-
283
- /**
284
- * @name extractAnchorErrorCode
285
- * @description Attempt to extract an Anchor error code from an Error object.
286
- *
287
- * Anchor errors typically have the structure `{ code: number, msg: string }`.
288
- * This function handles both the direct `error.code` pattern and the
289
- * `error.error.errorCode.number` nested pattern.
290
- *
291
- * @param err - The caught error object.
292
- * @returns The numeric error code, or `null` if not an Anchor error.
293
- *
294
- * @category Utils
295
- * @since v0.6.0
296
- */
297
- export function extractAnchorErrorCode(err: unknown): number | null {
298
- if (err == null || typeof err !== "object") return null;
299
-
300
- // Direct code property
301
- const direct = (err as Record<string, unknown>).code;
302
- if (typeof direct === "number") return direct;
303
-
304
- // Nested Anchor format: error.error.errorCode.number
305
- const nested = (err as Record<string, unknown>).error;
306
- if (nested && typeof nested === "object") {
307
- const errorCode = (nested as Record<string, unknown>).errorCode;
308
- if (errorCode && typeof errorCode === "object") {
309
- const num = (errorCode as Record<string, unknown>).number;
310
- if (typeof num === "number") return num;
311
- }
312
- }
313
-
314
- // AnchorError pattern: { logs: [...], error: { errorCode: { number } } }
315
- const msg = (err as Error).message;
316
- if (typeof msg === "string") {
317
- const match = msg.match(/custom program error:\s*0x([0-9a-fA-F]+)/);
318
- if (match?.[1]) return parseInt(match[1], 16);
319
- }
320
-
321
- return null;
322
- }
@@ -1,359 +0,0 @@
1
- /**
2
- * @module utils/schemas
3
- * @description Zod schemas for runtime validation of environment variables,
4
- * tool arguments, agent manifests, and x402 payment parameters.
5
- *
6
- * These schemas enforce correctness at the boundary: CLI scripts refuse
7
- * to run if required fields are missing or mis-typed, and SDK methods
8
- * validate inputs before hitting the chain.
9
- *
10
- * Zod is a peer dependency — these schemas are tree-shaken if not imported.
11
- *
12
- * @category Utils
13
- * @since v0.6.0
14
- */
15
-
16
- // ═══════════════════════════════════════════════════════════════════
17
- // Dynamic Zod import (peer dependency)
18
- // ═══════════════════════════════════════════════════════════════════
19
-
20
- // We use a lazy getter pattern to avoid hard failures when zod is not installed
21
- let _z: typeof import("zod") | null = null;
22
-
23
- function getZod(): typeof import("zod") {
24
- if (!_z) {
25
- try {
26
- // eslint-disable-next-line @typescript-eslint/no-require-imports
27
- _z = require("zod");
28
- } catch {
29
- throw new Error(
30
- "[SAP SDK] Zod is required for schema validation. Install it: npm install zod",
31
- );
32
- }
33
- }
34
- return _z!;
35
- }
36
-
37
- // ═══════════════════════════════════════════════════════════════════
38
- // Environment Schemas
39
- // ═══════════════════════════════════════════════════════════════════
40
-
41
- /**
42
- * @name createEnvSchema
43
- * @description Create a Zod schema for SAP SDK environment variables.
44
- * Validates that all required env vars are present and correctly typed.
45
- *
46
- * @returns A Zod schema object for env validation.
47
- *
48
- * @category Utils
49
- * @since v0.6.0
50
- *
51
- * @example
52
- * ```ts
53
- * import { createEnvSchema } from "@synapse-sap/sdk";
54
- *
55
- * const schema = createEnvSchema();
56
- * const env = schema.parse(process.env);
57
- * // env.SOLANA_CLUSTER is typed as "mainnet-beta" | "devnet" | "localnet"
58
- * ```
59
- */
60
- export function createEnvSchema() {
61
- const z = getZod();
62
-
63
- return z.object({
64
- SOLANA_CLUSTER: z
65
- .enum(["mainnet-beta", "devnet", "localnet"])
66
- .default("devnet")
67
- .describe("Solana cluster"),
68
- SOLANA_RPC_URL: z
69
- .string()
70
- .url()
71
- .optional()
72
- .describe("Primary RPC endpoint URL"),
73
- SOLANA_FALLBACK_RPC_URL: z
74
- .string()
75
- .url()
76
- .optional()
77
- .describe("Fallback RPC for SPL token ops"),
78
- SOLANA_WS_URL: z
79
- .string()
80
- .url()
81
- .optional()
82
- .describe("WebSocket endpoint URL"),
83
- WALLET_KEYPAIR_PATH: z
84
- .string()
85
- .optional()
86
- .describe("Path to keypair JSON file"),
87
- WALLET_PRIVATE_KEY: z
88
- .string()
89
- .optional()
90
- .describe("Base58 private key (alternative to file)"),
91
- SAP_PROGRAM_ID: z
92
- .string()
93
- .optional()
94
- .describe("Custom SAP program ID override"),
95
- DATABASE_URL: z
96
- .string()
97
- .optional()
98
- .describe("PostgreSQL connection URL"),
99
- LOG_LEVEL: z
100
- .enum(["debug", "info", "warn", "error"])
101
- .default("info")
102
- .describe("Log level"),
103
- X402_ENDPOINT: z
104
- .string()
105
- .url()
106
- .optional()
107
- .describe("Agent x402 payment endpoint"),
108
- AGENT_URI: z
109
- .string()
110
- .url()
111
- .optional()
112
- .describe("Agent public API URI"),
113
- });
114
- }
115
-
116
- // ═══════════════════════════════════════════════════════════════════
117
- // Endpoint Schemas
118
- // ═══════════════════════════════════════════════════════════════════
119
-
120
- /**
121
- * @name createEndpointDescriptorSchema
122
- * @description Zod schema for {@link EndpointDescriptor}.
123
- * @returns A Zod schema for endpoint descriptor validation.
124
- * @category Utils
125
- * @since v0.6.0
126
- */
127
- export function createEndpointDescriptorSchema() {
128
- const z = getZod();
129
-
130
- return z.object({
131
- url: z.string().url(),
132
- method: z.enum(["GET", "POST", "PUT", "DELETE"]).default("POST"),
133
- contentType: z.string().default("application/json"),
134
- requiresAuth: z.boolean().default(false),
135
- authType: z.enum(["bearer", "api-key", "x402", "none"]).optional(),
136
- requiresCSRF: z.boolean().default(false),
137
- requiresCookies: z.boolean().default(false),
138
- corsOrigins: z.array(z.string()).optional(),
139
- requiredHeaders: z.record(z.string(), z.string()).optional(),
140
- });
141
- }
142
-
143
- /**
144
- * @name createHealthCheckSchema
145
- * @description Zod schema for {@link HealthCheckDescriptor}.
146
- * @returns A Zod schema for health check validation.
147
- * @category Utils
148
- * @since v0.6.0
149
- */
150
- export function createHealthCheckSchema() {
151
- const z = getZod();
152
-
153
- return z.object({
154
- url: z.string().url(),
155
- expectedStatus: z.number().int().min(100).max(599).default(200),
156
- timeoutMs: z.number().int().min(100).max(60_000).default(5000),
157
- method: z.enum(["GET", "HEAD"]).default("GET"),
158
- });
159
- }
160
-
161
- // ═══════════════════════════════════════════════════════════════════
162
- // Tool Manifest Schemas
163
- // ═══════════════════════════════════════════════════════════════════
164
-
165
- /**
166
- * @name createToolManifestEntrySchema
167
- * @description Zod schema for a single tool in an agent manifest.
168
- * @returns A Zod schema for tool manifest entry validation.
169
- * @category Utils
170
- * @since v0.6.0
171
- */
172
- export function createToolManifestEntrySchema() {
173
- const z = getZod();
174
-
175
- return z.object({
176
- name: z.string().min(1).max(64),
177
- description: z.string().max(256),
178
- protocol: z.string().min(1).max(64),
179
- category: z.string().min(1),
180
- inputSchema: z.record(z.string(), z.unknown()),
181
- outputSchema: z.record(z.string(), z.unknown()),
182
- httpMethod: z.enum(["GET", "POST", "PUT", "DELETE", "COMPOUND"]).default("POST"),
183
- paymentMode: z.enum(["x402", "free", "prepaid", "subscription"]).default("x402"),
184
- pricePerCall: z.number().int().min(0).default(0),
185
- requiredArgs: z.array(z.string()).default([]),
186
- prerequisites: z.array(z.string()).default([]),
187
- endpointOverride: createEndpointDescriptorSchema().optional(),
188
- });
189
- }
190
-
191
- /**
192
- * @name createAgentManifestSchema
193
- * @description Zod schema for a complete agent manifest.
194
- * @returns A Zod schema for manifest validation.
195
- * @category Utils
196
- * @since v0.6.0
197
- *
198
- * @example
199
- * ```ts
200
- * import { createAgentManifestSchema } from "@synapse-sap/sdk";
201
- *
202
- * const schema = createAgentManifestSchema();
203
- * const manifest = schema.parse(JSON.parse(fs.readFileSync("manifest.json", "utf-8")));
204
- * ```
205
- */
206
- export function createAgentManifestSchema() {
207
- const z = getZod();
208
-
209
- return z.object({
210
- version: z.literal("1.0.0"),
211
- wallet: z.string().min(32).max(50),
212
- name: z.string().min(1).max(64),
213
- description: z.string().max(256),
214
- endpoint: createEndpointDescriptorSchema(),
215
- healthCheck: createHealthCheckSchema().optional(),
216
- tools: z.array(createToolManifestEntrySchema()),
217
- supportedNetworks: z.array(z.string()).min(1),
218
- generatedAt: z.string().datetime(),
219
- });
220
- }
221
-
222
- // ═══════════════════════════════════════════════════════════════════
223
- // x402 Payment Schemas
224
- // ═══════════════════════════════════════════════════════════════════
225
-
226
- /**
227
- * @name createPreparePaymentSchema
228
- * @description Zod schema for x402 payment preparation parameters.
229
- * @returns A Zod schema for payment option validation.
230
- * @category Utils
231
- * @since v0.6.0
232
- */
233
- export function createPreparePaymentSchema() {
234
- const z = getZod();
235
-
236
- return z.object({
237
- pricePerCall: z.union([z.number(), z.string(), z.bigint()]),
238
- maxCalls: z.union([z.number(), z.string(), z.bigint()]).optional(),
239
- deposit: z.union([z.number(), z.string(), z.bigint()]),
240
- expiresAt: z.union([z.number(), z.string(), z.bigint()]).optional(),
241
- volumeCurve: z
242
- .array(
243
- z.object({
244
- afterCalls: z.number().int().min(1),
245
- pricePerCall: z.union([z.number(), z.string(), z.bigint()]),
246
- }),
247
- )
248
- .optional(),
249
- tokenMint: z.string().optional(),
250
- tokenDecimals: z.number().int().min(0).max(18).default(9),
251
- networkIdentifier: z.string().optional(),
252
- });
253
- }
254
-
255
- // ═══════════════════════════════════════════════════════════════════
256
- // Agent Registration Schemas
257
- // ═══════════════════════════════════════════════════════════════════
258
-
259
- /**
260
- * @name createRegisterAgentSchema
261
- * @description Zod schema for agent registration arguments.
262
- * @returns A Zod schema for registration validation.
263
- * @category Utils
264
- * @since v0.6.0
265
- */
266
- export function createRegisterAgentSchema() {
267
- const z = getZod();
268
-
269
- return z.object({
270
- name: z.string().min(1).max(64),
271
- description: z.string().min(1).max(256),
272
- agentId: z.string().max(128).optional().nullable(),
273
- agentUri: z.string().max(256).optional().nullable(),
274
- x402Endpoint: z.string().url().max(256).optional().nullable(),
275
- capabilities: z
276
- .array(
277
- z.object({
278
- id: z.string().min(1),
279
- description: z.string().nullable().optional(),
280
- protocolId: z.string().nullable().optional(),
281
- version: z.string().nullable().optional(),
282
- }),
283
- )
284
- .max(10)
285
- .default([]),
286
- protocols: z.array(z.string()).max(5).default([]),
287
- pricing: z
288
- .array(
289
- z.object({
290
- tierId: z.string().min(1),
291
- pricePerCall: z.union([z.number(), z.string()]),
292
- rateLimit: z.number().int().min(0),
293
- tokenType: z.enum(["sol", "usdc", "spl"]).default("sol"),
294
- settlementMode: z.enum(["instant", "escrow", "batched", "x402"]).default("x402"),
295
- }),
296
- )
297
- .max(5)
298
- .default([]),
299
- });
300
- }
301
-
302
- // ═══════════════════════════════════════════════════════════════════
303
- // CLI Script Argument Schemas
304
- // ═══════════════════════════════════════════════════════════════════
305
-
306
- /**
307
- * @name createCallArgsSchema
308
- * @description Zod schema for `npm run call` script arguments.
309
- * Ensures all required fields are present before executing an x402 call.
310
- *
311
- * @returns A Zod schema for call argument validation.
312
- * @category Utils
313
- * @since v0.6.0
314
- */
315
- export function createCallArgsSchema() {
316
- const z = getZod();
317
-
318
- return z.object({
319
- agentWallet: z.string().min(32).max(50).describe("Agent wallet (base58)"),
320
- tool: z.string().min(1).describe("Tool name to invoke"),
321
- args: z.record(z.string(), z.unknown()).default({}).describe("Tool arguments (JSON)"),
322
- endpoint: z.string().url().optional().describe("Endpoint URL override"),
323
- network: z.string().optional().describe("Network identifier override"),
324
- maxRetries: z.number().int().min(0).max(10).default(2),
325
- timeoutMs: z.number().int().min(1000).max(120_000).default(30_000),
326
- });
327
- }
328
-
329
- /**
330
- * @name validateOrThrow
331
- * @description Validate a value against a Zod schema, throwing a SapValidationError
332
- * with a friendly message if validation fails.
333
- *
334
- * @param schema - A Zod schema.
335
- * @param value - The value to validate.
336
- * @param label - A label for error messages (e.g. "environment", "call args").
337
- * @returns The parsed and typed value.
338
- * @throws {Error} With formatted validation errors.
339
- *
340
- * @category Utils
341
- * @since v0.6.0
342
- */
343
- export function validateOrThrow<T>(
344
- schema: { parse: (v: unknown) => T; safeParse: (v: unknown) => { success: boolean; error?: { issues: Array<{ path: Array<string | number>; message: string }> } } },
345
- value: unknown,
346
- label: string,
347
- ): T {
348
- const result = schema.safeParse(value);
349
- if (result.success) return schema.parse(value);
350
-
351
- const issues = result.error?.issues ?? [];
352
- const formatted = issues
353
- .map((i) => ` • ${i.path.join(".")}: ${i.message}`)
354
- .join("\n");
355
-
356
- throw new Error(
357
- `[SAP SDK] Invalid ${label}:\n${formatted}`,
358
- );
359
- }