@oobe-protocol-labs/synapse-sap-sdk 0.14.0 → 0.15.1

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 (513) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +986 -0
  3. package/dist/cjs/client.js +31 -14
  4. package/dist/cjs/client.js.map +1 -1
  5. package/dist/cjs/constants/addresses.js +143 -0
  6. package/dist/cjs/constants/addresses.js.map +1 -0
  7. package/dist/cjs/constants/index.js +64 -0
  8. package/dist/cjs/constants/index.js.map +1 -0
  9. package/dist/cjs/constants/limits.js +161 -0
  10. package/dist/cjs/constants/limits.js.map +1 -0
  11. package/dist/cjs/constants/network.js +81 -0
  12. package/dist/cjs/constants/network.js.map +1 -0
  13. package/dist/cjs/constants/payments.js +137 -0
  14. package/dist/cjs/constants/payments.js.map +1 -0
  15. package/dist/cjs/constants/programs.js +78 -0
  16. package/dist/cjs/constants/programs.js.map +1 -0
  17. package/dist/cjs/constants/seeds.js +76 -0
  18. package/dist/cjs/constants/seeds.js.map +1 -0
  19. package/dist/cjs/constants.js +39 -32
  20. package/dist/cjs/constants.js.map +1 -1
  21. package/dist/cjs/core/client.js +546 -0
  22. package/dist/cjs/core/client.js.map +1 -0
  23. package/dist/cjs/core/connection.js +350 -0
  24. package/dist/cjs/core/connection.js.map +1 -0
  25. package/dist/cjs/core/index.js +25 -0
  26. package/dist/cjs/core/index.js.map +1 -0
  27. package/dist/cjs/errors/index.js +334 -0
  28. package/dist/cjs/errors/index.js.map +1 -0
  29. package/dist/cjs/errors.js +15 -5
  30. package/dist/cjs/errors.js.map +1 -1
  31. package/dist/cjs/events/geyser.js +295 -0
  32. package/dist/cjs/events/geyser.js.map +1 -0
  33. package/dist/cjs/events/index.js +32 -26
  34. package/dist/cjs/events/index.js.map +1 -1
  35. package/dist/cjs/idl/index.js +63 -0
  36. package/dist/cjs/idl/index.js.map +1 -0
  37. package/dist/cjs/idl/synapse_agent_sap.json +14595 -0
  38. package/dist/cjs/instructions/agent.js +1 -0
  39. package/dist/cjs/instructions/agent.js.map +1 -1
  40. package/dist/cjs/instructions/attestation.js +1 -0
  41. package/dist/cjs/instructions/attestation.js.map +1 -1
  42. package/dist/cjs/instructions/digest.js +1 -0
  43. package/dist/cjs/instructions/digest.js.map +1 -1
  44. package/dist/cjs/instructions/dispute.js +1 -0
  45. package/dist/cjs/instructions/dispute.js.map +1 -1
  46. package/dist/cjs/instructions/escrow.js +1 -0
  47. package/dist/cjs/instructions/escrow.js.map +1 -1
  48. package/dist/cjs/instructions/global.js +1 -0
  49. package/dist/cjs/instructions/global.js.map +1 -1
  50. package/dist/cjs/instructions/indexing.js +1 -0
  51. package/dist/cjs/instructions/indexing.js.map +1 -1
  52. package/dist/cjs/instructions/misc.js +1 -0
  53. package/dist/cjs/instructions/misc.js.map +1 -1
  54. package/dist/cjs/instructions/session.js +1 -0
  55. package/dist/cjs/instructions/session.js.map +1 -1
  56. package/dist/cjs/instructions/staking.js +1 -0
  57. package/dist/cjs/instructions/staking.js.map +1 -1
  58. package/dist/cjs/instructions/subscription.js +1 -0
  59. package/dist/cjs/instructions/subscription.js.map +1 -1
  60. package/dist/cjs/instructions/tools.js +1 -0
  61. package/dist/cjs/instructions/tools.js.map +1 -1
  62. package/dist/cjs/instructions/vault.js +1 -0
  63. package/dist/cjs/instructions/vault.js.map +1 -1
  64. package/dist/cjs/modules/agent.js +272 -0
  65. package/dist/cjs/modules/agent.js.map +1 -0
  66. package/dist/cjs/modules/attestation.js +147 -0
  67. package/dist/cjs/modules/attestation.js.map +1 -0
  68. package/dist/cjs/modules/base.js +189 -0
  69. package/dist/cjs/modules/base.js.map +1 -0
  70. package/dist/cjs/modules/escrow-v2.js +607 -0
  71. package/dist/cjs/modules/escrow-v2.js.map +1 -0
  72. package/dist/cjs/modules/escrow.js +336 -0
  73. package/dist/cjs/modules/escrow.js.map +1 -0
  74. package/dist/cjs/modules/feedback.js +166 -0
  75. package/dist/cjs/modules/feedback.js.map +1 -0
  76. package/dist/cjs/modules/index.js +43 -0
  77. package/dist/cjs/modules/index.js.map +1 -0
  78. package/dist/cjs/modules/indexing.js +375 -0
  79. package/dist/cjs/modules/indexing.js.map +1 -0
  80. package/dist/cjs/modules/ledger.js +234 -0
  81. package/dist/cjs/modules/ledger.js.map +1 -0
  82. package/dist/cjs/modules/receipt.js +148 -0
  83. package/dist/cjs/modules/receipt.js.map +1 -0
  84. package/dist/cjs/modules/staking.js +159 -0
  85. package/dist/cjs/modules/staking.js.map +1 -0
  86. package/dist/cjs/modules/subscription.js +96 -0
  87. package/dist/cjs/modules/subscription.js.map +1 -0
  88. package/dist/cjs/modules/tools.js +345 -0
  89. package/dist/cjs/modules/tools.js.map +1 -0
  90. package/dist/cjs/modules/vault.js +427 -0
  91. package/dist/cjs/modules/vault.js.map +1 -0
  92. package/dist/cjs/parser/client.js +146 -0
  93. package/dist/cjs/parser/client.js.map +1 -0
  94. package/dist/cjs/parser/complete.js +177 -0
  95. package/dist/cjs/parser/complete.js.map +1 -0
  96. package/dist/cjs/parser/index.js +57 -0
  97. package/dist/cjs/parser/index.js.map +1 -0
  98. package/dist/cjs/parser/inner.js +185 -0
  99. package/dist/cjs/parser/inner.js.map +1 -0
  100. package/dist/cjs/parser/instructions.js +114 -0
  101. package/dist/cjs/parser/instructions.js.map +1 -0
  102. package/dist/cjs/parser/transaction.js +153 -0
  103. package/dist/cjs/parser/transaction.js.map +1 -0
  104. package/dist/cjs/parser/types.js +14 -0
  105. package/dist/cjs/parser/types.js.map +1 -0
  106. package/dist/cjs/pda/index.js +672 -0
  107. package/dist/cjs/pda/index.js.map +1 -0
  108. package/dist/cjs/plugin/index.js +952 -0
  109. package/dist/cjs/plugin/index.js.map +1 -0
  110. package/dist/cjs/plugin/protocols.js +282 -0
  111. package/dist/cjs/plugin/protocols.js.map +1 -0
  112. package/dist/cjs/plugin/schemas.js +863 -0
  113. package/dist/cjs/plugin/schemas.js.map +1 -0
  114. package/dist/cjs/postgres/adapter.js +715 -0
  115. package/dist/cjs/postgres/adapter.js.map +1 -0
  116. package/dist/cjs/postgres/index.js +50 -0
  117. package/dist/cjs/postgres/index.js.map +1 -0
  118. package/dist/cjs/postgres/serializers.js +381 -0
  119. package/dist/cjs/postgres/serializers.js.map +1 -0
  120. package/dist/cjs/postgres/sync.js +289 -0
  121. package/dist/cjs/postgres/sync.js.map +1 -0
  122. package/dist/cjs/postgres/types.js +44 -0
  123. package/dist/cjs/postgres/types.js.map +1 -0
  124. package/dist/cjs/registries/builder.js +414 -0
  125. package/dist/cjs/registries/builder.js.map +1 -0
  126. package/dist/cjs/registries/discovery.js +362 -0
  127. package/dist/cjs/registries/discovery.js.map +1 -0
  128. package/dist/cjs/registries/fairscale.js +639 -0
  129. package/dist/cjs/registries/fairscale.js.map +1 -0
  130. package/dist/cjs/registries/index.js +58 -0
  131. package/dist/cjs/registries/index.js.map +1 -0
  132. package/dist/cjs/registries/metaplex-bridge.js +743 -0
  133. package/dist/cjs/registries/metaplex-bridge.js.map +1 -0
  134. package/dist/cjs/registries/session.js +433 -0
  135. package/dist/cjs/registries/session.js.map +1 -0
  136. package/dist/cjs/registries/x402.js +668 -0
  137. package/dist/cjs/registries/x402.js.map +1 -0
  138. package/dist/cjs/types/accounts.js +13 -0
  139. package/dist/cjs/types/accounts.js.map +1 -0
  140. package/dist/cjs/types/common.js +13 -0
  141. package/dist/cjs/types/common.js.map +1 -0
  142. package/dist/cjs/types/endpoint.js +15 -0
  143. package/dist/cjs/types/endpoint.js.map +1 -0
  144. package/dist/cjs/types/enums.js +269 -0
  145. package/dist/cjs/types/enums.js.map +1 -0
  146. package/dist/cjs/types/index.js +41 -0
  147. package/dist/cjs/types/index.js.map +1 -0
  148. package/dist/cjs/types/instructions.js +92 -0
  149. package/dist/cjs/types/instructions.js.map +1 -0
  150. package/dist/cjs/types.js +4 -1
  151. package/dist/cjs/types.js.map +1 -1
  152. package/dist/cjs/utils/anchor-errors.js +453 -0
  153. package/dist/cjs/utils/anchor-errors.js.map +1 -0
  154. package/dist/cjs/utils/endpoint-validator.js +232 -0
  155. package/dist/cjs/utils/endpoint-validator.js.map +1 -0
  156. package/dist/cjs/utils/escrow-validation.js +219 -0
  157. package/dist/cjs/utils/escrow-validation.js.map +1 -0
  158. package/dist/cjs/utils/hash.js +109 -0
  159. package/dist/cjs/utils/hash.js.map +1 -0
  160. package/dist/cjs/utils/index.js +10 -4
  161. package/dist/cjs/utils/index.js.map +1 -1
  162. package/dist/cjs/utils/merchant-validator.js +246 -0
  163. package/dist/cjs/utils/merchant-validator.js.map +1 -0
  164. package/dist/cjs/utils/network-normalizer.js +236 -0
  165. package/dist/cjs/utils/network-normalizer.js.map +1 -0
  166. package/dist/cjs/utils/priority-fee.js +215 -0
  167. package/dist/cjs/utils/priority-fee.js.map +1 -0
  168. package/dist/cjs/utils/rpc-strategy.js +239 -0
  169. package/dist/cjs/utils/rpc-strategy.js.map +1 -0
  170. package/dist/cjs/utils/schemas.js +331 -0
  171. package/dist/cjs/utils/schemas.js.map +1 -0
  172. package/dist/cjs/utils/serialization.js +105 -0
  173. package/dist/cjs/utils/serialization.js.map +1 -0
  174. package/dist/cjs/utils/validate.js +1 -1
  175. package/dist/cjs/utils/validate.js.map +1 -1
  176. package/dist/cjs/utils/validation.js +36 -0
  177. package/dist/cjs/utils/validation.js.map +1 -0
  178. package/dist/cjs/utils/volume-curve.js +117 -0
  179. package/dist/cjs/utils/volume-curve.js.map +1 -0
  180. package/dist/cjs/utils/x402-direct.js +231 -0
  181. package/dist/cjs/utils/x402-direct.js.map +1 -0
  182. package/dist/esm/client.js +31 -14
  183. package/dist/esm/client.js.map +1 -1
  184. package/dist/esm/constants/addresses.d.ts +117 -0
  185. package/dist/esm/constants/addresses.d.ts.map +1 -0
  186. package/dist/esm/constants/addresses.js +140 -0
  187. package/dist/esm/constants/addresses.js.map +1 -0
  188. package/dist/esm/constants/index.d.ts +31 -0
  189. package/dist/esm/constants/index.d.ts.map +1 -0
  190. package/dist/esm/constants/index.js +35 -0
  191. package/dist/esm/constants/index.js.map +1 -0
  192. package/dist/esm/constants/limits.d.ts +149 -0
  193. package/dist/esm/constants/limits.d.ts.map +1 -0
  194. package/dist/esm/constants/limits.js +158 -0
  195. package/dist/esm/constants/limits.js.map +1 -0
  196. package/dist/esm/constants/network.d.ts +81 -0
  197. package/dist/esm/constants/network.d.ts.map +1 -0
  198. package/dist/esm/constants/network.js +78 -0
  199. package/dist/esm/constants/network.js.map +1 -0
  200. package/dist/esm/constants/payments.d.ts +121 -0
  201. package/dist/esm/constants/payments.d.ts.map +1 -0
  202. package/dist/esm/constants/payments.js +131 -0
  203. package/dist/esm/constants/payments.js.map +1 -0
  204. package/dist/esm/constants/programs.d.ts +69 -0
  205. package/dist/esm/constants/programs.d.ts.map +1 -0
  206. package/dist/esm/constants/programs.js +75 -0
  207. package/dist/esm/constants/programs.js.map +1 -0
  208. package/dist/esm/constants/seeds.d.ts +80 -0
  209. package/dist/esm/constants/seeds.d.ts.map +1 -0
  210. package/dist/esm/constants/seeds.js +73 -0
  211. package/dist/esm/constants/seeds.js.map +1 -0
  212. package/dist/esm/constants.d.ts +14 -27
  213. package/dist/esm/constants.d.ts.map +1 -1
  214. package/dist/esm/constants.js +16 -31
  215. package/dist/esm/constants.js.map +1 -1
  216. package/dist/esm/core/client.d.ts +452 -0
  217. package/dist/esm/core/client.d.ts.map +1 -0
  218. package/dist/esm/core/client.js +539 -0
  219. package/dist/esm/core/client.js.map +1 -0
  220. package/dist/esm/core/connection.d.ts +305 -0
  221. package/dist/esm/core/connection.d.ts.map +1 -0
  222. package/dist/esm/core/connection.js +345 -0
  223. package/dist/esm/core/connection.js.map +1 -0
  224. package/dist/esm/core/index.d.ts +20 -0
  225. package/dist/esm/core/index.d.ts.map +1 -0
  226. package/dist/esm/core/index.js +19 -0
  227. package/dist/esm/core/index.js.map +1 -0
  228. package/dist/esm/errors/index.d.ts +276 -0
  229. package/dist/esm/errors/index.d.ts.map +1 -0
  230. package/dist/esm/errors/index.js +325 -0
  231. package/dist/esm/errors/index.js.map +1 -0
  232. package/dist/esm/errors.d.ts +8 -0
  233. package/dist/esm/errors.d.ts.map +1 -1
  234. package/dist/esm/errors.js +8 -0
  235. package/dist/esm/errors.js.map +1 -1
  236. package/dist/esm/events/geyser.d.ts +150 -0
  237. package/dist/esm/events/geyser.d.ts.map +1 -0
  238. package/dist/esm/events/geyser.js +258 -0
  239. package/dist/esm/events/geyser.js.map +1 -0
  240. package/dist/esm/events/index.d.ts +11 -7
  241. package/dist/esm/events/index.d.ts.map +1 -1
  242. package/dist/esm/events/index.js +30 -26
  243. package/dist/esm/events/index.js.map +1 -1
  244. package/dist/esm/idl/index.d.ts +70 -0
  245. package/dist/esm/idl/index.d.ts.map +1 -0
  246. package/dist/esm/idl/index.js +57 -0
  247. package/dist/esm/idl/index.js.map +1 -0
  248. package/dist/esm/idl/synapse_agent_sap.json +14595 -0
  249. package/dist/esm/instructions/agent.js +1 -0
  250. package/dist/esm/instructions/agent.js.map +1 -1
  251. package/dist/esm/instructions/attestation.js +1 -0
  252. package/dist/esm/instructions/attestation.js.map +1 -1
  253. package/dist/esm/instructions/digest.js +1 -0
  254. package/dist/esm/instructions/digest.js.map +1 -1
  255. package/dist/esm/instructions/dispute.js +1 -0
  256. package/dist/esm/instructions/dispute.js.map +1 -1
  257. package/dist/esm/instructions/escrow.js +1 -0
  258. package/dist/esm/instructions/escrow.js.map +1 -1
  259. package/dist/esm/instructions/global.js +1 -0
  260. package/dist/esm/instructions/global.js.map +1 -1
  261. package/dist/esm/instructions/indexing.js +1 -0
  262. package/dist/esm/instructions/indexing.js.map +1 -1
  263. package/dist/esm/instructions/misc.js +1 -0
  264. package/dist/esm/instructions/misc.js.map +1 -1
  265. package/dist/esm/instructions/session.js +1 -0
  266. package/dist/esm/instructions/session.js.map +1 -1
  267. package/dist/esm/instructions/staking.js +1 -0
  268. package/dist/esm/instructions/staking.js.map +1 -1
  269. package/dist/esm/instructions/subscription.js +1 -0
  270. package/dist/esm/instructions/subscription.js.map +1 -1
  271. package/dist/esm/instructions/tools.js +1 -0
  272. package/dist/esm/instructions/tools.js.map +1 -1
  273. package/dist/esm/instructions/vault.js +1 -0
  274. package/dist/esm/instructions/vault.js.map +1 -1
  275. package/dist/esm/modules/agent.d.ts +166 -0
  276. package/dist/esm/modules/agent.d.ts.map +1 -0
  277. package/dist/esm/modules/agent.js +268 -0
  278. package/dist/esm/modules/agent.js.map +1 -0
  279. package/dist/esm/modules/attestation.d.ts +96 -0
  280. package/dist/esm/modules/attestation.d.ts.map +1 -0
  281. package/dist/esm/modules/attestation.js +143 -0
  282. package/dist/esm/modules/attestation.js.map +1 -0
  283. package/dist/esm/modules/base.d.ts +161 -0
  284. package/dist/esm/modules/base.d.ts.map +1 -0
  285. package/dist/esm/modules/base.js +185 -0
  286. package/dist/esm/modules/base.js.map +1 -0
  287. package/dist/esm/modules/escrow-v2.d.ts +169 -0
  288. package/dist/esm/modules/escrow-v2.d.ts.map +1 -0
  289. package/dist/esm/modules/escrow-v2.js +603 -0
  290. package/dist/esm/modules/escrow-v2.js.map +1 -0
  291. package/dist/esm/modules/escrow.d.ts +168 -0
  292. package/dist/esm/modules/escrow.d.ts.map +1 -0
  293. package/dist/esm/modules/escrow.js +332 -0
  294. package/dist/esm/modules/escrow.js.map +1 -0
  295. package/dist/esm/modules/feedback.d.ts +105 -0
  296. package/dist/esm/modules/feedback.d.ts.map +1 -0
  297. package/dist/esm/modules/feedback.js +162 -0
  298. package/dist/esm/modules/feedback.js.map +1 -0
  299. package/dist/esm/modules/index.d.ts +28 -0
  300. package/dist/esm/modules/index.d.ts.map +1 -0
  301. package/dist/esm/modules/index.js +27 -0
  302. package/dist/esm/modules/index.js.map +1 -0
  303. package/dist/esm/modules/indexing.d.ts +200 -0
  304. package/dist/esm/modules/indexing.d.ts.map +1 -0
  305. package/dist/esm/modules/indexing.js +371 -0
  306. package/dist/esm/modules/indexing.js.map +1 -0
  307. package/dist/esm/modules/ledger.d.ts +150 -0
  308. package/dist/esm/modules/ledger.d.ts.map +1 -0
  309. package/dist/esm/modules/ledger.js +230 -0
  310. package/dist/esm/modules/ledger.js.map +1 -0
  311. package/dist/esm/modules/receipt.d.ts +77 -0
  312. package/dist/esm/modules/receipt.d.ts.map +1 -0
  313. package/dist/esm/modules/receipt.js +144 -0
  314. package/dist/esm/modules/receipt.js.map +1 -0
  315. package/dist/esm/modules/staking.d.ts +51 -0
  316. package/dist/esm/modules/staking.d.ts.map +1 -0
  317. package/dist/esm/modules/staking.js +155 -0
  318. package/dist/esm/modules/staking.js.map +1 -0
  319. package/dist/esm/modules/subscription.d.ts +33 -0
  320. package/dist/esm/modules/subscription.d.ts.map +1 -0
  321. package/dist/esm/modules/subscription.js +92 -0
  322. package/dist/esm/modules/subscription.js.map +1 -0
  323. package/dist/esm/modules/tools.d.ts +182 -0
  324. package/dist/esm/modules/tools.d.ts.map +1 -0
  325. package/dist/esm/modules/tools.js +341 -0
  326. package/dist/esm/modules/tools.js.map +1 -0
  327. package/dist/esm/modules/vault.d.ts +240 -0
  328. package/dist/esm/modules/vault.d.ts.map +1 -0
  329. package/dist/esm/modules/vault.js +423 -0
  330. package/dist/esm/modules/vault.js.map +1 -0
  331. package/dist/esm/parser/client.d.ts +123 -0
  332. package/dist/esm/parser/client.d.ts.map +1 -0
  333. package/dist/esm/parser/client.js +142 -0
  334. package/dist/esm/parser/client.js.map +1 -0
  335. package/dist/esm/parser/complete.d.ts +90 -0
  336. package/dist/esm/parser/complete.d.ts.map +1 -0
  337. package/dist/esm/parser/complete.js +173 -0
  338. package/dist/esm/parser/complete.js.map +1 -0
  339. package/dist/esm/parser/index.d.ts +40 -0
  340. package/dist/esm/parser/index.d.ts.map +1 -0
  341. package/dist/esm/parser/index.js +43 -0
  342. package/dist/esm/parser/index.js.map +1 -0
  343. package/dist/esm/parser/inner.d.ts +114 -0
  344. package/dist/esm/parser/inner.d.ts.map +1 -0
  345. package/dist/esm/parser/inner.js +180 -0
  346. package/dist/esm/parser/inner.js.map +1 -0
  347. package/dist/esm/parser/instructions.d.ts +76 -0
  348. package/dist/esm/parser/instructions.d.ts.map +1 -0
  349. package/dist/esm/parser/instructions.js +109 -0
  350. package/dist/esm/parser/instructions.js.map +1 -0
  351. package/dist/esm/parser/transaction.d.ts +77 -0
  352. package/dist/esm/parser/transaction.d.ts.map +1 -0
  353. package/dist/esm/parser/transaction.js +149 -0
  354. package/dist/esm/parser/transaction.js.map +1 -0
  355. package/dist/esm/parser/types.d.ts +154 -0
  356. package/dist/esm/parser/types.d.ts.map +1 -0
  357. package/dist/esm/parser/types.js +13 -0
  358. package/dist/esm/parser/types.js.map +1 -0
  359. package/dist/esm/pda/index.d.ts +510 -0
  360. package/dist/esm/pda/index.d.ts.map +1 -0
  361. package/dist/esm/pda/index.js +638 -0
  362. package/dist/esm/pda/index.js.map +1 -0
  363. package/dist/esm/plugin/index.d.ts +171 -0
  364. package/dist/esm/plugin/index.d.ts.map +1 -0
  365. package/dist/esm/plugin/index.js +945 -0
  366. package/dist/esm/plugin/index.js.map +1 -0
  367. package/dist/esm/plugin/protocols.d.ts +152 -0
  368. package/dist/esm/plugin/protocols.d.ts.map +1 -0
  369. package/dist/esm/plugin/protocols.js +279 -0
  370. package/dist/esm/plugin/protocols.js.map +1 -0
  371. package/dist/esm/plugin/schemas.d.ts +829 -0
  372. package/dist/esm/plugin/schemas.d.ts.map +1 -0
  373. package/dist/esm/plugin/schemas.js +860 -0
  374. package/dist/esm/plugin/schemas.js.map +1 -0
  375. package/dist/esm/postgres/adapter.d.ts +355 -0
  376. package/dist/esm/postgres/adapter.d.ts.map +1 -0
  377. package/dist/esm/postgres/adapter.js +678 -0
  378. package/dist/esm/postgres/adapter.js.map +1 -0
  379. package/dist/esm/postgres/index.d.ts +24 -0
  380. package/dist/esm/postgres/index.d.ts.map +1 -0
  381. package/dist/esm/postgres/index.js +27 -0
  382. package/dist/esm/postgres/index.js.map +1 -0
  383. package/dist/esm/postgres/serializers.d.ts +30 -0
  384. package/dist/esm/postgres/serializers.d.ts.map +1 -0
  385. package/dist/esm/postgres/serializers.js +362 -0
  386. package/dist/esm/postgres/serializers.js.map +1 -0
  387. package/dist/esm/postgres/sync.d.ts +156 -0
  388. package/dist/esm/postgres/sync.d.ts.map +1 -0
  389. package/dist/esm/postgres/sync.js +285 -0
  390. package/dist/esm/postgres/sync.js.map +1 -0
  391. package/dist/esm/postgres/types.d.ts +167 -0
  392. package/dist/esm/postgres/types.d.ts.map +1 -0
  393. package/dist/esm/postgres/types.js +41 -0
  394. package/dist/esm/postgres/types.js.map +1 -0
  395. package/dist/esm/registries/builder.d.ts +340 -0
  396. package/dist/esm/registries/builder.d.ts.map +1 -0
  397. package/dist/esm/registries/builder.js +410 -0
  398. package/dist/esm/registries/builder.js.map +1 -0
  399. package/dist/esm/registries/discovery.d.ts +333 -0
  400. package/dist/esm/registries/discovery.d.ts.map +1 -0
  401. package/dist/esm/registries/discovery.js +358 -0
  402. package/dist/esm/registries/discovery.js.map +1 -0
  403. package/dist/esm/registries/fairscale.d.ts +680 -0
  404. package/dist/esm/registries/fairscale.d.ts.map +1 -0
  405. package/dist/esm/registries/fairscale.js +633 -0
  406. package/dist/esm/registries/fairscale.js.map +1 -0
  407. package/dist/esm/registries/index.d.ts +52 -0
  408. package/dist/esm/registries/index.d.ts.map +1 -0
  409. package/dist/esm/registries/index.js +46 -0
  410. package/dist/esm/registries/index.js.map +1 -0
  411. package/dist/esm/registries/metaplex-bridge.d.ts +489 -0
  412. package/dist/esm/registries/metaplex-bridge.d.ts.map +1 -0
  413. package/dist/esm/registries/metaplex-bridge.js +706 -0
  414. package/dist/esm/registries/metaplex-bridge.js.map +1 -0
  415. package/dist/esm/registries/session.d.ts +323 -0
  416. package/dist/esm/registries/session.d.ts.map +1 -0
  417. package/dist/esm/registries/session.js +429 -0
  418. package/dist/esm/registries/session.js.map +1 -0
  419. package/dist/esm/registries/x402.d.ts +530 -0
  420. package/dist/esm/registries/x402.d.ts.map +1 -0
  421. package/dist/esm/registries/x402.js +664 -0
  422. package/dist/esm/registries/x402.js.map +1 -0
  423. package/dist/esm/types/accounts.d.ts +765 -0
  424. package/dist/esm/types/accounts.d.ts.map +1 -0
  425. package/dist/esm/types/accounts.js +12 -0
  426. package/dist/esm/types/accounts.js.map +1 -0
  427. package/dist/esm/types/common.d.ts +166 -0
  428. package/dist/esm/types/common.d.ts.map +1 -0
  429. package/dist/esm/types/common.js +12 -0
  430. package/dist/esm/types/common.js.map +1 -0
  431. package/dist/esm/types/endpoint.d.ts +161 -0
  432. package/dist/esm/types/endpoint.d.ts.map +1 -0
  433. package/dist/esm/types/endpoint.js +14 -0
  434. package/dist/esm/types/endpoint.js.map +1 -0
  435. package/dist/esm/types/enums.d.ts +353 -0
  436. package/dist/esm/types/enums.d.ts.map +1 -0
  437. package/dist/esm/types/enums.js +266 -0
  438. package/dist/esm/types/enums.js.map +1 -0
  439. package/dist/esm/types/index.d.ts +29 -0
  440. package/dist/esm/types/index.d.ts.map +1 -0
  441. package/dist/esm/types/index.js +25 -0
  442. package/dist/esm/types/index.js.map +1 -0
  443. package/dist/esm/types/instructions.d.ts +400 -0
  444. package/dist/esm/types/instructions.d.ts.map +1 -0
  445. package/dist/esm/types/instructions.js +89 -0
  446. package/dist/esm/types/instructions.js.map +1 -0
  447. package/dist/esm/types.d.ts +28 -0
  448. package/dist/esm/types.d.ts.map +1 -1
  449. package/dist/esm/types.js +1 -0
  450. package/dist/esm/types.js.map +1 -1
  451. package/dist/esm/utils/anchor-errors.d.ts +61 -0
  452. package/dist/esm/utils/anchor-errors.d.ts.map +1 -0
  453. package/dist/esm/utils/anchor-errors.js +447 -0
  454. package/dist/esm/utils/anchor-errors.js.map +1 -0
  455. package/dist/esm/utils/endpoint-validator.d.ts +110 -0
  456. package/dist/esm/utils/endpoint-validator.d.ts.map +1 -0
  457. package/dist/esm/utils/endpoint-validator.js +226 -0
  458. package/dist/esm/utils/endpoint-validator.js.map +1 -0
  459. package/dist/esm/utils/escrow-validation.d.ts +145 -0
  460. package/dist/esm/utils/escrow-validation.d.ts.map +1 -0
  461. package/dist/esm/utils/escrow-validation.js +212 -0
  462. package/dist/esm/utils/escrow-validation.js.map +1 -0
  463. package/dist/esm/utils/hash.d.ts +75 -0
  464. package/dist/esm/utils/hash.d.ts.map +1 -0
  465. package/dist/esm/utils/hash.js +103 -0
  466. package/dist/esm/utils/hash.js.map +1 -0
  467. package/dist/esm/utils/index.d.ts +3 -1
  468. package/dist/esm/utils/index.d.ts.map +1 -1
  469. package/dist/esm/utils/index.js +6 -3
  470. package/dist/esm/utils/index.js.map +1 -1
  471. package/dist/esm/utils/merchant-validator.d.ts +176 -0
  472. package/dist/esm/utils/merchant-validator.d.ts.map +1 -0
  473. package/dist/esm/utils/merchant-validator.js +241 -0
  474. package/dist/esm/utils/merchant-validator.js.map +1 -0
  475. package/dist/esm/utils/network-normalizer.d.ts +120 -0
  476. package/dist/esm/utils/network-normalizer.d.ts.map +1 -0
  477. package/dist/esm/utils/network-normalizer.js +229 -0
  478. package/dist/esm/utils/network-normalizer.js.map +1 -0
  479. package/dist/esm/utils/priority-fee.d.ts +205 -0
  480. package/dist/esm/utils/priority-fee.d.ts.map +1 -0
  481. package/dist/esm/utils/priority-fee.js +209 -0
  482. package/dist/esm/utils/priority-fee.js.map +1 -0
  483. package/dist/esm/utils/rpc-strategy.d.ts +172 -0
  484. package/dist/esm/utils/rpc-strategy.d.ts.map +1 -0
  485. package/dist/esm/utils/rpc-strategy.js +231 -0
  486. package/dist/esm/utils/rpc-strategy.js.map +1 -0
  487. package/dist/esm/utils/schemas.d.ts +351 -0
  488. package/dist/esm/utils/schemas.d.ts.map +1 -0
  489. package/dist/esm/utils/schemas.js +320 -0
  490. package/dist/esm/utils/schemas.js.map +1 -0
  491. package/dist/esm/utils/serialization.d.ts +69 -0
  492. package/dist/esm/utils/serialization.d.ts.map +1 -0
  493. package/dist/esm/utils/serialization.js +98 -0
  494. package/dist/esm/utils/serialization.js.map +1 -0
  495. package/dist/esm/utils/validate.js +1 -1
  496. package/dist/esm/utils/validate.js.map +1 -1
  497. package/dist/esm/utils/validation.d.ts +29 -0
  498. package/dist/esm/utils/validation.d.ts.map +1 -0
  499. package/dist/esm/utils/validation.js +33 -0
  500. package/dist/esm/utils/validation.js.map +1 -0
  501. package/dist/esm/utils/volume-curve.d.ts +60 -0
  502. package/dist/esm/utils/volume-curve.d.ts.map +1 -0
  503. package/dist/esm/utils/volume-curve.js +114 -0
  504. package/dist/esm/utils/volume-curve.js.map +1 -0
  505. package/dist/esm/utils/x402-direct.d.ts +114 -0
  506. package/dist/esm/utils/x402-direct.d.ts.map +1 -0
  507. package/dist/esm/utils/x402-direct.js +228 -0
  508. package/dist/esm/utils/x402-direct.js.map +1 -0
  509. package/package.json +2 -2
  510. package/dist/esm/instructions/memory.d.ts +0 -8
  511. package/dist/esm/instructions/memory.d.ts.map +0 -1
  512. package/dist/esm/instructions/memory.js +0 -234
  513. package/dist/esm/instructions/memory.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ /**
2
+ * @module escrow
3
+ * @description x402 escrow settlement layer — create, deposit,
4
+ * settle, withdraw, batch settle, and close escrow accounts.
5
+ *
6
+ * Supports both SOL and SPL token escrows. SPL operations require
7
+ * passing additional `AccountMeta[]` via the `splAccounts` parameter.
8
+ *
9
+ * @category Modules
10
+ * @since v0.1.0
11
+ * @packageDocumentation
12
+ */
13
+ import { type PublicKey, type TransactionSignature, type AccountMeta } from "@solana/web3.js";
14
+ import { BN } from "@coral-xyz/anchor";
15
+ import { BaseModule } from "./base";
16
+ import type { EscrowAccountData, CreateEscrowArgs, Settlement } from "../types";
17
+ import type { SettleOptions } from "../utils/priority-fee";
18
+ /**
19
+ * @name EscrowModule
20
+ * @description Manages x402-compatible escrow accounts for agent micropayments.
21
+ * Provides methods to create, fund, settle, withdraw, batch-settle, close,
22
+ * and fetch escrow PDAs on the Synapse Agent Protocol.
23
+ *
24
+ * @category Modules
25
+ * @since v0.1.0
26
+ * @extends BaseModule
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const sap = new SapClient(provider);
31
+ * // Create a SOL escrow for an agent
32
+ * const sig = await sap.escrow.create(agentWallet, {
33
+ * pricePerCall: new BN(1_000_000),
34
+ * maxCalls: new BN(100),
35
+ * initialDeposit: new BN(100_000_000),
36
+ * expiresAt: null,
37
+ * volumeCurve: null,
38
+ * tokenMint: null,
39
+ * tokenDecimals: null,
40
+ * });
41
+ * ```
42
+ *
43
+ * @deprecated Since v0.7.0 — Use {@link EscrowV2Module} (`client.escrowV2`) instead.
44
+ * V1 escrows lack settlement security, dispute resolution, and staking integration.
45
+ * Existing V1 escrows can be migrated via `client.escrowV2.migrateFromV1()`.
46
+ */
47
+ export declare class EscrowModule extends BaseModule {
48
+ /**
49
+ * @name deriveEscrow
50
+ * @description Derive the `EscrowAccount` PDA for a given agent and depositor.
51
+ * @param agentPda - The agent account PDA.
52
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
53
+ * @returns A tuple of `[PublicKey, bump]` for the escrow PDA.
54
+ * @see {@link deriveEscrow} from `pda/` module for the underlying derivation.
55
+ * @since v0.1.0
56
+ */
57
+ deriveEscrow(agentPda: PublicKey, depositor?: PublicKey): readonly [PublicKey, number];
58
+ /**
59
+ * @name create
60
+ * @description Create a new escrow for agent micropayments.
61
+ *
62
+ * For **SOL escrow**: pass `tokenMint: null` and leave `splAccounts` empty.
63
+ * For **SPL escrow**: pass `tokenMint`, `tokenDecimals`, and provide
64
+ * `splAccounts` with `[depositorAta, escrowAta, tokenMint, tokenProgram]`.
65
+ *
66
+ * @param agentWallet - The wallet of the agent to pay.
67
+ * @param args - Escrow creation parameters (price, max calls, deposit, expiry, volume curve, token info).
68
+ * @param splAccounts - Remaining accounts for SPL token transfers:
69
+ * `[depositorAta, escrowAta, tokenMint, tokenProgram]`. Defaults to `[]`.
70
+ * @returns {Promise<TransactionSignature>} The transaction signature.
71
+ * @since v0.1.0
72
+ */
73
+ create(agentWallet: PublicKey, args: CreateEscrowArgs, splAccounts?: AccountMeta[]): Promise<TransactionSignature>;
74
+ /**
75
+ * @name deposit
76
+ * @description Deposit additional funds into an existing escrow.
77
+ * @param agentWallet - The wallet of the agent associated with the escrow.
78
+ * @param amount - The amount to deposit (lamports for SOL, smallest unit for SPL).
79
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
80
+ * @returns {Promise<TransactionSignature>} The transaction signature.
81
+ * @since v0.1.0
82
+ */
83
+ deposit(agentWallet: PublicKey, amount: BN | number | bigint, splAccounts?: AccountMeta[]): Promise<TransactionSignature>;
84
+ /**
85
+ * @name settle
86
+ * @description Agent settles calls — claims earned funds from the escrow.
87
+ * Must be called by the agent owner wallet.
88
+ * @param depositorWallet - The wallet of the client who funded the escrow.
89
+ * @param callsToSettle - Number of calls to settle payment for.
90
+ * @param serviceHash - A 32-byte SHA-256 hash identifying the service rendered.
91
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
92
+ * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
93
+ * @returns {Promise<TransactionSignature>} The transaction signature.
94
+ * @since v0.1.0
95
+ * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
96
+ */
97
+ settle(depositorWallet: PublicKey, callsToSettle: BN | number | bigint, serviceHash: number[], splAccounts?: AccountMeta[], opts?: SettleOptions): Promise<TransactionSignature>;
98
+ /**
99
+ * @name withdraw
100
+ * @description Client withdraws un-settled funds from their escrow.
101
+ * @param agentWallet - The wallet of the agent associated with the escrow.
102
+ * @param amount - The amount to withdraw (lamports for SOL, smallest unit for SPL).
103
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
104
+ * @returns {Promise<TransactionSignature>} The transaction signature.
105
+ * @since v0.1.0
106
+ */
107
+ withdraw(agentWallet: PublicKey, amount: BN | number | bigint, splAccounts?: AccountMeta[]): Promise<TransactionSignature>;
108
+ /**
109
+ * @name close
110
+ * @description Close an empty escrow PDA (balance must be 0) and reclaim rent.
111
+ * @param agentWallet - The wallet of the agent associated with the escrow.
112
+ * @returns {Promise<TransactionSignature>} The transaction signature.
113
+ * @since v0.1.0
114
+ */
115
+ close(agentWallet: PublicKey): Promise<TransactionSignature>;
116
+ /**
117
+ * @name settleBatch
118
+ * @description Batch settlement — process up to 10 settlements in a single
119
+ * transaction. Must be called by the agent owner wallet.
120
+ *
121
+ * @param depositorWallet - The wallet of the client who funded the escrow.
122
+ * @param settlements - Array of settlement entries (up to 10).
123
+ * @param batchRoot - Optional pre-computed batch root
124
+ * (`sha256(s_0 || s_1 || ... || s_{N-1})`). When omitted the SDK
125
+ * computes it from `settlements[*].serviceHash`. **Required on-chain
126
+ * since v0.10.0** to seed the anti-replay receipt PDA.
127
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
128
+ * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
129
+ * @returns {Promise<TransactionSignature>} The transaction signature.
130
+ *
131
+ * @since v0.1.0
132
+ * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
133
+ * @updated v0.10.0 — Added `batchRoot` argument and required
134
+ * `settlementReceipt` PDA on-chain (anti-replay).
135
+ */
136
+ settleBatch(depositorWallet: PublicKey, settlements: Settlement[], batchRoot?: Uint8Array | number[] | null, splAccounts?: AccountMeta[], opts?: SettleOptions): Promise<TransactionSignature>;
137
+ /**
138
+ * @name fetch
139
+ * @description Fetch a deserialized `EscrowAccount`.
140
+ * @param agentPda - The agent account PDA.
141
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
142
+ * @returns {Promise<EscrowAccountData>} The escrow account data.
143
+ * @throws Will throw if the escrow account does not exist.
144
+ * @since v0.1.0
145
+ */
146
+ fetch(agentPda: PublicKey, depositor?: PublicKey): Promise<EscrowAccountData>;
147
+ /**
148
+ * @name fetchNullable
149
+ * @description Fetch a deserialized `EscrowAccount`, or `null` if it
150
+ * does not exist on-chain.
151
+ * @param agentPda - The agent account PDA.
152
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
153
+ * @returns {Promise<EscrowAccountData | null>} The escrow data or `null`.
154
+ * @since v0.1.0
155
+ */
156
+ fetchNullable(agentPda: PublicKey, depositor?: PublicKey): Promise<EscrowAccountData | null>;
157
+ /**
158
+ * @name fetchByPda
159
+ * @description Fetch an escrow account by its PDA address directly,
160
+ * bypassing PDA derivation.
161
+ * @param escrowPda - The escrow PDA public key.
162
+ * @returns {Promise<EscrowAccountData>} The escrow account data.
163
+ * @throws Will throw if the escrow account does not exist.
164
+ * @since v0.1.0
165
+ */
166
+ fetchByPda(escrowPda: PublicKey): Promise<EscrowAccountData>;
167
+ }
168
+ //# sourceMappingURL=escrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAG1C;;;;;;;;OAQG;IACH,YAAY,CACV,QAAQ,EAAE,SAAS,EACnB,SAAS,CAAC,EAAE,SAAS,GACpB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAM/B;;;;;;;;;;;;;;OAcG;IACG,MAAM,CACV,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,gBAAgB,EACtB,WAAW,GAAE,WAAW,EAAO,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAkChC;;;;;;;;OAQG;IACG,OAAO,CACX,WAAW,EAAE,SAAS,EACtB,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,EAC5B,WAAW,GAAE,WAAW,EAAO,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAiChC;;;;;;;;;;;;OAYG;IACG,MAAM,CACV,eAAe,EAAE,SAAS,EAC1B,aAAa,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,EACnC,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,GAAE,WAAW,EAAO,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,oBAAoB,CAAC;IA4BhC;;;;;;;;OAQG;IACG,QAAQ,CACZ,WAAW,EAAE,SAAS,EACtB,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,EAC5B,WAAW,GAAE,WAAW,EAAO,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAuChC;;;;;;OAMG;IACG,KAAK,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA0BlE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,WAAW,CACf,eAAe,EAAE,SAAS,EAC1B,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,IAAI,EACxC,WAAW,GAAE,WAAW,EAAO,EAC/B,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAgDhC;;;;;;;;OAQG;IACG,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKnF;;;;;;;;OAQG;IACG,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAKlG;;;;;;;;OAQG;IACG,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAGnE"}
@@ -0,0 +1,332 @@
1
+ /**
2
+ * @module escrow
3
+ * @description x402 escrow settlement layer — create, deposit,
4
+ * settle, withdraw, batch settle, and close escrow accounts.
5
+ *
6
+ * Supports both SOL and SPL token escrows. SPL operations require
7
+ * passing additional `AccountMeta[]` via the `splAccounts` parameter.
8
+ *
9
+ * @category Modules
10
+ * @since v0.1.0
11
+ * @packageDocumentation
12
+ */
13
+ import { SystemProgram, } from "@solana/web3.js";
14
+ import { BaseModule } from "./base";
15
+ import { deriveAgent, deriveAgentStats, deriveEscrow, deriveStake, deriveSettlementReceipt, } from "../pda";
16
+ import { buildPriorityFeeIxs, computeBatchSettleCu, buildRpcOptions, } from "../utils/priority-fee";
17
+ import { computeBatchRoot, hashToArray } from "../utils/hash";
18
+ import { isAcceptedPaymentToken } from "../constants/payments";
19
+ import { throwPredicted } from "../utils/anchor-errors";
20
+ /**
21
+ * @name EscrowModule
22
+ * @description Manages x402-compatible escrow accounts for agent micropayments.
23
+ * Provides methods to create, fund, settle, withdraw, batch-settle, close,
24
+ * and fetch escrow PDAs on the Synapse Agent Protocol.
25
+ *
26
+ * @category Modules
27
+ * @since v0.1.0
28
+ * @extends BaseModule
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const sap = new SapClient(provider);
33
+ * // Create a SOL escrow for an agent
34
+ * const sig = await sap.escrow.create(agentWallet, {
35
+ * pricePerCall: new BN(1_000_000),
36
+ * maxCalls: new BN(100),
37
+ * initialDeposit: new BN(100_000_000),
38
+ * expiresAt: null,
39
+ * volumeCurve: null,
40
+ * tokenMint: null,
41
+ * tokenDecimals: null,
42
+ * });
43
+ * ```
44
+ *
45
+ * @deprecated Since v0.7.0 — Use {@link EscrowV2Module} (`client.escrowV2`) instead.
46
+ * V1 escrows lack settlement security, dispute resolution, and staking integration.
47
+ * Existing V1 escrows can be migrated via `client.escrowV2.migrateFromV1()`.
48
+ */
49
+ export class EscrowModule extends BaseModule {
50
+ // ── PDA helpers ──────────────────────────────────────
51
+ /**
52
+ * @name deriveEscrow
53
+ * @description Derive the `EscrowAccount` PDA for a given agent and depositor.
54
+ * @param agentPda - The agent account PDA.
55
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
56
+ * @returns A tuple of `[PublicKey, bump]` for the escrow PDA.
57
+ * @see {@link deriveEscrow} from `pda/` module for the underlying derivation.
58
+ * @since v0.1.0
59
+ */
60
+ deriveEscrow(agentPda, depositor) {
61
+ return deriveEscrow(agentPda, depositor ?? this.walletPubkey);
62
+ }
63
+ // ── Instructions ─────────────────────────────────────
64
+ /**
65
+ * @name create
66
+ * @description Create a new escrow for agent micropayments.
67
+ *
68
+ * For **SOL escrow**: pass `tokenMint: null` and leave `splAccounts` empty.
69
+ * For **SPL escrow**: pass `tokenMint`, `tokenDecimals`, and provide
70
+ * `splAccounts` with `[depositorAta, escrowAta, tokenMint, tokenProgram]`.
71
+ *
72
+ * @param agentWallet - The wallet of the agent to pay.
73
+ * @param args - Escrow creation parameters (price, max calls, deposit, expiry, volume curve, token info).
74
+ * @param splAccounts - Remaining accounts for SPL token transfers:
75
+ * `[depositorAta, escrowAta, tokenMint, tokenProgram]`. Defaults to `[]`.
76
+ * @returns {Promise<TransactionSignature>} The transaction signature.
77
+ * @since v0.1.0
78
+ */
79
+ async create(agentWallet, args, splAccounts = []) {
80
+ // v0.10.0 client-side guard — surface the on-chain rejection earlier.
81
+ if (!isAcceptedPaymentToken(args.tokenMint ?? null)) {
82
+ throw new Error("createEscrow: tokenMint must be null (SOL) or USDC (mainnet/devnet). " +
83
+ "On-chain will reject with PaymentTokenNotAllowed.");
84
+ }
85
+ const [agentPda] = deriveAgent(agentWallet);
86
+ const [escrowPda] = this.deriveEscrow(agentPda);
87
+ const [stakePda] = deriveStake(agentPda);
88
+ return this.methods
89
+ .createEscrow(args.pricePerCall, args.maxCalls, args.initialDeposit, args.expiresAt, args.volumeCurve, args.tokenMint, args.tokenDecimals)
90
+ .accounts({
91
+ depositor: this.walletPubkey,
92
+ agent: agentPda,
93
+ agentStake: stakePda,
94
+ escrow: escrowPda,
95
+ systemProgram: SystemProgram.programId,
96
+ })
97
+ .remainingAccounts(splAccounts)
98
+ .rpc();
99
+ }
100
+ /**
101
+ * @name deposit
102
+ * @description Deposit additional funds into an existing escrow.
103
+ * @param agentWallet - The wallet of the agent associated with the escrow.
104
+ * @param amount - The amount to deposit (lamports for SOL, smallest unit for SPL).
105
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
106
+ * @returns {Promise<TransactionSignature>} The transaction signature.
107
+ * @since v0.1.0
108
+ */
109
+ async deposit(agentWallet, amount, splAccounts = []) {
110
+ const [agentPda] = deriveAgent(agentWallet);
111
+ const [escrowPda] = this.deriveEscrow(agentPda);
112
+ // v0.13.0 preflight — escrow must exist; SPL deposits must include the
113
+ // 4 expected remaining accounts; SOL deposits must NOT include them.
114
+ const escrow = await this.requireAccountExists("escrowAccount", escrowPda, { predicted: "NotAuthority", hint: "Escrow PDA not found — call createEscrow first" });
115
+ const isSpl = escrow.tokenMint != null;
116
+ if (isSpl && splAccounts.length < 4) {
117
+ throwPredicted("SplTokenRequired", "Pass [depositorAta, escrowAta, tokenMint, tokenProgram] in splAccounts");
118
+ }
119
+ if (!isSpl && splAccounts.length > 0) {
120
+ throwPredicted("InvalidTokenAccount", "SOL escrow does not accept splAccounts; pass an empty array");
121
+ }
122
+ if (BigInt(this.bn(amount).toString()) <= 0n) {
123
+ throwPredicted("InsufficientEscrowBalance", "Deposit amount must be > 0");
124
+ }
125
+ return this.methods
126
+ .depositEscrow(this.bn(amount))
127
+ .accounts({
128
+ depositor: this.walletPubkey,
129
+ escrow: escrowPda,
130
+ systemProgram: SystemProgram.programId,
131
+ })
132
+ .remainingAccounts(splAccounts)
133
+ .rpc();
134
+ }
135
+ /**
136
+ * @name settle
137
+ * @description Agent settles calls — claims earned funds from the escrow.
138
+ * Must be called by the agent owner wallet.
139
+ * @param depositorWallet - The wallet of the client who funded the escrow.
140
+ * @param callsToSettle - Number of calls to settle payment for.
141
+ * @param serviceHash - A 32-byte SHA-256 hash identifying the service rendered.
142
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
143
+ * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
144
+ * @returns {Promise<TransactionSignature>} The transaction signature.
145
+ * @since v0.1.0
146
+ * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
147
+ */
148
+ async settle(depositorWallet, callsToSettle, serviceHash, splAccounts = [], opts) {
149
+ const [agentPda] = deriveAgent(this.walletPubkey);
150
+ const [escrowPda] = deriveEscrow(agentPda, depositorWallet);
151
+ const [statsPda] = deriveAgentStats(agentPda);
152
+ const [receiptPda] = deriveSettlementReceipt(escrowPda, serviceHash);
153
+ const preIxs = buildPriorityFeeIxs(opts);
154
+ const rpcOpts = buildRpcOptions(opts);
155
+ let builder = this.methods
156
+ .settleCalls(this.bn(callsToSettle), serviceHash)
157
+ .accounts({
158
+ wallet: this.walletPubkey,
159
+ agent: agentPda,
160
+ agentStats: statsPda,
161
+ escrow: escrowPda,
162
+ settlementReceipt: receiptPda,
163
+ systemProgram: SystemProgram.programId,
164
+ })
165
+ .remainingAccounts(splAccounts);
166
+ if (preIxs.length > 0) {
167
+ builder = builder.preInstructions(preIxs);
168
+ }
169
+ return builder.rpc(rpcOpts);
170
+ }
171
+ /**
172
+ * @name withdraw
173
+ * @description Client withdraws un-settled funds from their escrow.
174
+ * @param agentWallet - The wallet of the agent associated with the escrow.
175
+ * @param amount - The amount to withdraw (lamports for SOL, smallest unit for SPL).
176
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
177
+ * @returns {Promise<TransactionSignature>} The transaction signature.
178
+ * @since v0.1.0
179
+ */
180
+ async withdraw(agentWallet, amount, splAccounts = []) {
181
+ const [agentPda] = deriveAgent(agentWallet);
182
+ const [escrowPda] = this.deriveEscrow(agentPda);
183
+ // v0.13.0 preflight — verify balance covers amount, token program shape
184
+ // matches, and depositor matches the on-chain depositor.
185
+ const escrow = await this.requireAccountExists("escrowAccount", escrowPda, { predicted: "NotAuthority", hint: "Escrow PDA not found" });
186
+ const wantBN = this.bn(amount);
187
+ const want = BigInt(wantBN.toString());
188
+ if (want <= 0n)
189
+ throwPredicted("InsufficientEscrowBalance", "Withdraw amount must be > 0");
190
+ if (want > BigInt(escrow.balance.toString())) {
191
+ throwPredicted("InsufficientEscrowBalance", `requested ${want}, escrow.balance ${escrow.balance.toString()}`);
192
+ }
193
+ const isSpl = escrow.tokenMint != null;
194
+ if (isSpl && splAccounts.length < 4) {
195
+ throwPredicted("SplTokenRequired", "Pass [depositorAta, escrowAta, tokenMint, tokenProgram]");
196
+ }
197
+ if (!isSpl && splAccounts.length > 0) {
198
+ throwPredicted("InvalidTokenAccount", "SOL escrow does not accept splAccounts");
199
+ }
200
+ return this.methods
201
+ .withdrawEscrow(this.bn(amount))
202
+ .accounts({
203
+ depositor: this.walletPubkey,
204
+ escrow: escrowPda,
205
+ systemProgram: SystemProgram.programId,
206
+ })
207
+ .remainingAccounts(splAccounts)
208
+ .rpc();
209
+ }
210
+ /**
211
+ * @name close
212
+ * @description Close an empty escrow PDA (balance must be 0) and reclaim rent.
213
+ * @param agentWallet - The wallet of the agent associated with the escrow.
214
+ * @returns {Promise<TransactionSignature>} The transaction signature.
215
+ * @since v0.1.0
216
+ */
217
+ async close(agentWallet) {
218
+ const [agentPda] = deriveAgent(agentWallet);
219
+ const [escrowPda] = this.deriveEscrow(agentPda);
220
+ // v0.13.0 preflight — close fails on-chain if balance != 0.
221
+ const escrow = await this.requireAccountExists("escrowAccount", escrowPda, { predicted: "NotAuthority", hint: "Escrow PDA already closed or never created" });
222
+ if (BigInt(escrow.balance.toString()) !== 0n) {
223
+ throwPredicted("EscrowNotEmpty", `balance ${escrow.balance.toString()} > 0 — withdraw remaining funds first`);
224
+ }
225
+ return this.methods
226
+ .closeEscrow()
227
+ .accounts({
228
+ depositor: this.walletPubkey,
229
+ escrow: escrowPda,
230
+ })
231
+ .rpc();
232
+ }
233
+ /**
234
+ * @name settleBatch
235
+ * @description Batch settlement — process up to 10 settlements in a single
236
+ * transaction. Must be called by the agent owner wallet.
237
+ *
238
+ * @param depositorWallet - The wallet of the client who funded the escrow.
239
+ * @param settlements - Array of settlement entries (up to 10).
240
+ * @param batchRoot - Optional pre-computed batch root
241
+ * (`sha256(s_0 || s_1 || ... || s_{N-1})`). When omitted the SDK
242
+ * computes it from `settlements[*].serviceHash`. **Required on-chain
243
+ * since v0.10.0** to seed the anti-replay receipt PDA.
244
+ * @param splAccounts - Remaining accounts for SPL token transfers. Defaults to `[]`.
245
+ * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
246
+ * @returns {Promise<TransactionSignature>} The transaction signature.
247
+ *
248
+ * @since v0.1.0
249
+ * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
250
+ * @updated v0.10.0 — Added `batchRoot` argument and required
251
+ * `settlementReceipt` PDA on-chain (anti-replay).
252
+ */
253
+ async settleBatch(depositorWallet, settlements, batchRoot, splAccounts = [], opts) {
254
+ const [agentPda] = deriveAgent(this.walletPubkey);
255
+ const [escrowPda] = deriveEscrow(agentPda, depositorWallet);
256
+ const [statsPda] = deriveAgentStats(agentPda);
257
+ const rootBytes = batchRoot && batchRoot !== null
258
+ ? batchRoot instanceof Uint8Array
259
+ ? batchRoot
260
+ : Uint8Array.from(batchRoot)
261
+ : computeBatchRoot(settlements.map((s) => s.serviceHash));
262
+ const rootArr = hashToArray(rootBytes);
263
+ const [receiptPda] = deriveSettlementReceipt(escrowPda, rootBytes);
264
+ // Auto-size CU to the batch length so callers don't have to think
265
+ // about it. The default Solana cap (200k) overflows past ~8
266
+ // settlements; we compute a tight ceiling and let the caller
267
+ // override via `opts.computeUnits` if they want.
268
+ // Setting the CU limit is FREE — it doesn't add lamports, only
269
+ // caps the maximum the runtime is allowed to charge.
270
+ const effectiveOpts = {
271
+ ...opts,
272
+ computeUnits: opts?.computeUnits ?? computeBatchSettleCu(settlements.length),
273
+ };
274
+ const preIxs = buildPriorityFeeIxs(effectiveOpts);
275
+ const rpcOpts = buildRpcOptions(effectiveOpts);
276
+ let builder = this.methods
277
+ .settleBatch(settlements, rootArr)
278
+ .accountsPartial({
279
+ wallet: this.walletPubkey,
280
+ agent: agentPda,
281
+ agentStats: statsPda,
282
+ escrow: escrowPda,
283
+ settlementReceipt: receiptPda,
284
+ systemProgram: SystemProgram.programId,
285
+ })
286
+ .remainingAccounts(splAccounts);
287
+ if (preIxs.length > 0) {
288
+ builder = builder.preInstructions(preIxs);
289
+ }
290
+ return builder.rpc(rpcOpts);
291
+ }
292
+ // ── Fetchers ─────────────────────────────────────────
293
+ /**
294
+ * @name fetch
295
+ * @description Fetch a deserialized `EscrowAccount`.
296
+ * @param agentPda - The agent account PDA.
297
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
298
+ * @returns {Promise<EscrowAccountData>} The escrow account data.
299
+ * @throws Will throw if the escrow account does not exist.
300
+ * @since v0.1.0
301
+ */
302
+ async fetch(agentPda, depositor) {
303
+ const [pda] = this.deriveEscrow(agentPda, depositor);
304
+ return this.fetchAccount("escrowAccount", pda);
305
+ }
306
+ /**
307
+ * @name fetchNullable
308
+ * @description Fetch a deserialized `EscrowAccount`, or `null` if it
309
+ * does not exist on-chain.
310
+ * @param agentPda - The agent account PDA.
311
+ * @param depositor - The depositor wallet. Defaults to the connected wallet.
312
+ * @returns {Promise<EscrowAccountData | null>} The escrow data or `null`.
313
+ * @since v0.1.0
314
+ */
315
+ async fetchNullable(agentPda, depositor) {
316
+ const [pda] = this.deriveEscrow(agentPda, depositor);
317
+ return this.fetchAccountNullable("escrowAccount", pda);
318
+ }
319
+ /**
320
+ * @name fetchByPda
321
+ * @description Fetch an escrow account by its PDA address directly,
322
+ * bypassing PDA derivation.
323
+ * @param escrowPda - The escrow PDA public key.
324
+ * @returns {Promise<EscrowAccountData>} The escrow account data.
325
+ * @throws Will throw if the escrow account does not exist.
326
+ * @since v0.1.0
327
+ */
328
+ async fetchByPda(escrowPda) {
329
+ return this.fetchAccount("escrowAccount", escrowPda);
330
+ }
331
+ }
332
+ //# sourceMappingURL=escrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../src/modules/escrow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @module feedback
3
+ * @description Trustless reputation system — give, update, revoke, and close
4
+ * on-chain feedback entries for agents.
5
+ *
6
+ * Feedback entries are PDA-based reviews tied to an agent and a reviewer wallet,
7
+ * enabling permissionless, verifiable reputation on Solana.
8
+ *
9
+ * @category Modules
10
+ * @since v0.1.0
11
+ * @packageDocumentation
12
+ */
13
+ import { type PublicKey, type TransactionSignature } from "@solana/web3.js";
14
+ import { BaseModule } from "./base";
15
+ import type { FeedbackAccountData, GiveFeedbackArgs, UpdateFeedbackArgs } from "../types";
16
+ /**
17
+ * @name FeedbackModule
18
+ * @description Manages on-chain feedback entries for the Synapse Agent Protocol.
19
+ * Provides methods to give, update, revoke, close, and fetch feedback PDAs
20
+ * that form the trustless reputation layer.
21
+ *
22
+ * @category Modules
23
+ * @since v0.1.0
24
+ * @extends BaseModule
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const sap = new SapClient(provider);
29
+ * const sig = await sap.feedback.give(agentWallet, {
30
+ * score: 5,
31
+ * tag: { quality: {} },
32
+ * commentHash: null,
33
+ * });
34
+ * ```
35
+ */
36
+ export declare class FeedbackModule extends BaseModule {
37
+ /**
38
+ * @name deriveFeedback
39
+ * @description Derive the `FeedbackAccount` PDA for a given agent and reviewer.
40
+ * @param agentPda - The agent account PDA to review.
41
+ * @param reviewer - The reviewer wallet. Defaults to the connected wallet.
42
+ * @returns A tuple of `[PublicKey, bump]` for the feedback PDA.
43
+ * @see {@link deriveFeedback} from `pda/` module for the underlying derivation.
44
+ * @since v0.1.0
45
+ */
46
+ deriveFeedback(agentPda: PublicKey, reviewer?: PublicKey): readonly [PublicKey, number];
47
+ /**
48
+ * @name give
49
+ * @description Leave on-chain feedback for an agent. Creates a new
50
+ * `FeedbackAccount` PDA owned by the reviewer.
51
+ * @param agentWallet - The wallet that owns the target agent.
52
+ * @param args - Feedback parameters (score, tag, optional comment hash).
53
+ * @returns {Promise<TransactionSignature>} The transaction signature.
54
+ * @since v0.1.0
55
+ */
56
+ give(agentWallet: PublicKey, args: GiveFeedbackArgs): Promise<TransactionSignature>;
57
+ /**
58
+ * @name update
59
+ * @description Update an existing feedback entry. Only the original reviewer
60
+ * may update their feedback.
61
+ * @param agentWallet - The wallet that owns the target agent.
62
+ * @param args - Updated feedback parameters (new score, optional new tag, optional comment hash).
63
+ * @returns {Promise<TransactionSignature>} The transaction signature.
64
+ * @since v0.1.0
65
+ */
66
+ update(agentWallet: PublicKey, args: UpdateFeedbackArgs): Promise<TransactionSignature>;
67
+ /**
68
+ * @name revoke
69
+ * @description Revoke a feedback entry, marking it as revoked and excluding
70
+ * it from reputation calculations.
71
+ * @param agentWallet - The wallet that owns the target agent.
72
+ * @returns {Promise<TransactionSignature>} The transaction signature.
73
+ * @since v0.1.0
74
+ */
75
+ revoke(agentWallet: PublicKey): Promise<TransactionSignature>;
76
+ /**
77
+ * @name close
78
+ * @description Close a revoked feedback PDA and reclaim rent to the reviewer.
79
+ * @param agentWallet - The wallet that owns the target agent.
80
+ * @returns {Promise<TransactionSignature>} The transaction signature.
81
+ * @since v0.1.0
82
+ */
83
+ close(agentWallet: PublicKey): Promise<TransactionSignature>;
84
+ /**
85
+ * @name fetch
86
+ * @description Fetch a deserialized `FeedbackAccount`.
87
+ * @param agentPda - The agent account PDA.
88
+ * @param reviewer - The reviewer wallet. Defaults to the connected wallet.
89
+ * @returns {Promise<FeedbackAccountData>} The feedback account data.
90
+ * @throws Will throw if the feedback account does not exist.
91
+ * @since v0.1.0
92
+ */
93
+ fetch(agentPda: PublicKey, reviewer?: PublicKey): Promise<FeedbackAccountData>;
94
+ /**
95
+ * @name fetchNullable
96
+ * @description Fetch a deserialized `FeedbackAccount`, or `null` if it
97
+ * does not exist on-chain.
98
+ * @param agentPda - The agent account PDA.
99
+ * @param reviewer - The reviewer wallet. Defaults to the connected wallet.
100
+ * @returns {Promise<FeedbackAccountData | null>} The feedback data or `null`.
101
+ * @since v0.1.0
102
+ */
103
+ fetchNullable(agentPda: PublicKey, reviewer?: PublicKey): Promise<FeedbackAccountData | null>;
104
+ }
105
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/modules/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAG5C;;;;;;;;OAQG;IACH,cAAc,CACZ,QAAQ,EAAE,SAAS,EACnB,QAAQ,CAAC,EAAE,SAAS,GACnB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAM/B;;;;;;;;OAQG;IACG,IAAI,CACR,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,oBAAoB,CAAC;IAiBhC;;;;;;;;OAQG;IACG,MAAM,CACV,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,oBAAoB,CAAC;IAchC;;;;;;;OAOG;IACG,MAAM,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAcnE;;;;;;OAMG;IACG,KAAK,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAelE;;;;;;;;OAQG;IACG,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKpF;;;;;;;;OAQG;IACG,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAIpG"}