@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
@@ -0,0 +1,221 @@
1
+ // ================================================================
2
+ // synapse-sap-sdk / src/utils/validate.ts
3
+ // Client-side validation — mirrors every on-chain check (v0.13)
4
+ // ================================================================
5
+ import BN from "bn.js";
6
+ import { SettlementSecurity } from "../types";
7
+ import { MAX_CALLS_PER_SETTLEMENT, MAX_VOLUME_CURVE_POINTS, MAX_RECEIPTS_PER_PROOF, MAX_MERKLE_DEPTH, MAX_SUBSCRIPTION_DURATION_YEARS, STAKE_COVERAGE_BPS, MIN_STAKE_LAMPORTS, } from "../constants";
8
+ function fail(msg) {
9
+ return { ok: false, errors: [msg] };
10
+ }
11
+ function ok() {
12
+ return { ok: true, errors: [] };
13
+ }
14
+ /** Validate agent creation parameters */
15
+ export function validateAgentInput(params) {
16
+ if (params.name.length < 3)
17
+ return fail("Agent name must be ≥3 characters");
18
+ if (params.name.length > 64)
19
+ return fail("Agent name must be ≤64 characters");
20
+ if (params.endpointUri.length > 256)
21
+ return fail("Endpoint URI must be ≤256 characters");
22
+ if (!/^https?:\/\//.test(params.endpointUri))
23
+ return fail("Endpoint URI must start with http:// or https://");
24
+ return ok();
25
+ }
26
+ /** Compute max_obligation for an escrow (must match on-chain logic) */
27
+ export function computeEscrowMaxObligation(pricePerCall, maxCalls, initialDeposit) {
28
+ // If maxCalls == 0 → unlimited calls: cap at initialDeposit (v0.13 logic)
29
+ if (maxCalls.isZero())
30
+ return initialDeposit;
31
+ const maxPotential = pricePerCall.mul(maxCalls);
32
+ // On-chain: required = maxPotential * 50% (5000 bps)
33
+ const coverage = maxPotential.mul(new BN(STAKE_COVERAGE_BPS)).div(new BN(10_000));
34
+ const min = new BN(MIN_STAKE_LAMPORTS);
35
+ return BN.max(coverage, min);
36
+ }
37
+ /** Validate escrow V2 creation parameters (mirrors create_escrow_v2 on-chain checks) */
38
+ export function validateEscrowCreate(params) {
39
+ const errors = [];
40
+ // C1: price_per_call > 0
41
+ if (params.pricePerCall.isZero()) {
42
+ errors.push("[C1] price_per_call must be > 0");
43
+ }
44
+ // H6: escrow cannot be already expired
45
+ const nowSec = Math.floor(Date.now() / 1000);
46
+ if (!params.expiresAt.isZero() && params.expiresAt.lt(new BN(nowSec))) {
47
+ errors.push(`[H6] expires_at (${params.expiresAt}) is in the past (${nowSec})`);
48
+ }
49
+ // Volume curve validation
50
+ if (params.volumeCurve.length > MAX_VOLUME_CURVE_POINTS) {
51
+ errors.push(`[C1] Volume curve exceeds ${MAX_VOLUME_CURVE_POINTS} points`);
52
+ }
53
+ for (let i = 0; i < params.volumeCurve.length; i++) {
54
+ const bp = params.volumeCurve[i];
55
+ // C1: price_per_call > 0 for every breakpoint
56
+ if (bp.pricePerCall.isZero()) {
57
+ errors.push(`[C1] Volume curve[${i}] price_per_call must be > 0`);
58
+ }
59
+ // Strictly increasing after_calls
60
+ if (i > 0 && bp.afterCalls <= params.volumeCurve[i - 1].afterCalls) {
61
+ errors.push(`[C1] Volume curve[${i}] after_calls must be > previous`);
62
+ }
63
+ // Non-increasing prices
64
+ if (i > 0 && bp.pricePerCall.gt(params.volumeCurve[i - 1].pricePerCall)) {
65
+ errors.push(`[C1] Volume curve[${i}] price must be ≤ previous`);
66
+ }
67
+ }
68
+ // Settlement security specific
69
+ if (params.settlementSecurity === SettlementSecurity.CoSigned) {
70
+ if (!params.coSigner) {
71
+ errors.push("[H9] CoSigned mode requires a co_signer");
72
+ }
73
+ else if (params.coSigner.equals(params.agentWallet)) {
74
+ errors.push("[H9] co_signer cannot be the agent wallet itself");
75
+ }
76
+ }
77
+ if (params.settlementSecurity === SettlementSecurity.DisputeWindow) {
78
+ if (params.disputeWindowSlots === 0) {
79
+ errors.push("[H6] DisputeWindow mode requires dispute_window_slots > 0");
80
+ }
81
+ if (!params.arbiter) {
82
+ errors.push("[H6] DisputeWindow mode requires an arbiter");
83
+ }
84
+ }
85
+ return errors.length > 0 ? { ok: false, errors } : ok();
86
+ }
87
+ /** Validate deposit parameters */
88
+ export function validateEscrowDeposit(params) {
89
+ const errors = [];
90
+ if (params.amount.isZero())
91
+ errors.push("[C2] Deposit amount must be > 0");
92
+ // H-2: projection must not exceed max_obligation (if set)
93
+ if (!params.escrowMaxObligation.isZero()) {
94
+ const projected = params.escrowBalance.add(params.amount);
95
+ if (projected.gt(params.escrowMaxObligation)) {
96
+ errors.push(`[H2] Deposit would exceed max_obligation (${projected.toString()} > ${params.escrowMaxObligation.toString()})`);
97
+ }
98
+ }
99
+ return errors.length > 0 ? { ok: false, errors } : ok();
100
+ }
101
+ /** Validate settle_calls_v2 parameters (pre-computation) */
102
+ export function validateEscrowSettle(params) {
103
+ const errors = [];
104
+ if (params.callsToSettle <= 0)
105
+ errors.push("callsToSettle must be > 0");
106
+ // C1: max calls per settlement ≤ 10,000
107
+ if (params.callsToSettle > MAX_CALLS_PER_SETTLEMENT) {
108
+ errors.push(`[C1] callsToSettle (${params.callsToSettle}) exceeds MAX_CALLS_PER_SETTLEMENT (${MAX_CALLS_PER_SETTLEMENT})`);
109
+ }
110
+ const callsBN = new BN(params.callsToSettle);
111
+ // Max calls check
112
+ if (!params.escrowMaxCalls.isZero()) {
113
+ const projected = params.escrowTotalCallsSettled
114
+ .add(params.escrowPendingCalls)
115
+ .add(callsBN);
116
+ if (projected.gt(params.escrowMaxCalls)) {
117
+ errors.push(`Max calls would be exceeded (${projected.toString()} > ${params.escrowMaxCalls.toString()})`);
118
+ }
119
+ }
120
+ // Compute amount (client-side mirror of calculate_settle_amount)
121
+ const amount = calculateSettleAmount(params.pricePerCall, params.basePrice ?? params.pricePerCall, params.volumeCurve ?? [], params.callsToSettle);
122
+ // Available balance check
123
+ const available = params.escrowBalance.sub(params.escrowPendingAmount);
124
+ if (available.lt(amount)) {
125
+ errors.push(`Insufficient balance: available ${available.toString()} < required ${amount.toString()}`);
126
+ }
127
+ return errors.length > 0 ? { ok: false, errors, amount: new BN(0) } : { ok: true, errors: [], amount };
128
+ }
129
+ /** Client-side mirror of on-chain calculate_settle_amount (v0.13) */
130
+ export function calculateSettleAmount(pricePerCall, basePrice, volumeCurve, calls) {
131
+ if (calls <= 0)
132
+ return new BN(0);
133
+ if (volumeCurve.length === 0) {
134
+ return pricePerCall.mul(new BN(calls));
135
+ }
136
+ let amount = new BN(0);
137
+ let remaining = calls;
138
+ let cursor = 0;
139
+ let currentPrice = basePrice;
140
+ while (remaining > 0) {
141
+ // Find applicable breakpoint
142
+ let threshold = 0;
143
+ for (const bp of volumeCurve) {
144
+ if (cursor >= bp.afterCalls) {
145
+ currentPrice = bp.pricePerCall;
146
+ }
147
+ else {
148
+ threshold = bp.afterCalls;
149
+ break;
150
+ }
151
+ }
152
+ const range = threshold === 0
153
+ ? remaining
154
+ : Math.min(threshold - cursor, remaining);
155
+ amount = amount.add(new BN(range).mul(currentPrice));
156
+ remaining -= range;
157
+ cursor += range;
158
+ // Safety: break if stuck
159
+ if (range === 0)
160
+ break;
161
+ }
162
+ return amount;
163
+ }
164
+ /** Validate receipt proof submission (C4 bounds check) */
165
+ export function validateReceiptProof(receiptHashes, merkleProofs) {
166
+ const errors = [];
167
+ if (receiptHashes.length > MAX_RECEIPTS_PER_PROOF) {
168
+ errors.push(`[C4] receipt_hashes (${receiptHashes.length}) > MAX_RECEIPTS_PER_PROOF (${MAX_RECEIPTS_PER_PROOF})`);
169
+ }
170
+ if (receiptHashes.length !== merkleProofs.length) {
171
+ errors.push(`receipt_hashes.length (${receiptHashes.length}) !== merkleProofs.length (${merkleProofs.length})`);
172
+ }
173
+ for (let i = 0; i < merkleProofs.length; i++) {
174
+ if (merkleProofs[i].length > MAX_MERKLE_DEPTH) {
175
+ errors.push(`[C4] merkleProofs[${i}] depth (${merkleProofs[i].length}) > MAX_MERKLE_DEPTH (${MAX_MERKLE_DEPTH})`);
176
+ }
177
+ }
178
+ return errors.length > 0 ? { ok: false, errors } : ok();
179
+ }
180
+ /** Validate subscription parameters */
181
+ export function validateSubscriptionCreate(params) {
182
+ const errors = [];
183
+ // M13: cap duration at 10 years
184
+ const maxIntervals = MAX_SUBSCRIPTION_DURATION_YEARS * 365 * 24; // hourly max
185
+ if (params.durationIntervals > maxIntervals && params.durationIntervals <= 0) {
186
+ errors.push(`[M13] Duration exceeds ${MAX_SUBSCRIPTION_DURATION_YEARS} years`);
187
+ }
188
+ if (params.pricePerInterval.isZero()) {
189
+ errors.push("price_per_interval must be > 0");
190
+ }
191
+ return errors.length > 0 ? { ok: false, errors } : ok();
192
+ }
193
+ /** Validate close_escrow_v2 can proceed (H8 check) */
194
+ export function validateEscrowClose(pendingSettlementCount, balance, pendingAmount) {
195
+ const errors = [];
196
+ if (pendingSettlementCount > 0) {
197
+ errors.push(`[H8] Escrow has ${pendingSettlementCount} pending settlement(s). Finalize or dispute before closing.`);
198
+ }
199
+ if (balance.gt(new BN(0)) && !balance.eq(pendingAmount)) {
200
+ errors.push("Escrow has non-pending balance remaining — withdraw first.");
201
+ }
202
+ return errors.length > 0 ? { ok: false, errors } : ok();
203
+ }
204
+ /** Validate agent close (stake + active_escrows) */
205
+ export function validateAgentClose(stakedAmount, activeEscrows, unstakeAvailableAt) {
206
+ const errors = [];
207
+ if (!stakedAmount.isZero()) {
208
+ errors.push("Agent has staked amount — unstake first.");
209
+ }
210
+ if (activeEscrows > 0) {
211
+ errors.push(`[H1] Agent has ${activeEscrows} active escrow(s) — close all escrows first.`);
212
+ }
213
+ if (!unstakeAvailableAt.isZero() && stakedAmount.gt(new BN(0))) {
214
+ const now = Math.floor(Date.now() / 1000);
215
+ if (unstakeAvailableAt.gt(new BN(now))) {
216
+ errors.push("Unstake cooldown has not expired yet.");
217
+ }
218
+ }
219
+ return errors.length > 0 ? { ok: false, errors } : ok();
220
+ }
221
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utils/validate.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@
5
5
  * @category Utils
6
6
  * @since v0.1.0
7
7
  */
8
-
9
8
  /**
10
9
  * Assert that a condition holds, throwing a descriptive error otherwise.
11
10
  *
@@ -26,11 +25,5 @@
26
25
  * assert(name.length <= 64, "Agent name exceeds MAX_NAME_LEN");
27
26
  * ```
28
27
  */
29
- export function assert(
30
- condition: boolean,
31
- message: string,
32
- ): asserts condition {
33
- if (!condition) {
34
- throw new RangeError(`[SAP SDK] ${message}`);
35
- }
36
- }
28
+ export declare function assert(condition: boolean, message: string): asserts condition;
29
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAInB"}
@@ -14,32 +14,8 @@
14
14
  * @since v0.13.0
15
15
  * @packageDocumentation
16
16
  */
17
-
18
17
  import { BN } from "@coral-xyz/anchor";
19
18
  import type { VolumeCurveBreakpoint } from "../types/common";
20
-
21
- const U64_MAX = new BN("18446744073709551615");
22
-
23
- function checkedMul(a: BN, b: BN): BN {
24
- const r = a.mul(b);
25
- if (r.gt(U64_MAX)) {
26
- throw new Error(
27
- `volume-curve: u64 overflow on multiply (${a.toString()} * ${b.toString()})`,
28
- );
29
- }
30
- return r;
31
- }
32
-
33
- function checkedAdd(a: BN, b: BN): BN {
34
- const r = a.add(b);
35
- if (r.gt(U64_MAX)) {
36
- throw new Error(
37
- `volume-curve: u64 overflow on add (${a.toString()} + ${b.toString()})`,
38
- );
39
- }
40
- return r;
41
- }
42
-
43
19
  /**
44
20
  * @function calculateSettleAmount
45
21
  * @description Compute the lamport (or token base-unit) amount the on-chain
@@ -80,52 +56,5 @@ function checkedAdd(a: BN, b: BN): BN {
80
56
  *
81
57
  * @since v0.13.0
82
58
  */
83
- export function calculateSettleAmount(
84
- basePrice: BN,
85
- curve: VolumeCurveBreakpoint[],
86
- totalCallsBefore: BN,
87
- calls: BN,
88
- ): BN {
89
- if (calls.isZero()) return new BN(0);
90
- if (!curve || curve.length === 0) {
91
- return checkedMul(calls, basePrice);
92
- }
93
-
94
- let amount = new BN(0);
95
- let remaining = calls.clone();
96
- let cursor = totalCallsBefore.clone();
97
-
98
- while (remaining.gtn(0)) {
99
- let currentPrice = basePrice;
100
- let nextThreshold: BN | null = null;
101
-
102
- for (const bp of curve) {
103
- const threshold = new BN(bp.afterCalls);
104
- if (cursor.gte(threshold)) {
105
- currentPrice = bp.pricePerCall;
106
- } else {
107
- nextThreshold = threshold;
108
- break;
109
- }
110
- }
111
-
112
- let callsAtPrice: BN;
113
- if (nextThreshold) {
114
- const room = nextThreshold.sub(cursor);
115
- callsAtPrice = BN.min(remaining, room.isNeg() ? new BN(0) : room);
116
- if (callsAtPrice.isZero()) {
117
- // Defensive: shouldn't happen because cursor < nextThreshold by
118
- // the `else` branch above, but guard anyway.
119
- callsAtPrice = remaining;
120
- }
121
- } else {
122
- callsAtPrice = remaining;
123
- }
124
-
125
- amount = checkedAdd(amount, checkedMul(callsAtPrice, currentPrice));
126
- remaining = remaining.sub(callsAtPrice);
127
- cursor = cursor.add(callsAtPrice);
128
- }
129
-
130
- return amount;
131
- }
59
+ export declare function calculateSettleAmount(basePrice: BN, curve: VolumeCurveBreakpoint[], totalCallsBefore: BN, calls: BN): BN;
60
+ //# sourceMappingURL=volume-curve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-curve.d.ts","sourceRoot":"","sources":["../../../src/utils/volume-curve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAwB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,EAAE,EACb,KAAK,EAAE,qBAAqB,EAAE,EAC9B,gBAAgB,EAAE,EAAE,EACpB,KAAK,EAAE,EAAE,GACR,EAAE,CA2CJ"}
@@ -79,7 +79,7 @@ export function calculateSettleAmount(basePrice, curve, totalCallsBefore, calls)
79
79
  let amount = new BN(0);
80
80
  let remaining = calls.clone();
81
81
  let cursor = totalCallsBefore.clone();
82
- while (remaining.gtn(0)) {
82
+ while (remaining.gt(new BN(0))) {
83
83
  let currentPrice = basePrice;
84
84
  let nextThreshold = null;
85
85
  for (const bp of curve) {
@@ -1 +1 @@
1
- {"version":3,"file":"volume-curve.js","sourceRoot":"","sources":["../../../src/utils/volume-curve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"volume-curve.js","sourceRoot":"","sources":["../../../src/utils/volume-curve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @module utils/x402-direct
3
+ * @description Recognize x402 direct SPL token payments on an agent's ATA
4
+ * by scanning transaction history and filtering for x402 patterns.
5
+ *
6
+ * @category Utils
7
+ * @since v0.6.4
8
+ */
9
+ import { type Connection, PublicKey } from "@solana/web3.js";
10
+ /**
11
+ * @interface SettlementPayload
12
+ * @description Settlement metadata from the merchant's PAYMENT-RESPONSE.
13
+ * @category Utils
14
+ * @since v0.6.4
15
+ */
16
+ export interface SettlementPayload {
17
+ /** SHA-256 service hash. */
18
+ readonly serviceHash: string;
19
+ /** Resource identifier. */
20
+ readonly resource: string;
21
+ /** Agent wallet (base58). */
22
+ readonly agentWallet: string;
23
+ /** Depositor wallet (base58). */
24
+ readonly depositorWallet: string;
25
+ /** Amount in smallest unit. */
26
+ readonly amount: string;
27
+ /** Service timestamp. */
28
+ readonly timestamp: number;
29
+ }
30
+ /**
31
+ * @interface X402DirectPayment
32
+ * @description A recognized x402 direct SPL transfer on an agent's ATA.
33
+ * @category Utils
34
+ * @since v0.6.4
35
+ */
36
+ export interface X402DirectPayment {
37
+ /** Transaction signature. */
38
+ readonly signature: string;
39
+ /** Transfer amount (in smallest token unit). */
40
+ readonly amount: bigint;
41
+ /** Source ATA (payer). */
42
+ readonly payerAta: PublicKey;
43
+ /** Destination ATA (payTo / agent). */
44
+ readonly payeeAta: PublicKey;
45
+ /** Token mint used for transfer. */
46
+ readonly mint: PublicKey;
47
+ /** Memo data (if a Memo instruction was included). */
48
+ readonly memo: string | null;
49
+ /** Matched settlement payload (if server-side verification is available). */
50
+ readonly settlement: SettlementPayload | null;
51
+ /** Block time (unix seconds). */
52
+ readonly blockTime: number | null;
53
+ /** Slot number. */
54
+ readonly slot: number;
55
+ }
56
+ /**
57
+ * @interface GetX402DirectOptions
58
+ * @description Options for {@link getX402DirectPayments}.
59
+ * @category Utils
60
+ * @since v0.6.4
61
+ */
62
+ export interface GetX402DirectOptions {
63
+ /** Max signatures to scan (default: 100). */
64
+ readonly limit?: number;
65
+ /** Only return transfers from this specific payer. */
66
+ readonly filterPayer?: PublicKey;
67
+ /** Known settlements from server-side PAYMENT-RESPONSE logs.
68
+ * Used for deterministic hash matching. */
69
+ readonly knownSettlements?: SettlementPayload[];
70
+ /** Only include payments that match x402 memo prefix. Default: false. */
71
+ readonly requireMemo?: boolean;
72
+ /** Scan before this TX signature (pagination). */
73
+ readonly before?: string;
74
+ /** Scan after this TX signature (pagination). */
75
+ readonly until?: string;
76
+ }
77
+ /**
78
+ * @name getX402DirectPayments
79
+ * @description Scan an agent's ATA for x402 direct payments.
80
+ *
81
+ * Fetches recent transaction signatures for the given `payTo` ATA,
82
+ * inspects each transaction for SPL token transfers, and filters
83
+ * for x402 payment patterns (memo prefix, settlement hash match, etc.).
84
+ *
85
+ * @param connection - Solana RPC connection.
86
+ * @param payToAta - The agent's receiving ATA (e.g. USDC ATA of Syra).
87
+ * @param opts - Filter and pagination options.
88
+ * @returns Array of recognized x402 direct payments, newest first.
89
+ *
90
+ * @category Utils
91
+ * @since v0.6.4
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * import { getX402DirectPayments, findATA } from "@oobe-protocol-labs/synapse-sap-sdk";
96
+ *
97
+ * const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
98
+ * const payToAta = findATA(agentWallet, USDC_MINT);
99
+ *
100
+ * const payments = await getX402DirectPayments(connection, payToAta, {
101
+ * limit: 50,
102
+ * knownSettlements: savedSettlements, // from your API PAYMENT-RESPONSE logs
103
+ * });
104
+ *
105
+ * for (const p of payments) {
106
+ * console.log(`${p.signature}: ${p.amount} from ${p.payerAta.toBase58()}`);
107
+ * if (p.settlement) {
108
+ * console.log(` Matched settlement: ${p.settlement.serviceHash}`);
109
+ * }
110
+ * }
111
+ * ```
112
+ */
113
+ export declare function getX402DirectPayments(connection: Connection, payToAta: PublicKey, opts?: GetX402DirectOptions): Promise<X402DirectPayment[]>;
114
+ //# sourceMappingURL=x402-direct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-direct.d.ts","sourceRoot":"","sources":["../../../src/utils/x402-direct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAOzB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9C,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC;gDAC4C;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA6KD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmE9B"}
@@ -56,6 +56,8 @@ export declare const SEEDS: {
56
56
  readonly SUBSCRIPTION: "sap_sub";
57
57
  readonly SHARD: "sap_shard";
58
58
  readonly INDEX_PAGE: "sap_idx_page";
59
+ /** v0.12 — On-chain pricing menu for escrow price validation. Seeds: `["sap_pricing", agent_pda]`. */
60
+ readonly PRICING: "sap_pricing";
59
61
  /**
60
62
  * @since v0.10.0 — Anti-replay receipt PDA bound to (escrow, service_hash) or (escrow, batch_root).
61
63
  * Created via `init` on every settle_calls / settle_batch / settle_calls_v2; replays fail.
@@ -1 +1 @@
1
- {"version":3,"file":"seeds.d.ts","sourceRoot":"","sources":["../../../src/constants/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BhB;;;OAGG;;IAEH;;;OAGG;;CAEK,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,KAAK,CAAC"}
1
+ {"version":3,"file":"seeds.d.ts","sourceRoot":"","sources":["../../../src/constants/seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BhB,sGAAsG;;IAEtG;;;OAGG;;IAEH;;;OAGG;;CAEK,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,KAAK,CAAC"}
@@ -30,7 +30,6 @@ import { FeedbackModule } from "../modules/feedback";
30
30
  import { IndexingModule } from "../modules/indexing";
31
31
  import { ToolsModule } from "../modules/tools";
32
32
  import { VaultModule } from "../modules/vault";
33
- import { EscrowModule } from "../modules/escrow";
34
33
  import { EscrowV2Module } from "../modules/escrow-v2";
35
34
  import { ReceiptModule } from "../modules/receipt";
36
35
  import { StakingModule } from "../modules/staking";
@@ -208,14 +207,30 @@ export declare class SapClient {
208
207
  get vault(): VaultModule;
209
208
  /**
210
209
  * @name escrow
211
- * @description x402 escrow settlement: create escrow accounts, deposit
212
- * funds, settle payments, and withdraw balances.
213
- * @returns {EscrowModule} The lazily-instantiated `EscrowModule` singleton.
210
+ * @description ⚠️ **DEPRECATED redirected to EscrowV2**
211
+ * `client.escrow` now returns {@link EscrowV2Module} automatically.
212
+ * The legacy v1 `EscrowModule` (`createEscrow`, `depositEscrow`, `settleCalls`,
213
+ * `withdrawEscrow`, `closeEscrow`, `batchSettle`) was removed from the on-chain
214
+ * program in v0.12. All escrow operations are now V2-only (USDC-only, dispute
215
+ * support, pricing validation).
216
+ *
217
+ * ```ts
218
+ * // ✅ v0.12+ — works via automatic redirection
219
+ * await client.escrow.create(agentWallet, args);
220
+ * // ^ this calls EscrowV2Module.create() internally
221
+ *
222
+ * // ✅ Explicit (same result)
223
+ * await client.escrowV2.create(agentWallet, args);
224
+ * ```
225
+ *
226
+ * @returns {EscrowV2Module} The lazily-instantiated `EscrowV2Module` singleton.
214
227
  * @category Modules
215
228
  * @since v0.1.0
216
- * @see {@link EscrowModule}
229
+ * @updated v0.12 — redirects to EscrowV2Module (v1 instructions removed from program)
230
+ * @see {@link EscrowV2Module}
231
+ * @deprecated v0.12 — v1 escrow removed; `escrow` getter now auto-redirects to `escrowV2`.
217
232
  */
218
- get escrow(): EscrowModule;
233
+ get escrow(): EscrowV2Module;
219
234
  /**
220
235
  * @name escrowV2
221
236
  * @description V2 escrow settlement with dispute windows, co-signing,
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -273,4 +273,63 @@ export declare class SapPermissionError extends SapError {
273
273
  */
274
274
  constructor(message: string);
275
275
  }
276
+ /**
277
+ * @name SapTransientError
278
+ * @description Wraps RPC failures that are *retryable* — network errors,
279
+ * 429 rate limits, 5xx, blockhash-not-found, node-behind, fetch-failed.
280
+ *
281
+ * SDK fetch helpers (`safeFetch`) auto-retry these with exponential backoff
282
+ * before re-throwing. Callers can also catch and retry at higher layers.
283
+ *
284
+ * @category Errors
285
+ * @since v0.13.1
286
+ * @extends {SapError}
287
+ */
288
+ export declare class SapTransientError extends SapError {
289
+ readonly attempt: number;
290
+ readonly cause?: unknown;
291
+ constructor(message: string, opts?: {
292
+ attempt?: number;
293
+ cause?: unknown;
294
+ });
295
+ }
296
+ /**
297
+ * @name SapAlreadyExistsError
298
+ * @description Thrown when an `init` instruction would collide with an
299
+ * already-existing PDA. Detected by SDK preflight — prevents a wasted tx
300
+ * and surfaces an idempotent success path to callers.
301
+ *
302
+ * @category Errors
303
+ * @since v0.13.1
304
+ * @extends {SapError}
305
+ */
306
+ export declare class SapAlreadyExistsError extends SapError {
307
+ readonly address: string;
308
+ readonly accountType?: string;
309
+ constructor(address: string, accountType?: string, hint?: string);
310
+ }
311
+ /**
312
+ * @name SapIdempotencyError
313
+ * @description Thrown by `safeRpc` when a transaction would replay an action
314
+ * that has already been recorded on-chain (e.g. settlement-receipt PDA already
315
+ * exists). Treat as a non-fatal idempotent success and drop the queued action.
316
+ *
317
+ * @category Errors
318
+ * @since v0.13.1
319
+ * @extends {SapError}
320
+ */
321
+ export declare class SapIdempotencyError extends SapError {
322
+ readonly receiptAddress?: string;
323
+ constructor(message: string, receiptAddress?: string);
324
+ }
325
+ /**
326
+ * @name isTransientRpcError
327
+ * @description Heuristic classifier for RPC errors. Returns `true` for
328
+ * network failures, rate limits, 5xx, blockhash-not-found, node-behind,
329
+ * fetch-failed, ECONNRESET, ETIMEDOUT, socket hang up.
330
+ *
331
+ * @category Errors
332
+ * @since v0.13.1
333
+ */
334
+ export declare function isTransientRpcError(err: unknown): boolean;
276
335
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,SAAc;CAOhD;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAK5C;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC;;;;;OAKG;gBAED,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;IAQvD;;;;;;;;;;;;;;;;;;OAkBG;IAEH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;CAOzC;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAOlD;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK/C;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C;;OAEG;gBACS,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,SAAc;CAOhD;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAK5C;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC;;;;;OAKG;gBAED,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;IAQvD;;;;;;;;;;;;;;;;;;OAkBG;IAEH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;CAOzC;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;CAOlD;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK/C;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C;;OAEG;gBACS,OAAO,EAAE,MAAM;CAI5B;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBACb,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAM1E;AAED;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAQjE;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;gBACrB,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;CAKrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAsBzD"}