@oobe-protocol-labs/synapse-sap-sdk 0.13.0 → 0.15.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 (418) 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 +125 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/constants/seeds.js +9 -9
  6. package/dist/cjs/constants/seeds.js.map +1 -1
  7. package/dist/cjs/constants.js +66 -0
  8. package/dist/cjs/constants.js.map +1 -0
  9. package/dist/cjs/errors.js +260 -0
  10. package/dist/cjs/errors.js.map +1 -0
  11. package/dist/cjs/events/index.js +37 -123
  12. package/dist/cjs/events/index.js.map +1 -1
  13. package/dist/cjs/idlTypes.js +4 -0
  14. package/dist/cjs/idlTypes.js.map +1 -0
  15. package/dist/cjs/index.js +75 -241
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/instructions/agent.js +90 -0
  18. package/dist/cjs/instructions/agent.js.map +1 -0
  19. package/dist/cjs/instructions/attestation.js +113 -0
  20. package/dist/cjs/instructions/attestation.js.map +1 -0
  21. package/dist/cjs/instructions/digest.js +29 -0
  22. package/dist/cjs/instructions/digest.js.map +1 -0
  23. package/dist/cjs/instructions/dispute.js +117 -0
  24. package/dist/cjs/instructions/dispute.js.map +1 -0
  25. package/dist/cjs/instructions/escrow.js +102 -0
  26. package/dist/cjs/instructions/escrow.js.map +1 -0
  27. package/dist/cjs/instructions/global.js +29 -0
  28. package/dist/cjs/instructions/global.js.map +1 -0
  29. package/dist/cjs/instructions/index.js +31 -0
  30. package/dist/cjs/instructions/index.js.map +1 -0
  31. package/dist/cjs/instructions/indexing.js +222 -0
  32. package/dist/cjs/instructions/indexing.js.map +1 -0
  33. package/dist/cjs/instructions/misc.js +74 -0
  34. package/dist/cjs/instructions/misc.js.map +1 -0
  35. package/dist/cjs/instructions/session.js +90 -0
  36. package/dist/cjs/instructions/session.js.map +1 -0
  37. package/dist/cjs/instructions/staking.js +133 -0
  38. package/dist/cjs/instructions/staking.js.map +1 -0
  39. package/dist/cjs/instructions/subscription.js +81 -0
  40. package/dist/cjs/instructions/subscription.js.map +1 -0
  41. package/dist/cjs/instructions/tools.js +110 -0
  42. package/dist/cjs/instructions/tools.js.map +1 -0
  43. package/dist/cjs/instructions/vault.js +107 -0
  44. package/dist/cjs/instructions/vault.js.map +1 -0
  45. package/dist/cjs/pdas/index.js +120 -0
  46. package/dist/cjs/pdas/index.js.map +1 -0
  47. package/dist/cjs/registries/fairscale.js +1 -1
  48. package/dist/cjs/registries/fairscale.js.map +1 -1
  49. package/dist/cjs/registries/metaplex-bridge.js +1 -1
  50. package/dist/cjs/registries/metaplex-bridge.js.map +1 -1
  51. package/dist/cjs/types.js +45 -0
  52. package/dist/cjs/types.js.map +1 -0
  53. package/dist/cjs/utils/escrow-validation.js +1 -1
  54. package/dist/cjs/utils/escrow-validation.js.map +1 -1
  55. package/dist/cjs/utils/index.js +32 -83
  56. package/dist/cjs/utils/index.js.map +1 -1
  57. package/dist/cjs/utils/merchant-validator.js +5 -5
  58. package/dist/cjs/utils/merchant-validator.js.map +1 -1
  59. package/dist/cjs/utils/validate.js +236 -0
  60. package/dist/cjs/utils/validate.js.map +1 -0
  61. package/dist/cjs/utils/volume-curve.js +1 -1
  62. package/dist/cjs/utils/volume-curve.js.map +1 -1
  63. package/dist/esm/accounts/index.d.ts +11 -0
  64. package/dist/esm/accounts/index.d.ts.map +1 -0
  65. package/dist/esm/accounts/index.js +273 -0
  66. package/dist/esm/accounts/index.js.map +1 -0
  67. package/dist/esm/client.d.ts +55 -0
  68. package/dist/esm/client.d.ts.map +1 -0
  69. package/dist/esm/client.js +87 -0
  70. package/dist/esm/client.js.map +1 -0
  71. package/dist/esm/constants/addresses.d.ts +117 -0
  72. package/dist/esm/constants/addresses.d.ts.map +1 -0
  73. package/dist/esm/constants/index.d.ts +31 -0
  74. package/dist/esm/constants/index.d.ts.map +1 -0
  75. package/dist/esm/constants/limits.d.ts +149 -0
  76. package/dist/esm/constants/limits.d.ts.map +1 -0
  77. package/{src/constants/network.ts → dist/esm/constants/network.d.ts} +23 -31
  78. package/dist/esm/constants/network.d.ts.map +1 -0
  79. package/{src/constants/payments.ts → dist/esm/constants/payments.d.ts} +11 -35
  80. package/dist/esm/constants/payments.d.ts.map +1 -0
  81. package/{src/constants/programs.ts → dist/esm/constants/programs.d.ts} +6 -20
  82. package/dist/esm/constants/programs.d.ts.map +1 -0
  83. package/dist/esm/constants/seeds.d.ts +80 -0
  84. package/dist/esm/constants/seeds.d.ts.map +1 -0
  85. package/dist/esm/constants/seeds.js +9 -9
  86. package/dist/esm/constants/seeds.js.map +1 -1
  87. package/dist/esm/constants.d.ts +39 -0
  88. package/dist/esm/constants.d.ts.map +1 -0
  89. package/dist/esm/constants.js +41 -0
  90. package/dist/esm/constants.js.map +1 -0
  91. package/dist/esm/core/client.d.ts +452 -0
  92. package/dist/esm/core/client.d.ts.map +1 -0
  93. package/dist/esm/core/connection.d.ts +305 -0
  94. package/dist/esm/core/connection.d.ts.map +1 -0
  95. package/{src/core/index.ts → dist/esm/core/index.d.ts} +1 -1
  96. package/dist/esm/core/index.d.ts.map +1 -0
  97. package/dist/esm/errors/index.d.ts +276 -0
  98. package/dist/esm/errors/index.d.ts.map +1 -0
  99. package/dist/esm/errors.d.ts +119 -0
  100. package/dist/esm/errors.d.ts.map +1 -0
  101. package/dist/esm/errors.js +252 -0
  102. package/dist/esm/errors.js.map +1 -0
  103. package/dist/esm/events/geyser.d.ts +150 -0
  104. package/dist/esm/events/geyser.d.ts.map +1 -0
  105. package/dist/esm/events/index.d.ts +17 -0
  106. package/dist/esm/events/index.d.ts.map +1 -0
  107. package/dist/esm/events/index.js +34 -122
  108. package/dist/esm/events/index.js.map +1 -1
  109. package/{src/idl/index.ts → dist/esm/idl/index.d.ts} +9 -15
  110. package/dist/esm/idl/index.d.ts.map +1 -0
  111. package/dist/esm/idlTypes.d.ts +925 -0
  112. package/dist/esm/idlTypes.d.ts.map +1 -0
  113. package/dist/esm/idlTypes.js +3 -0
  114. package/dist/esm/idlTypes.js.map +1 -0
  115. package/dist/esm/index.d.ts +12 -0
  116. package/dist/esm/index.d.ts.map +1 -0
  117. package/dist/esm/index.js +15 -88
  118. package/dist/esm/index.js.map +1 -1
  119. package/dist/esm/instructions/agent.d.ts +71 -0
  120. package/dist/esm/instructions/agent.d.ts.map +1 -0
  121. package/dist/esm/instructions/agent.js +86 -0
  122. package/dist/esm/instructions/agent.js.map +1 -0
  123. package/dist/esm/instructions/attestation.d.ts +76 -0
  124. package/dist/esm/instructions/attestation.d.ts.map +1 -0
  125. package/dist/esm/instructions/attestation.js +109 -0
  126. package/dist/esm/instructions/attestation.js.map +1 -0
  127. package/dist/esm/instructions/digest.d.ts +20 -0
  128. package/dist/esm/instructions/digest.d.ts.map +1 -0
  129. package/dist/esm/instructions/digest.js +25 -0
  130. package/dist/esm/instructions/digest.js.map +1 -0
  131. package/dist/esm/instructions/dispute.d.ts +81 -0
  132. package/dist/esm/instructions/dispute.d.ts.map +1 -0
  133. package/dist/esm/instructions/dispute.js +113 -0
  134. package/dist/esm/instructions/dispute.js.map +1 -0
  135. package/dist/esm/instructions/escrow.d.ts +79 -0
  136. package/dist/esm/instructions/escrow.d.ts.map +1 -0
  137. package/dist/esm/instructions/escrow.js +98 -0
  138. package/dist/esm/instructions/escrow.js.map +1 -0
  139. package/dist/esm/instructions/global.d.ts +14 -0
  140. package/dist/esm/instructions/global.d.ts.map +1 -0
  141. package/dist/esm/instructions/global.js +25 -0
  142. package/dist/esm/instructions/global.js.map +1 -0
  143. package/dist/esm/instructions/index.d.ts +14 -0
  144. package/dist/esm/instructions/index.d.ts.map +1 -0
  145. package/dist/esm/instructions/index.js +15 -0
  146. package/dist/esm/instructions/index.js.map +1 -0
  147. package/dist/esm/instructions/indexing.d.ts +150 -0
  148. package/dist/esm/instructions/indexing.d.ts.map +1 -0
  149. package/dist/esm/instructions/indexing.js +218 -0
  150. package/dist/esm/instructions/indexing.js.map +1 -0
  151. package/dist/esm/instructions/memory.d.ts +8 -0
  152. package/dist/esm/instructions/memory.d.ts.map +1 -0
  153. package/dist/esm/instructions/memory.js +234 -0
  154. package/dist/esm/instructions/memory.js.map +1 -0
  155. package/dist/esm/instructions/misc.d.ts +50 -0
  156. package/dist/esm/instructions/misc.d.ts.map +1 -0
  157. package/dist/esm/instructions/misc.js +70 -0
  158. package/dist/esm/instructions/misc.js.map +1 -0
  159. package/dist/esm/instructions/session.d.ts +57 -0
  160. package/dist/esm/instructions/session.d.ts.map +1 -0
  161. package/dist/esm/instructions/session.js +86 -0
  162. package/dist/esm/instructions/session.js.map +1 -0
  163. package/dist/esm/instructions/staking.d.ts +85 -0
  164. package/dist/esm/instructions/staking.d.ts.map +1 -0
  165. package/dist/esm/instructions/staking.js +129 -0
  166. package/dist/esm/instructions/staking.js.map +1 -0
  167. package/dist/esm/instructions/subscription.d.ts +50 -0
  168. package/dist/esm/instructions/subscription.d.ts.map +1 -0
  169. package/dist/esm/instructions/subscription.js +77 -0
  170. package/dist/esm/instructions/subscription.js.map +1 -0
  171. package/dist/esm/instructions/tools.d.ts +88 -0
  172. package/dist/esm/instructions/tools.d.ts.map +1 -0
  173. package/dist/esm/instructions/tools.js +106 -0
  174. package/dist/esm/instructions/tools.js.map +1 -0
  175. package/dist/esm/instructions/vault.d.ts +84 -0
  176. package/dist/esm/instructions/vault.d.ts.map +1 -0
  177. package/dist/esm/instructions/vault.js +103 -0
  178. package/dist/esm/instructions/vault.js.map +1 -0
  179. package/dist/esm/modules/agent.d.ts +166 -0
  180. package/dist/esm/modules/agent.d.ts.map +1 -0
  181. package/dist/esm/modules/attestation.d.ts +96 -0
  182. package/dist/esm/modules/attestation.d.ts.map +1 -0
  183. package/dist/esm/modules/base.d.ts +161 -0
  184. package/dist/esm/modules/base.d.ts.map +1 -0
  185. package/dist/esm/modules/escrow-v2.d.ts +169 -0
  186. package/dist/esm/modules/escrow-v2.d.ts.map +1 -0
  187. package/dist/esm/modules/feedback.d.ts +105 -0
  188. package/dist/esm/modules/feedback.d.ts.map +1 -0
  189. package/{src/modules/index.ts → dist/esm/modules/index.d.ts} +1 -1
  190. package/dist/esm/modules/index.d.ts.map +1 -0
  191. package/dist/esm/modules/indexing.d.ts +200 -0
  192. package/dist/esm/modules/indexing.d.ts.map +1 -0
  193. package/dist/esm/modules/ledger.d.ts +150 -0
  194. package/dist/esm/modules/ledger.d.ts.map +1 -0
  195. package/dist/esm/modules/receipt.d.ts +77 -0
  196. package/dist/esm/modules/receipt.d.ts.map +1 -0
  197. package/dist/esm/modules/staking.d.ts +51 -0
  198. package/dist/esm/modules/staking.d.ts.map +1 -0
  199. package/dist/esm/modules/subscription.d.ts +33 -0
  200. package/dist/esm/modules/subscription.d.ts.map +1 -0
  201. package/dist/esm/modules/tools.d.ts +182 -0
  202. package/dist/esm/modules/tools.d.ts.map +1 -0
  203. package/dist/esm/modules/vault.d.ts +240 -0
  204. package/dist/esm/modules/vault.d.ts.map +1 -0
  205. package/dist/esm/parser/client.d.ts +123 -0
  206. package/dist/esm/parser/client.d.ts.map +1 -0
  207. package/dist/esm/parser/complete.d.ts +90 -0
  208. package/dist/esm/parser/complete.d.ts.map +1 -0
  209. package/{src/parser/index.ts → dist/esm/parser/index.d.ts} +6 -37
  210. package/dist/esm/parser/index.d.ts.map +1 -0
  211. package/dist/esm/parser/inner.d.ts +114 -0
  212. package/dist/esm/parser/inner.d.ts.map +1 -0
  213. package/{src/parser/instructions.ts → dist/esm/parser/instructions.d.ts} +4 -63
  214. package/dist/esm/parser/instructions.d.ts.map +1 -0
  215. package/dist/esm/parser/transaction.d.ts +77 -0
  216. package/dist/esm/parser/transaction.d.ts.map +1 -0
  217. package/dist/esm/parser/types.d.ts +154 -0
  218. package/dist/esm/parser/types.d.ts.map +1 -0
  219. package/{src/pda/index.ts → dist/esm/pda/index.d.ts} +33 -442
  220. package/dist/esm/pda/index.d.ts.map +1 -0
  221. package/dist/esm/pdas/index.d.ts +37 -0
  222. package/dist/esm/pdas/index.d.ts.map +1 -0
  223. package/dist/esm/pdas/index.js +101 -0
  224. package/dist/esm/pdas/index.js.map +1 -0
  225. package/dist/esm/plugin/index.d.ts +171 -0
  226. package/dist/esm/plugin/index.d.ts.map +1 -0
  227. package/dist/esm/plugin/protocols.d.ts +152 -0
  228. package/dist/esm/plugin/protocols.d.ts.map +1 -0
  229. package/dist/esm/plugin/schemas.d.ts +829 -0
  230. package/dist/esm/plugin/schemas.d.ts.map +1 -0
  231. package/dist/esm/postgres/adapter.d.ts +355 -0
  232. package/dist/esm/postgres/adapter.d.ts.map +1 -0
  233. package/dist/esm/postgres/index.d.ts +24 -0
  234. package/dist/esm/postgres/index.d.ts.map +1 -0
  235. package/dist/esm/postgres/serializers.d.ts +30 -0
  236. package/dist/esm/postgres/serializers.d.ts.map +1 -0
  237. package/dist/esm/postgres/sync.d.ts +156 -0
  238. package/dist/esm/postgres/sync.d.ts.map +1 -0
  239. package/dist/esm/postgres/types.d.ts +167 -0
  240. package/dist/esm/postgres/types.d.ts.map +1 -0
  241. package/dist/esm/registries/builder.d.ts +340 -0
  242. package/dist/esm/registries/builder.d.ts.map +1 -0
  243. package/dist/esm/registries/discovery.d.ts +333 -0
  244. package/dist/esm/registries/discovery.d.ts.map +1 -0
  245. package/dist/esm/registries/fairscale.d.ts +680 -0
  246. package/dist/esm/registries/fairscale.d.ts.map +1 -0
  247. package/dist/esm/registries/fairscale.js +1 -1
  248. package/dist/esm/registries/fairscale.js.map +1 -1
  249. package/dist/esm/registries/index.d.ts +52 -0
  250. package/dist/esm/registries/index.d.ts.map +1 -0
  251. package/dist/esm/registries/metaplex-bridge.d.ts +489 -0
  252. package/dist/esm/registries/metaplex-bridge.d.ts.map +1 -0
  253. package/dist/esm/registries/metaplex-bridge.js +1 -1
  254. package/dist/esm/registries/metaplex-bridge.js.map +1 -1
  255. package/dist/esm/registries/session.d.ts +323 -0
  256. package/dist/esm/registries/session.d.ts.map +1 -0
  257. package/dist/esm/registries/x402.d.ts +530 -0
  258. package/dist/esm/registries/x402.d.ts.map +1 -0
  259. package/dist/esm/types/accounts.d.ts +765 -0
  260. package/dist/esm/types/accounts.d.ts.map +1 -0
  261. package/dist/esm/types/common.d.ts +166 -0
  262. package/dist/esm/types/common.d.ts.map +1 -0
  263. package/dist/esm/types/endpoint.d.ts +161 -0
  264. package/dist/esm/types/endpoint.d.ts.map +1 -0
  265. package/dist/esm/types/enums.d.ts +353 -0
  266. package/dist/esm/types/enums.d.ts.map +1 -0
  267. package/dist/esm/types/index.d.ts +29 -0
  268. package/dist/esm/types/index.d.ts.map +1 -0
  269. package/dist/esm/types/instructions.d.ts +400 -0
  270. package/dist/esm/types/instructions.d.ts.map +1 -0
  271. package/dist/esm/types.d.ts +236 -0
  272. package/dist/esm/types.d.ts.map +1 -0
  273. package/dist/esm/types.js +40 -0
  274. package/dist/esm/types.js.map +1 -0
  275. package/dist/esm/utils/anchor-errors.d.ts +61 -0
  276. package/dist/esm/utils/anchor-errors.d.ts.map +1 -0
  277. package/dist/esm/utils/endpoint-validator.d.ts +110 -0
  278. package/dist/esm/utils/endpoint-validator.d.ts.map +1 -0
  279. package/dist/esm/utils/escrow-validation.d.ts +145 -0
  280. package/dist/esm/utils/escrow-validation.d.ts.map +1 -0
  281. package/dist/esm/utils/escrow-validation.js +1 -1
  282. package/dist/esm/utils/escrow-validation.js.map +1 -1
  283. package/{src/utils/hash.ts → dist/esm/utils/hash.d.ts} +4 -42
  284. package/dist/esm/utils/hash.d.ts.map +1 -0
  285. package/dist/esm/utils/index.d.ts +6 -0
  286. package/dist/esm/utils/index.d.ts.map +1 -0
  287. package/dist/esm/utils/index.js +16 -33
  288. package/dist/esm/utils/index.js.map +1 -1
  289. package/dist/esm/utils/merchant-validator.d.ts +176 -0
  290. package/dist/esm/utils/merchant-validator.d.ts.map +1 -0
  291. package/dist/esm/utils/merchant-validator.js +1 -1
  292. package/dist/esm/utils/merchant-validator.js.map +1 -1
  293. package/dist/esm/utils/network-normalizer.d.ts +120 -0
  294. package/dist/esm/utils/network-normalizer.d.ts.map +1 -0
  295. package/dist/esm/utils/priority-fee.d.ts +205 -0
  296. package/dist/esm/utils/priority-fee.d.ts.map +1 -0
  297. package/dist/esm/utils/rpc-strategy.d.ts +172 -0
  298. package/dist/esm/utils/rpc-strategy.d.ts.map +1 -0
  299. package/dist/esm/utils/schemas.d.ts +351 -0
  300. package/dist/esm/utils/schemas.d.ts.map +1 -0
  301. package/{src/utils/serialization.ts → dist/esm/utils/serialization.d.ts} +3 -32
  302. package/dist/esm/utils/serialization.d.ts.map +1 -0
  303. package/dist/esm/utils/validate.d.ts +66 -0
  304. package/dist/esm/utils/validate.d.ts.map +1 -0
  305. package/dist/esm/utils/validate.js +221 -0
  306. package/dist/esm/utils/validate.js.map +1 -0
  307. package/{src/utils/validation.ts → dist/esm/utils/validation.d.ts} +2 -9
  308. package/dist/esm/utils/validation.d.ts.map +1 -0
  309. package/{src/utils/volume-curve.ts → dist/esm/utils/volume-curve.d.ts} +2 -73
  310. package/dist/esm/utils/volume-curve.d.ts.map +1 -0
  311. package/dist/esm/utils/volume-curve.js +1 -1
  312. package/dist/esm/utils/volume-curve.js.map +1 -1
  313. package/dist/esm/utils/x402-direct.d.ts +114 -0
  314. package/dist/esm/utils/x402-direct.d.ts.map +1 -0
  315. package/dist/types/constants/seeds.d.ts +2 -0
  316. package/dist/types/constants/seeds.d.ts.map +1 -1
  317. package/dist/types/core/client.d.ts +21 -6
  318. package/dist/types/core/client.d.ts.map +1 -1
  319. package/dist/types/errors/index.d.ts +59 -0
  320. package/dist/types/errors/index.d.ts.map +1 -1
  321. package/dist/types/index.d.ts +3 -2
  322. package/dist/types/index.d.ts.map +1 -1
  323. package/dist/types/modules/agent.d.ts +9 -19
  324. package/dist/types/modules/agent.d.ts.map +1 -1
  325. package/dist/types/modules/attestation.d.ts.map +1 -1
  326. package/dist/types/modules/base.d.ts +54 -0
  327. package/dist/types/modules/base.d.ts.map +1 -1
  328. package/dist/types/modules/escrow-v2.d.ts +117 -1
  329. package/dist/types/modules/escrow-v2.d.ts.map +1 -1
  330. package/dist/types/modules/index.d.ts +1 -2
  331. package/dist/types/modules/index.d.ts.map +1 -1
  332. package/dist/types/modules/receipt.d.ts +14 -0
  333. package/dist/types/modules/receipt.d.ts.map +1 -1
  334. package/dist/types/modules/subscription.d.ts.map +1 -1
  335. package/dist/types/modules/tools.d.ts +0 -10
  336. package/dist/types/modules/tools.d.ts.map +1 -1
  337. package/dist/types/modules/vault.d.ts.map +1 -1
  338. package/dist/types/pda/index.d.ts +17 -0
  339. package/dist/types/pda/index.d.ts.map +1 -1
  340. package/dist/types/plugin/index.d.ts.map +1 -1
  341. package/dist/types/registries/builder.d.ts +2 -9
  342. package/dist/types/registries/builder.d.ts.map +1 -1
  343. package/dist/types/registries/metaplex-bridge.d.ts.map +1 -1
  344. package/dist/types/registries/session.d.ts +3 -9
  345. package/dist/types/registries/session.d.ts.map +1 -1
  346. package/dist/types/registries/x402.d.ts +2 -9
  347. package/dist/types/registries/x402.d.ts.map +1 -1
  348. package/dist/types/types/accounts.d.ts +52 -0
  349. package/dist/types/types/accounts.d.ts.map +1 -1
  350. package/dist/types/types/index.d.ts +1 -1
  351. package/dist/types/types/index.d.ts.map +1 -1
  352. package/dist/types/utils/rpc-strategy.d.ts +7 -0
  353. package/dist/types/utils/rpc-strategy.d.ts.map +1 -1
  354. package/package.json +59 -183
  355. package/src/constants/addresses.ts +0 -162
  356. package/src/constants/index.ts +0 -69
  357. package/src/constants/limits.ts +0 -165
  358. package/src/constants/seeds.ts +0 -85
  359. package/src/core/client.ts +0 -583
  360. package/src/core/connection.ts +0 -461
  361. package/src/errors/index.ts +0 -346
  362. package/src/events/geyser.ts +0 -384
  363. package/src/events/index.ts +0 -335
  364. package/src/events/yellowstone.d.ts +0 -7
  365. package/src/idl/synapse_agent_sap.json +0 -14595
  366. package/src/index.ts +0 -421
  367. package/src/modules/agent.ts +0 -319
  368. package/src/modules/attestation.ts +0 -168
  369. package/src/modules/base.ts +0 -247
  370. package/src/modules/escrow-v2.ts +0 -871
  371. package/src/modules/escrow.ts +0 -439
  372. package/src/modules/feedback.ts +0 -186
  373. package/src/modules/indexing.ts +0 -444
  374. package/src/modules/ledger.ts +0 -262
  375. package/src/modules/receipt.ts +0 -212
  376. package/src/modules/staking.ts +0 -223
  377. package/src/modules/subscription.ts +0 -147
  378. package/src/modules/tools.ts +0 -454
  379. package/src/modules/vault.ts +0 -558
  380. package/src/parser/client.ts +0 -211
  381. package/src/parser/complete.ts +0 -232
  382. package/src/parser/inner.ts +0 -255
  383. package/src/parser/transaction.ts +0 -200
  384. package/src/parser/types.ts +0 -182
  385. package/src/plugin/index.ts +0 -1224
  386. package/src/plugin/protocols.ts +0 -404
  387. package/src/plugin/schemas.ts +0 -941
  388. package/src/postgres/adapter.ts +0 -904
  389. package/src/postgres/index.ts +0 -59
  390. package/src/postgres/schema.sql +0 -683
  391. package/src/postgres/serializers.ts +0 -485
  392. package/src/postgres/sync.ts +0 -340
  393. package/src/postgres/types.ts +0 -245
  394. package/src/registries/builder.ts +0 -607
  395. package/src/registries/discovery.ts +0 -572
  396. package/src/registries/fairscale.ts +0 -1278
  397. package/src/registries/index.ts +0 -143
  398. package/src/registries/metaplex-bridge.ts +0 -1199
  399. package/src/registries/session.ts +0 -613
  400. package/src/registries/x402.ts +0 -1048
  401. package/src/types/accounts.ts +0 -858
  402. package/src/types/common.ts +0 -187
  403. package/src/types/endpoint.ts +0 -181
  404. package/src/types/enums.ts +0 -333
  405. package/src/types/index.ts +0 -121
  406. package/src/types/instructions.ts +0 -453
  407. package/src/utils/anchor-errors.ts +0 -461
  408. package/src/utils/endpoint-validator.ts +0 -300
  409. package/src/utils/escrow-validation.ts +0 -301
  410. package/src/utils/index.ts +0 -118
  411. package/src/utils/merchant-validator.ts +0 -359
  412. package/src/utils/network-normalizer.ts +0 -240
  413. package/src/utils/priority-fee.ts +0 -325
  414. package/src/utils/rpc-strategy.ts +0 -322
  415. package/src/utils/schemas.ts +0 -359
  416. package/src/utils/x402-direct.ts +0 -370
  417. /package/dist/{types → esm}/modules/escrow.d.ts +0 -0
  418. /package/dist/{types → esm}/modules/escrow.d.ts.map +0 -0
@@ -1,384 +0,0 @@
1
- /**
2
- * @module events/geyser
3
- * @description Yellowstone gRPC (Geyser) event stream for SAP v2.
4
- *
5
- * Drop-in alternative to the WebSocket `connection.onLogs()` pipeline.
6
- * Uses Triton / Helius / any Yellowstone-compatible gRPC endpoint to
7
- * receive program transaction updates with sub-second latency and
8
- * automatic reconnection.
9
- *
10
- * @category Events
11
- * @since v0.6.3
12
- *
13
- * @example
14
- * ```ts
15
- * import { GeyserEventStream } from "@oobe-protocol-labs/synapse-sap-sdk";
16
- * import { EventParser } from "@oobe-protocol-labs/synapse-sap-sdk";
17
- *
18
- * const stream = new GeyserEventStream({
19
- * endpoint: "https://grpc.triton.one",
20
- * token: process.env.GEYSER_TOKEN!,
21
- * programId: "SAPpUhsWLJG1FfkGRcXagEDMrMsWGjbky7AyhGpFETZ",
22
- * });
23
- *
24
- * const parser = new EventParser(program);
25
- *
26
- * stream.on("logs", (logs, signature, slot) => {
27
- * const events = parser.parseLogs(logs);
28
- * for (const event of events) {
29
- * console.log(event.name, event.data);
30
- * }
31
- * });
32
- *
33
- * stream.on("error", (err) => console.error("gRPC error:", err));
34
- *
35
- * await stream.connect();
36
- * // ... later
37
- * await stream.disconnect();
38
- * ```
39
- */
40
-
41
- import { EventEmitter } from "events";
42
-
43
- // ═══════════════════════════════════════════════════════════════════
44
- // Types
45
- // ═══════════════════════════════════════════════════════════════════
46
-
47
- /**
48
- * Configuration for the Yellowstone gRPC event stream.
49
- *
50
- * @interface GeyserConfig
51
- * @since v0.6.3
52
- */
53
- export interface GeyserConfig {
54
- /** Yellowstone gRPC endpoint URL (e.g. "https://grpc.triton.one") */
55
- endpoint: string;
56
-
57
- /** Authentication token for the gRPC endpoint */
58
- token: string;
59
-
60
- /** SAP program ID to filter. Defaults to SAP v2 program. */
61
- programId?: string;
62
-
63
- /**
64
- * Commitment level for the subscription.
65
- * @default "confirmed"
66
- */
67
- commitment?: "processed" | "confirmed" | "finalized";
68
-
69
- /**
70
- * Automatically reconnect on disconnect.
71
- * @default true
72
- */
73
- autoReconnect?: boolean;
74
-
75
- /**
76
- * Delay between reconnection attempts in ms.
77
- * @default 3000
78
- */
79
- reconnectDelayMs?: number;
80
-
81
- /**
82
- * Maximum number of reconnection attempts. 0 = unlimited.
83
- * @default 0
84
- */
85
- maxReconnectAttempts?: number;
86
-
87
- /**
88
- * Include failed transactions in the stream.
89
- * @default false
90
- */
91
- includeFailedTxs?: boolean;
92
- }
93
-
94
- /**
95
- * Events emitted by {@link GeyserEventStream}.
96
- *
97
- * @interface GeyserStreamEvents
98
- * @since v0.6.3
99
- */
100
- export interface GeyserStreamEvents {
101
- /**
102
- * Emitted for each transaction's log messages.
103
- * Same shape as `connection.onLogs()` callback — plug into `EventParser.parseLogs()`.
104
- */
105
- logs: (logs: string[], signature: string, slot: number) => void;
106
-
107
- /** Emitted when the gRPC stream connects or reconnects. */
108
- connected: () => void;
109
-
110
- /** Emitted when the stream disconnects. */
111
- disconnected: (reason: string) => void;
112
-
113
- /** Emitted on transport or parsing errors. */
114
- error: (err: Error) => void;
115
-
116
- /** Emitted on reconnection attempt. */
117
- reconnecting: (attempt: number) => void;
118
- }
119
-
120
- // ═══════════════════════════════════════════════════════════════════
121
- // Constants
122
- // ═══════════════════════════════════════════════════════════════════
123
-
124
- const SAP_PROGRAM_ID = "SAPpUhsWLJG1FfkGRcXagEDMrMsWGjbky7AyhGpFETZ";
125
-
126
- const COMMITMENT_MAP: Record<string, number> = {
127
- processed: 0,
128
- confirmed: 1,
129
- finalized: 2,
130
- };
131
-
132
- // ═══════════════════════════════════════════════════════════════════
133
- // GeyserEventStream
134
- // ═══════════════════════════════════════════════════════════════════
135
-
136
- /**
137
- * Yellowstone gRPC event stream for SAP v2 programs.
138
- *
139
- * Wraps `@triton-one/yellowstone-grpc` and emits parsed log lines
140
- * compatible with the existing {@link EventParser}.
141
- *
142
- * @name GeyserEventStream
143
- * @category Events
144
- * @since v0.6.3
145
- *
146
- * @example
147
- * ```ts
148
- * const stream = new GeyserEventStream({
149
- * endpoint: "https://grpc.triton.one",
150
- * token: process.env.GEYSER_TOKEN!,
151
- * });
152
- *
153
- * stream.on("logs", (logs, sig, slot) => {
154
- * const events = parser.parseLogs(logs);
155
- * events.forEach(e => db.insertEvent(e));
156
- * });
157
- *
158
- * await stream.connect();
159
- * ```
160
- */
161
- export class GeyserEventStream extends EventEmitter {
162
- private readonly config: Required<GeyserConfig>;
163
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- private client: any = null;
165
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
166
- private stream: any = null;
167
- private reconnectAttempts = 0;
168
- private _connected = false;
169
- private _stopped = false;
170
-
171
- constructor(config: GeyserConfig) {
172
- super();
173
- this.config = {
174
- endpoint: config.endpoint,
175
- token: config.token,
176
- programId: config.programId ?? SAP_PROGRAM_ID,
177
- commitment: config.commitment ?? "confirmed",
178
- autoReconnect: config.autoReconnect ?? true,
179
- reconnectDelayMs: config.reconnectDelayMs ?? 3_000,
180
- maxReconnectAttempts: config.maxReconnectAttempts ?? 0,
181
- includeFailedTxs: config.includeFailedTxs ?? false,
182
- };
183
- }
184
-
185
- /** Whether the gRPC stream is currently connected. */
186
- get connected(): boolean {
187
- return this._connected;
188
- }
189
-
190
- /**
191
- * Connect to the Yellowstone gRPC endpoint and start streaming.
192
- *
193
- * @throws If `@triton-one/yellowstone-grpc` is not installed.
194
- */
195
- async connect(): Promise<void> {
196
- this._stopped = false;
197
- this.reconnectAttempts = 0;
198
-
199
- // Dynamic import — yellowstone is an optional peer dependency
200
- let YellowstoneClient: new (...args: unknown[]) => unknown;
201
- try {
202
- const mod = await import("@triton-one/yellowstone-grpc");
203
- YellowstoneClient = mod.default ?? mod.Client;
204
- } catch {
205
- throw new Error(
206
- "Missing dependency: @triton-one/yellowstone-grpc\n" +
207
- "Install it with: npm i @triton-one/yellowstone-grpc",
208
- );
209
- }
210
-
211
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
212
- this.client = new (YellowstoneClient as any)(
213
- this.config.endpoint,
214
- this.config.token,
215
- undefined, // TLS options — use defaults
216
- );
217
-
218
- await this.subscribe();
219
- }
220
-
221
- /**
222
- * Disconnect from the gRPC stream and stop reconnection.
223
- */
224
- async disconnect(): Promise<void> {
225
- this._stopped = true;
226
- this._connected = false;
227
-
228
- if (this.stream) {
229
- try {
230
- this.stream.cancel?.();
231
- this.stream = null;
232
- } catch {
233
- // ignore cancel errors
234
- }
235
- }
236
-
237
- this.emit("disconnected", "manual");
238
- }
239
-
240
- // ─── Internal ──────────────────────────────────────
241
-
242
- private async subscribe(): Promise<void> {
243
- if (!this.client || this._stopped) return;
244
-
245
- try {
246
- this.stream = await this.client.subscribe();
247
- } catch (err) {
248
- this.emit("error", err instanceof Error ? err : new Error(String(err)));
249
- await this.maybeReconnect();
250
- return;
251
- }
252
-
253
- // Build the subscription request
254
- const request = {
255
- accounts: {},
256
- slots: {},
257
- transactions: {
258
- sap: {
259
- vote: false,
260
- failed: this.config.includeFailedTxs,
261
- signature: undefined,
262
- accountInclude: [this.config.programId],
263
- accountExclude: [],
264
- accountRequired: [],
265
- },
266
- },
267
- transactionsStatus: {},
268
- blocks: {},
269
- blocksMeta: {},
270
- entry: {},
271
- commitment: COMMITMENT_MAP[this.config.commitment] ?? 1,
272
- accountsDataSlice: [],
273
- ping: { id: 1 },
274
- };
275
-
276
- // Send subscription
277
- try {
278
- await new Promise<void>((resolve, reject) => {
279
- this.stream.write(request, (err: Error | null) => {
280
- if (err) reject(err);
281
- else resolve();
282
- });
283
- });
284
- } catch (err) {
285
- this.emit("error", err instanceof Error ? err : new Error(String(err)));
286
- await this.maybeReconnect();
287
- return;
288
- }
289
-
290
- this._connected = true;
291
- this.reconnectAttempts = 0;
292
- this.emit("connected");
293
-
294
- // Listen for data
295
- this.stream.on("data", (data: GeyserUpdateMessage) => {
296
- try {
297
- this.handleMessage(data);
298
- } catch (err) {
299
- this.emit("error", err instanceof Error ? err : new Error(String(err)));
300
- }
301
- });
302
-
303
- this.stream.on("error", (err: Error) => {
304
- this.emit("error", err);
305
- });
306
-
307
- this.stream.on("end", () => {
308
- this._connected = false;
309
- this.emit("disconnected", "stream-end");
310
- this.maybeReconnect();
311
- });
312
-
313
- this.stream.on("close", () => {
314
- this._connected = false;
315
- this.emit("disconnected", "stream-close");
316
- this.maybeReconnect();
317
- });
318
- }
319
-
320
- private handleMessage(data: GeyserUpdateMessage): void {
321
- // Respond to pings to keep the stream alive
322
- if (data.ping) {
323
- this.stream?.write({ ping: { id: data.ping.id } }, () => {});
324
- return;
325
- }
326
-
327
- // Extract transaction data
328
- const tx = data.transaction;
329
- if (!tx?.transaction?.transaction) return;
330
-
331
- const meta = tx.transaction.meta;
332
- if (!meta) return;
333
-
334
- // Extract log messages from the transaction meta
335
- const logs: string[] = meta.logMessages ?? [];
336
- if (logs.length === 0) return;
337
-
338
- const signature = tx.transaction.signature
339
- ? Buffer.from(tx.transaction.signature).toString("base64")
340
- : "unknown";
341
-
342
- const slot = Number(tx.slot ?? 0);
343
-
344
- this.emit("logs", logs, signature, slot);
345
- }
346
-
347
- private async maybeReconnect(): Promise<void> {
348
- if (this._stopped || !this.config.autoReconnect) return;
349
-
350
- const max = this.config.maxReconnectAttempts;
351
- if (max > 0 && this.reconnectAttempts >= max) {
352
- this.emit(
353
- "error",
354
- new Error(`Max reconnect attempts (${max}) exceeded`),
355
- );
356
- return;
357
- }
358
-
359
- this.reconnectAttempts++;
360
- this.emit("reconnecting", this.reconnectAttempts);
361
-
362
- await new Promise((r) => setTimeout(r, this.config.reconnectDelayMs));
363
-
364
- if (!this._stopped) {
365
- await this.subscribe();
366
- }
367
- }
368
- }
369
-
370
- // ─── Internal Yellowstone message types ─────────────
371
-
372
- interface GeyserUpdateMessage {
373
- ping?: { id: number };
374
- transaction?: {
375
- slot?: string | number;
376
- transaction?: {
377
- signature?: Uint8Array;
378
- transaction?: unknown;
379
- meta?: {
380
- logMessages?: string[];
381
- };
382
- };
383
- };
384
- }
@@ -1,335 +0,0 @@
1
- /**
2
- * @module events
3
- * @description Decode SAP v2 events from transaction logs.
4
- *
5
- * Uses Anchor's event parser under the hood. Provides a
6
- * strongly-typed, filterable event stream.
7
- *
8
- * @category Events
9
- * @since v0.1.0
10
- *
11
- * @example
12
- * ```ts
13
- * import { EventParser } from "@synapse-sap/sdk/events";
14
- *
15
- * const events = client.events.parseLogs(txLogs);
16
- * for (const event of events) {
17
- * if (event.name === "PaymentSettledEvent") {
18
- * console.log(event.data);
19
- * }
20
- * }
21
- * ```
22
- */
23
-
24
- import { type Program, BN, EventParser as AnchorEventParser } from "@coral-xyz/anchor";
25
- import type { PublicKey } from "@solana/web3.js";
26
-
27
- // ═══════════════════════════════════════════════════════════════════
28
- // Event Data Types
29
- // ═══════════════════════════════════════════════════════════════════
30
-
31
- /**
32
- * Decoded payload for the `RegisteredEvent` emitted when a new agent is registered.
33
- *
34
- * @interface RegisteredEventData
35
- * @name RegisteredEventData
36
- * @description Contains the agent PDA, owner wallet, display name, capabilities list, and timestamp.
37
- * @category Events
38
- * @since v0.1.0
39
- * @see {@link SapEvent}
40
- */
41
- export interface RegisteredEventData {
42
- readonly name: "RegisteredEvent";
43
- readonly data: {
44
- agent: PublicKey;
45
- wallet: PublicKey;
46
- name: string;
47
- capabilities: string[];
48
- timestamp: BN;
49
- };
50
- }
51
-
52
- /**
53
- * Decoded payload for the `UpdatedEvent` emitted when an agent’s profile is modified.
54
- *
55
- * @interface UpdatedEventData
56
- * @name UpdatedEventData
57
- * @description Contains the agent PDA, owner wallet, a list of changed field names, and timestamp.
58
- * @category Events
59
- * @since v0.1.0
60
- * @see {@link SapEvent}
61
- */
62
- export interface UpdatedEventData {
63
- readonly name: "UpdatedEvent";
64
- readonly data: {
65
- agent: PublicKey;
66
- wallet: PublicKey;
67
- updatedFields: string[];
68
- timestamp: BN;
69
- };
70
- }
71
-
72
- /**
73
- * Decoded payload for the `FeedbackEvent` emitted when a reviewer submits feedback.
74
- *
75
- * @interface FeedbackEventData
76
- * @name FeedbackEventData
77
- * @description Contains the agent PDA, reviewer wallet, numeric score, tag, and timestamp.
78
- * @category Events
79
- * @since v0.1.0
80
- * @see {@link SapEvent}
81
- */
82
- export interface FeedbackEventData {
83
- readonly name: "FeedbackEvent";
84
- readonly data: {
85
- agent: PublicKey;
86
- reviewer: PublicKey;
87
- score: number;
88
- tag: string;
89
- timestamp: BN;
90
- };
91
- }
92
-
93
- /**
94
- * Decoded payload for the `MemoryInscribedEvent` emitted when data is written to a vault.
95
- *
96
- * @interface MemoryInscribedEventData
97
- * @name MemoryInscribedEventData
98
- * @description Contains vault/session PDAs, sequence info, encrypted data, nonce, content hash,
99
- * fragment metadata, compression flag, and timestamp.
100
- * @category Events
101
- * @since v0.1.0
102
- * @see {@link SapEvent}
103
- */
104
- export interface MemoryInscribedEventData {
105
- readonly name: "MemoryInscribedEvent";
106
- readonly data: {
107
- vault: PublicKey;
108
- session: PublicKey;
109
- sequence: number;
110
- epochIndex: number;
111
- encryptedData: number[];
112
- nonce: number[];
113
- contentHash: number[];
114
- totalFragments: number;
115
- fragmentIndex: number;
116
- compression: number;
117
- dataLen: number;
118
- nonceVersion: number;
119
- timestamp: BN;
120
- };
121
- }
122
-
123
- /**
124
- * Decoded payload for the `PaymentSettledEvent` emitted when an escrow settlement occurs.
125
- *
126
- * @interface PaymentSettledEventData
127
- * @name PaymentSettledEventData
128
- * @description Contains escrow/agent/depositor PDAs, settlement counts, amounts, service hash,
129
- * and remaining balance.
130
- * @category Events
131
- * @since v0.1.0
132
- * @see {@link SapEvent}
133
- */
134
- export interface PaymentSettledEventData {
135
- readonly name: "PaymentSettledEvent";
136
- readonly data: {
137
- escrow: PublicKey;
138
- agent: PublicKey;
139
- depositor: PublicKey;
140
- callsSettled: BN;
141
- amount: BN;
142
- serviceHash: number[];
143
- totalCallsSettled: BN;
144
- remainingBalance: BN;
145
- timestamp: BN;
146
- };
147
- }
148
-
149
- /**
150
- * Decoded payload for the `LedgerEntryEvent` emitted when data is appended to a ledger.
151
- *
152
- * @interface LedgerEntryEventData
153
- * @name LedgerEntryEventData
154
- * @description Contains session/ledger PDAs, entry index, raw data, content hash,
155
- * Merkle root, and timestamp.
156
- * @category Events
157
- * @since v0.1.0
158
- * @see {@link SapEvent}
159
- */
160
- export interface LedgerEntryEventData {
161
- readonly name: "LedgerEntryEvent";
162
- readonly data: {
163
- session: PublicKey;
164
- ledger: PublicKey;
165
- entryIndex: number;
166
- data: number[];
167
- contentHash: number[];
168
- dataLen: number;
169
- merkleRoot: number[];
170
- timestamp: BN;
171
- };
172
- }
173
-
174
- /**
175
- * Discriminated union of all known SAP v2 event types.
176
- *
177
- * @name SapEvent
178
- * @description Use the `name` discriminant to narrow to a specific event payload.
179
- * @category Events
180
- * @since v0.1.0
181
- */
182
- export type SapEvent =
183
- | RegisteredEventData
184
- | UpdatedEventData
185
- | FeedbackEventData
186
- | MemoryInscribedEventData
187
- | PaymentSettledEventData
188
- | LedgerEntryEventData;
189
-
190
- // ═══════════════════════════════════════════════════════════════════
191
- // Event Name Literals
192
- // ═══════════════════════════════════════════════════════════════════
193
-
194
- /**
195
- * Exhaustive list of all SAP v2 event name strings.
196
- *
197
- * @name SAP_EVENT_NAMES
198
- * @description Frozen array of every event discriminant emitted by the program.
199
- * Useful for log filtering and exhaustive switch checks.
200
- * @category Events
201
- * @since v0.1.0
202
- * @see {@link SapEventName}
203
- */
204
- export const SAP_EVENT_NAMES = [
205
- "RegisteredEvent",
206
- "UpdatedEvent",
207
- "DeactivatedEvent",
208
- "ReactivatedEvent",
209
- "ClosedEvent",
210
- "FeedbackEvent",
211
- "FeedbackUpdatedEvent",
212
- "FeedbackRevokedEvent",
213
- "ReputationUpdatedEvent",
214
- "CallsReportedEvent",
215
- "VaultInitializedEvent",
216
- "SessionOpenedEvent",
217
- "MemoryInscribedEvent",
218
- "EpochOpenedEvent",
219
- "SessionClosedEvent",
220
- "VaultClosedEvent",
221
- "SessionPdaClosedEvent",
222
- "EpochPageClosedEvent",
223
- "VaultNonceRotatedEvent",
224
- "DelegateAddedEvent",
225
- "DelegateRevokedEvent",
226
- "ToolPublishedEvent",
227
- "ToolSchemaInscribedEvent",
228
- "ToolUpdatedEvent",
229
- "ToolDeactivatedEvent",
230
- "ToolReactivatedEvent",
231
- "ToolClosedEvent",
232
- "ToolInvocationReportedEvent",
233
- "CheckpointCreatedEvent",
234
- "EscrowCreatedEvent",
235
- "EscrowDepositedEvent",
236
- "PaymentSettledEvent",
237
- "EscrowWithdrawnEvent",
238
- "BatchSettledEvent",
239
- "AttestationCreatedEvent",
240
- "AttestationRevokedEvent",
241
- "LedgerEntryEvent",
242
- "LedgerSealedEvent",
243
- ] as const;
244
-
245
- /**
246
- * String literal union of all SAP v2 event names.
247
- *
248
- * @name SapEventName
249
- * @description Derived from {@link SAP_EVENT_NAMES} for compile-time exhaustiveness.
250
- * @category Events
251
- * @since v0.1.0
252
- */
253
- export type SapEventName = (typeof SAP_EVENT_NAMES)[number];
254
-
255
- // ═══════════════════════════════════════════════════════════════════
256
- // Event Parser
257
- // ═══════════════════════════════════════════════════════════════════
258
-
259
- /**
260
- * A single parsed event extracted from transaction logs.
261
- *
262
- * @interface ParsedEvent
263
- * @name ParsedEvent
264
- * @description Lightweight container with a `name` discriminant and untyped `data` record.
265
- * Narrow via {@link SapEventName} for type-safe access.
266
- * @category Events
267
- * @since v0.1.0
268
- */
269
- export interface ParsedEvent {
270
- readonly name: string;
271
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
- readonly data: Record<string, any>;
273
- }
274
-
275
- /**
276
- * Typed wrapper around Anchor’s `EventParser` for SAP v2 programs.
277
- *
278
- * Extracts strongly-typed {@link ParsedEvent} objects from raw
279
- * transaction log lines.
280
- *
281
- * @name EventParser
282
- * @description Instantiate with an Anchor `Program` and call {@link EventParser.parseLogs}
283
- * to decode events, or {@link EventParser.filterByName} to narrow results.
284
- * @category Events
285
- * @since v0.1.0
286
- *
287
- * @example
288
- * ```ts
289
- * const parser = new EventParser(program);
290
- * const events = parser.parseLogs(txLogs);
291
- * const settled = parser.filterByName(events, "PaymentSettledEvent");
292
- * ```
293
- */
294
- export class EventParser {
295
- private readonly parser: AnchorEventParser;
296
-
297
- /**
298
- * Create a new `EventParser`.
299
- *
300
- * @param program - An Anchor `Program` instance whose IDL defines the events to decode.
301
- */
302
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
- constructor(program: Program<any>) {
304
- this.parser = new AnchorEventParser(program.programId, program.coder);
305
- }
306
-
307
- /**
308
- * Parse raw transaction log lines into typed events.
309
- *
310
- * @param logs - Array of log strings from a confirmed transaction.
311
- * @returns {ParsedEvent[]} Decoded events found in the logs.
312
- */
313
- parseLogs(logs: string[]): ParsedEvent[] {
314
- const events: ParsedEvent[] = [];
315
- const generator = this.parser.parseLogs(logs);
316
- for (const event of generator) {
317
- events.push(event as ParsedEvent);
318
- }
319
- return events;
320
- }
321
-
322
- /**
323
- * Filter a list of parsed events by event name.
324
- *
325
- * @param events - The full array of {@link ParsedEvent} objects to filter.
326
- * @param name - The {@link SapEventName} to match against.
327
- * @returns {ParsedEvent[]} Only events whose `name` matches.
328
- */
329
- filterByName<N extends SapEventName>(
330
- events: ParsedEvent[],
331
- name: N,
332
- ): ParsedEvent[] {
333
- return events.filter((e) => e.name === name);
334
- }
335
- }