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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/dist/cjs/accounts/index.js +286 -0
  2. package/dist/cjs/accounts/index.js.map +1 -0
  3. package/dist/cjs/client.js +108 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/constants.js +59 -0
  6. package/dist/cjs/constants.js.map +1 -0
  7. package/dist/cjs/errors.js +250 -0
  8. package/dist/cjs/errors.js.map +1 -0
  9. package/dist/cjs/events/index.js +38 -130
  10. package/dist/cjs/events/index.js.map +1 -1
  11. package/dist/cjs/idlTypes.js +4 -0
  12. package/dist/cjs/idlTypes.js.map +1 -0
  13. package/dist/cjs/index.js +75 -241
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/instructions/agent.js +89 -0
  16. package/dist/cjs/instructions/agent.js.map +1 -0
  17. package/dist/cjs/instructions/attestation.js +112 -0
  18. package/dist/cjs/instructions/attestation.js.map +1 -0
  19. package/dist/cjs/instructions/digest.js +28 -0
  20. package/dist/cjs/instructions/digest.js.map +1 -0
  21. package/dist/cjs/instructions/dispute.js +116 -0
  22. package/dist/cjs/instructions/dispute.js.map +1 -0
  23. package/dist/cjs/instructions/escrow.js +101 -0
  24. package/dist/cjs/instructions/escrow.js.map +1 -0
  25. package/dist/cjs/instructions/global.js +28 -0
  26. package/dist/cjs/instructions/global.js.map +1 -0
  27. package/dist/cjs/instructions/index.js +31 -0
  28. package/dist/cjs/instructions/index.js.map +1 -0
  29. package/dist/cjs/instructions/indexing.js +221 -0
  30. package/dist/cjs/instructions/indexing.js.map +1 -0
  31. package/dist/cjs/instructions/misc.js +73 -0
  32. package/dist/cjs/instructions/misc.js.map +1 -0
  33. package/dist/cjs/instructions/session.js +89 -0
  34. package/dist/cjs/instructions/session.js.map +1 -0
  35. package/dist/cjs/instructions/staking.js +132 -0
  36. package/dist/cjs/instructions/staking.js.map +1 -0
  37. package/dist/cjs/instructions/subscription.js +80 -0
  38. package/dist/cjs/instructions/subscription.js.map +1 -0
  39. package/dist/cjs/instructions/tools.js +109 -0
  40. package/dist/cjs/instructions/tools.js.map +1 -0
  41. package/dist/cjs/instructions/vault.js +106 -0
  42. package/dist/cjs/instructions/vault.js.map +1 -0
  43. package/dist/cjs/pdas/index.js +120 -0
  44. package/dist/cjs/pdas/index.js.map +1 -0
  45. package/dist/cjs/types.js +42 -0
  46. package/dist/cjs/types.js.map +1 -0
  47. package/dist/cjs/utils/index.js +29 -75
  48. package/dist/cjs/utils/index.js.map +1 -1
  49. package/dist/cjs/utils/validate.js +236 -0
  50. package/dist/cjs/utils/validate.js.map +1 -0
  51. package/dist/esm/accounts/index.d.ts +11 -0
  52. package/dist/esm/accounts/index.d.ts.map +1 -0
  53. package/dist/esm/accounts/index.js +273 -0
  54. package/dist/esm/accounts/index.js.map +1 -0
  55. package/dist/esm/client.d.ts +55 -0
  56. package/dist/esm/client.d.ts.map +1 -0
  57. package/dist/esm/client.js +70 -0
  58. package/dist/esm/client.js.map +1 -0
  59. package/dist/esm/constants.d.ts +52 -0
  60. package/dist/esm/constants.d.ts.map +1 -0
  61. package/dist/esm/constants.js +56 -0
  62. package/dist/esm/constants.js.map +1 -0
  63. package/dist/esm/errors.d.ts +111 -0
  64. package/dist/esm/errors.d.ts.map +1 -0
  65. package/dist/esm/errors.js +244 -0
  66. package/dist/esm/errors.js.map +1 -0
  67. package/dist/esm/events/index.d.ts +13 -0
  68. package/dist/esm/events/index.d.ts.map +1 -0
  69. package/dist/esm/events/index.js +36 -128
  70. package/dist/esm/events/index.js.map +1 -1
  71. package/dist/esm/idlTypes.d.ts +925 -0
  72. package/dist/esm/idlTypes.d.ts.map +1 -0
  73. package/dist/esm/idlTypes.js +3 -0
  74. package/dist/esm/idlTypes.js.map +1 -0
  75. package/dist/esm/index.d.ts +12 -0
  76. package/dist/esm/index.d.ts.map +1 -0
  77. package/dist/esm/index.js +15 -88
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/instructions/agent.d.ts +71 -0
  80. package/dist/esm/instructions/agent.d.ts.map +1 -0
  81. package/dist/esm/instructions/agent.js +85 -0
  82. package/dist/esm/instructions/agent.js.map +1 -0
  83. package/dist/esm/instructions/attestation.d.ts +76 -0
  84. package/dist/esm/instructions/attestation.d.ts.map +1 -0
  85. package/dist/esm/instructions/attestation.js +108 -0
  86. package/dist/esm/instructions/attestation.js.map +1 -0
  87. package/dist/esm/instructions/digest.d.ts +20 -0
  88. package/dist/esm/instructions/digest.d.ts.map +1 -0
  89. package/dist/esm/instructions/digest.js +24 -0
  90. package/dist/esm/instructions/digest.js.map +1 -0
  91. package/dist/esm/instructions/dispute.d.ts +81 -0
  92. package/dist/esm/instructions/dispute.d.ts.map +1 -0
  93. package/dist/esm/instructions/dispute.js +112 -0
  94. package/dist/esm/instructions/dispute.js.map +1 -0
  95. package/dist/esm/instructions/escrow.d.ts +79 -0
  96. package/dist/esm/instructions/escrow.d.ts.map +1 -0
  97. package/dist/esm/instructions/escrow.js +97 -0
  98. package/dist/esm/instructions/escrow.js.map +1 -0
  99. package/dist/esm/instructions/global.d.ts +14 -0
  100. package/dist/esm/instructions/global.d.ts.map +1 -0
  101. package/dist/esm/instructions/global.js +24 -0
  102. package/dist/esm/instructions/global.js.map +1 -0
  103. package/dist/esm/instructions/index.d.ts +14 -0
  104. package/dist/esm/instructions/index.d.ts.map +1 -0
  105. package/dist/esm/instructions/index.js +15 -0
  106. package/dist/esm/instructions/index.js.map +1 -0
  107. package/dist/esm/instructions/indexing.d.ts +150 -0
  108. package/dist/esm/instructions/indexing.d.ts.map +1 -0
  109. package/dist/esm/instructions/indexing.js +217 -0
  110. package/dist/esm/instructions/indexing.js.map +1 -0
  111. package/dist/esm/instructions/memory.d.ts +8 -0
  112. package/dist/esm/instructions/memory.d.ts.map +1 -0
  113. package/dist/esm/instructions/memory.js +234 -0
  114. package/dist/esm/instructions/memory.js.map +1 -0
  115. package/dist/esm/instructions/misc.d.ts +50 -0
  116. package/dist/esm/instructions/misc.d.ts.map +1 -0
  117. package/dist/esm/instructions/misc.js +69 -0
  118. package/dist/esm/instructions/misc.js.map +1 -0
  119. package/dist/esm/instructions/session.d.ts +57 -0
  120. package/dist/esm/instructions/session.d.ts.map +1 -0
  121. package/dist/esm/instructions/session.js +85 -0
  122. package/dist/esm/instructions/session.js.map +1 -0
  123. package/dist/esm/instructions/staking.d.ts +85 -0
  124. package/dist/esm/instructions/staking.d.ts.map +1 -0
  125. package/dist/esm/instructions/staking.js +128 -0
  126. package/dist/esm/instructions/staking.js.map +1 -0
  127. package/dist/esm/instructions/subscription.d.ts +50 -0
  128. package/dist/esm/instructions/subscription.d.ts.map +1 -0
  129. package/dist/esm/instructions/subscription.js +76 -0
  130. package/dist/esm/instructions/subscription.js.map +1 -0
  131. package/dist/esm/instructions/tools.d.ts +88 -0
  132. package/dist/esm/instructions/tools.d.ts.map +1 -0
  133. package/dist/esm/instructions/tools.js +105 -0
  134. package/dist/esm/instructions/tools.js.map +1 -0
  135. package/dist/esm/instructions/vault.d.ts +84 -0
  136. package/dist/esm/instructions/vault.d.ts.map +1 -0
  137. package/dist/esm/instructions/vault.js +102 -0
  138. package/dist/esm/instructions/vault.js.map +1 -0
  139. package/dist/esm/pdas/index.d.ts +37 -0
  140. package/dist/esm/pdas/index.d.ts.map +1 -0
  141. package/dist/esm/pdas/index.js +101 -0
  142. package/dist/esm/pdas/index.js.map +1 -0
  143. package/dist/esm/types.d.ts +208 -0
  144. package/dist/esm/types.d.ts.map +1 -0
  145. package/dist/esm/types.js +39 -0
  146. package/dist/esm/types.js.map +1 -0
  147. package/dist/esm/utils/index.d.ts +4 -0
  148. package/dist/esm/utils/index.d.ts.map +1 -0
  149. package/dist/esm/utils/index.js +13 -29
  150. package/dist/esm/utils/index.js.map +1 -1
  151. package/dist/esm/utils/validate.d.ts +66 -0
  152. package/dist/esm/utils/validate.d.ts.map +1 -0
  153. package/dist/esm/utils/validate.js +221 -0
  154. package/dist/esm/utils/validate.js.map +1 -0
  155. package/package.json +59 -183
  156. package/LICENSE +0 -21
  157. package/README.md +0 -986
  158. package/dist/cjs/constants/addresses.js +0 -143
  159. package/dist/cjs/constants/addresses.js.map +0 -1
  160. package/dist/cjs/constants/index.js +0 -64
  161. package/dist/cjs/constants/index.js.map +0 -1
  162. package/dist/cjs/constants/limits.js +0 -161
  163. package/dist/cjs/constants/limits.js.map +0 -1
  164. package/dist/cjs/constants/network.js +0 -81
  165. package/dist/cjs/constants/network.js.map +0 -1
  166. package/dist/cjs/constants/payments.js +0 -137
  167. package/dist/cjs/constants/payments.js.map +0 -1
  168. package/dist/cjs/constants/programs.js +0 -78
  169. package/dist/cjs/constants/programs.js.map +0 -1
  170. package/dist/cjs/constants/seeds.js +0 -76
  171. package/dist/cjs/constants/seeds.js.map +0 -1
  172. package/dist/cjs/core/client.js +0 -546
  173. package/dist/cjs/core/client.js.map +0 -1
  174. package/dist/cjs/core/connection.js +0 -350
  175. package/dist/cjs/core/connection.js.map +0 -1
  176. package/dist/cjs/core/index.js +0 -25
  177. package/dist/cjs/core/index.js.map +0 -1
  178. package/dist/cjs/errors/index.js +0 -334
  179. package/dist/cjs/errors/index.js.map +0 -1
  180. package/dist/cjs/events/geyser.js +0 -295
  181. package/dist/cjs/events/geyser.js.map +0 -1
  182. package/dist/cjs/idl/index.js +0 -63
  183. package/dist/cjs/idl/index.js.map +0 -1
  184. package/dist/cjs/idl/synapse_agent_sap.json +0 -14595
  185. package/dist/cjs/modules/agent.js +0 -272
  186. package/dist/cjs/modules/agent.js.map +0 -1
  187. package/dist/cjs/modules/attestation.js +0 -147
  188. package/dist/cjs/modules/attestation.js.map +0 -1
  189. package/dist/cjs/modules/base.js +0 -128
  190. package/dist/cjs/modules/base.js.map +0 -1
  191. package/dist/cjs/modules/escrow-v2.js +0 -454
  192. package/dist/cjs/modules/escrow-v2.js.map +0 -1
  193. package/dist/cjs/modules/escrow.js +0 -300
  194. package/dist/cjs/modules/escrow.js.map +0 -1
  195. package/dist/cjs/modules/feedback.js +0 -166
  196. package/dist/cjs/modules/feedback.js.map +0 -1
  197. package/dist/cjs/modules/index.js +0 -43
  198. package/dist/cjs/modules/index.js.map +0 -1
  199. package/dist/cjs/modules/indexing.js +0 -375
  200. package/dist/cjs/modules/indexing.js.map +0 -1
  201. package/dist/cjs/modules/ledger.js +0 -234
  202. package/dist/cjs/modules/ledger.js.map +0 -1
  203. package/dist/cjs/modules/receipt.js +0 -148
  204. package/dist/cjs/modules/receipt.js.map +0 -1
  205. package/dist/cjs/modules/staking.js +0 -124
  206. package/dist/cjs/modules/staking.js.map +0 -1
  207. package/dist/cjs/modules/subscription.js +0 -96
  208. package/dist/cjs/modules/subscription.js.map +0 -1
  209. package/dist/cjs/modules/tools.js +0 -319
  210. package/dist/cjs/modules/tools.js.map +0 -1
  211. package/dist/cjs/modules/vault.js +0 -410
  212. package/dist/cjs/modules/vault.js.map +0 -1
  213. package/dist/cjs/parser/client.js +0 -146
  214. package/dist/cjs/parser/client.js.map +0 -1
  215. package/dist/cjs/parser/complete.js +0 -177
  216. package/dist/cjs/parser/complete.js.map +0 -1
  217. package/dist/cjs/parser/index.js +0 -57
  218. package/dist/cjs/parser/index.js.map +0 -1
  219. package/dist/cjs/parser/inner.js +0 -185
  220. package/dist/cjs/parser/inner.js.map +0 -1
  221. package/dist/cjs/parser/instructions.js +0 -114
  222. package/dist/cjs/parser/instructions.js.map +0 -1
  223. package/dist/cjs/parser/transaction.js +0 -153
  224. package/dist/cjs/parser/transaction.js.map +0 -1
  225. package/dist/cjs/parser/types.js +0 -14
  226. package/dist/cjs/parser/types.js.map +0 -1
  227. package/dist/cjs/pda/index.js +0 -672
  228. package/dist/cjs/pda/index.js.map +0 -1
  229. package/dist/cjs/plugin/index.js +0 -952
  230. package/dist/cjs/plugin/index.js.map +0 -1
  231. package/dist/cjs/plugin/protocols.js +0 -282
  232. package/dist/cjs/plugin/protocols.js.map +0 -1
  233. package/dist/cjs/plugin/schemas.js +0 -863
  234. package/dist/cjs/plugin/schemas.js.map +0 -1
  235. package/dist/cjs/postgres/adapter.js +0 -715
  236. package/dist/cjs/postgres/adapter.js.map +0 -1
  237. package/dist/cjs/postgres/index.js +0 -50
  238. package/dist/cjs/postgres/index.js.map +0 -1
  239. package/dist/cjs/postgres/serializers.js +0 -381
  240. package/dist/cjs/postgres/serializers.js.map +0 -1
  241. package/dist/cjs/postgres/sync.js +0 -289
  242. package/dist/cjs/postgres/sync.js.map +0 -1
  243. package/dist/cjs/postgres/types.js +0 -44
  244. package/dist/cjs/postgres/types.js.map +0 -1
  245. package/dist/cjs/registries/builder.js +0 -414
  246. package/dist/cjs/registries/builder.js.map +0 -1
  247. package/dist/cjs/registries/discovery.js +0 -362
  248. package/dist/cjs/registries/discovery.js.map +0 -1
  249. package/dist/cjs/registries/fairscale.js +0 -639
  250. package/dist/cjs/registries/fairscale.js.map +0 -1
  251. package/dist/cjs/registries/index.js +0 -58
  252. package/dist/cjs/registries/index.js.map +0 -1
  253. package/dist/cjs/registries/metaplex-bridge.js +0 -743
  254. package/dist/cjs/registries/metaplex-bridge.js.map +0 -1
  255. package/dist/cjs/registries/session.js +0 -433
  256. package/dist/cjs/registries/session.js.map +0 -1
  257. package/dist/cjs/registries/x402.js +0 -668
  258. package/dist/cjs/registries/x402.js.map +0 -1
  259. package/dist/cjs/types/accounts.js +0 -13
  260. package/dist/cjs/types/accounts.js.map +0 -1
  261. package/dist/cjs/types/common.js +0 -13
  262. package/dist/cjs/types/common.js.map +0 -1
  263. package/dist/cjs/types/endpoint.js +0 -15
  264. package/dist/cjs/types/endpoint.js.map +0 -1
  265. package/dist/cjs/types/enums.js +0 -269
  266. package/dist/cjs/types/enums.js.map +0 -1
  267. package/dist/cjs/types/index.js +0 -41
  268. package/dist/cjs/types/index.js.map +0 -1
  269. package/dist/cjs/types/instructions.js +0 -92
  270. package/dist/cjs/types/instructions.js.map +0 -1
  271. package/dist/cjs/utils/endpoint-validator.js +0 -232
  272. package/dist/cjs/utils/endpoint-validator.js.map +0 -1
  273. package/dist/cjs/utils/escrow-validation.js +0 -219
  274. package/dist/cjs/utils/escrow-validation.js.map +0 -1
  275. package/dist/cjs/utils/hash.js +0 -109
  276. package/dist/cjs/utils/hash.js.map +0 -1
  277. package/dist/cjs/utils/merchant-validator.js +0 -246
  278. package/dist/cjs/utils/merchant-validator.js.map +0 -1
  279. package/dist/cjs/utils/network-normalizer.js +0 -236
  280. package/dist/cjs/utils/network-normalizer.js.map +0 -1
  281. package/dist/cjs/utils/priority-fee.js +0 -215
  282. package/dist/cjs/utils/priority-fee.js.map +0 -1
  283. package/dist/cjs/utils/rpc-strategy.js +0 -239
  284. package/dist/cjs/utils/rpc-strategy.js.map +0 -1
  285. package/dist/cjs/utils/schemas.js +0 -331
  286. package/dist/cjs/utils/schemas.js.map +0 -1
  287. package/dist/cjs/utils/serialization.js +0 -105
  288. package/dist/cjs/utils/serialization.js.map +0 -1
  289. package/dist/cjs/utils/validation.js +0 -36
  290. package/dist/cjs/utils/validation.js.map +0 -1
  291. package/dist/cjs/utils/x402-direct.js +0 -231
  292. package/dist/cjs/utils/x402-direct.js.map +0 -1
  293. package/dist/esm/constants/addresses.js +0 -140
  294. package/dist/esm/constants/addresses.js.map +0 -1
  295. package/dist/esm/constants/index.js +0 -35
  296. package/dist/esm/constants/index.js.map +0 -1
  297. package/dist/esm/constants/limits.js +0 -158
  298. package/dist/esm/constants/limits.js.map +0 -1
  299. package/dist/esm/constants/network.js +0 -78
  300. package/dist/esm/constants/network.js.map +0 -1
  301. package/dist/esm/constants/payments.js +0 -131
  302. package/dist/esm/constants/payments.js.map +0 -1
  303. package/dist/esm/constants/programs.js +0 -75
  304. package/dist/esm/constants/programs.js.map +0 -1
  305. package/dist/esm/constants/seeds.js +0 -73
  306. package/dist/esm/constants/seeds.js.map +0 -1
  307. package/dist/esm/core/client.js +0 -539
  308. package/dist/esm/core/client.js.map +0 -1
  309. package/dist/esm/core/connection.js +0 -345
  310. package/dist/esm/core/connection.js.map +0 -1
  311. package/dist/esm/core/index.js +0 -19
  312. package/dist/esm/core/index.js.map +0 -1
  313. package/dist/esm/errors/index.js +0 -325
  314. package/dist/esm/errors/index.js.map +0 -1
  315. package/dist/esm/events/geyser.js +0 -258
  316. package/dist/esm/events/geyser.js.map +0 -1
  317. package/dist/esm/idl/index.js +0 -57
  318. package/dist/esm/idl/index.js.map +0 -1
  319. package/dist/esm/idl/synapse_agent_sap.json +0 -14595
  320. package/dist/esm/modules/agent.js +0 -268
  321. package/dist/esm/modules/agent.js.map +0 -1
  322. package/dist/esm/modules/attestation.js +0 -143
  323. package/dist/esm/modules/attestation.js.map +0 -1
  324. package/dist/esm/modules/base.js +0 -124
  325. package/dist/esm/modules/base.js.map +0 -1
  326. package/dist/esm/modules/escrow-v2.js +0 -450
  327. package/dist/esm/modules/escrow-v2.js.map +0 -1
  328. package/dist/esm/modules/escrow.js +0 -296
  329. package/dist/esm/modules/escrow.js.map +0 -1
  330. package/dist/esm/modules/feedback.js +0 -162
  331. package/dist/esm/modules/feedback.js.map +0 -1
  332. package/dist/esm/modules/index.js +0 -27
  333. package/dist/esm/modules/index.js.map +0 -1
  334. package/dist/esm/modules/indexing.js +0 -371
  335. package/dist/esm/modules/indexing.js.map +0 -1
  336. package/dist/esm/modules/ledger.js +0 -230
  337. package/dist/esm/modules/ledger.js.map +0 -1
  338. package/dist/esm/modules/receipt.js +0 -144
  339. package/dist/esm/modules/receipt.js.map +0 -1
  340. package/dist/esm/modules/staking.js +0 -120
  341. package/dist/esm/modules/staking.js.map +0 -1
  342. package/dist/esm/modules/subscription.js +0 -92
  343. package/dist/esm/modules/subscription.js.map +0 -1
  344. package/dist/esm/modules/tools.js +0 -315
  345. package/dist/esm/modules/tools.js.map +0 -1
  346. package/dist/esm/modules/vault.js +0 -406
  347. package/dist/esm/modules/vault.js.map +0 -1
  348. package/dist/esm/parser/client.js +0 -142
  349. package/dist/esm/parser/client.js.map +0 -1
  350. package/dist/esm/parser/complete.js +0 -173
  351. package/dist/esm/parser/complete.js.map +0 -1
  352. package/dist/esm/parser/index.js +0 -43
  353. package/dist/esm/parser/index.js.map +0 -1
  354. package/dist/esm/parser/inner.js +0 -180
  355. package/dist/esm/parser/inner.js.map +0 -1
  356. package/dist/esm/parser/instructions.js +0 -109
  357. package/dist/esm/parser/instructions.js.map +0 -1
  358. package/dist/esm/parser/transaction.js +0 -149
  359. package/dist/esm/parser/transaction.js.map +0 -1
  360. package/dist/esm/parser/types.js +0 -13
  361. package/dist/esm/parser/types.js.map +0 -1
  362. package/dist/esm/pda/index.js +0 -638
  363. package/dist/esm/pda/index.js.map +0 -1
  364. package/dist/esm/plugin/index.js +0 -945
  365. package/dist/esm/plugin/index.js.map +0 -1
  366. package/dist/esm/plugin/protocols.js +0 -279
  367. package/dist/esm/plugin/protocols.js.map +0 -1
  368. package/dist/esm/plugin/schemas.js +0 -860
  369. package/dist/esm/plugin/schemas.js.map +0 -1
  370. package/dist/esm/postgres/adapter.js +0 -678
  371. package/dist/esm/postgres/adapter.js.map +0 -1
  372. package/dist/esm/postgres/index.js +0 -27
  373. package/dist/esm/postgres/index.js.map +0 -1
  374. package/dist/esm/postgres/serializers.js +0 -362
  375. package/dist/esm/postgres/serializers.js.map +0 -1
  376. package/dist/esm/postgres/sync.js +0 -285
  377. package/dist/esm/postgres/sync.js.map +0 -1
  378. package/dist/esm/postgres/types.js +0 -41
  379. package/dist/esm/postgres/types.js.map +0 -1
  380. package/dist/esm/registries/builder.js +0 -410
  381. package/dist/esm/registries/builder.js.map +0 -1
  382. package/dist/esm/registries/discovery.js +0 -358
  383. package/dist/esm/registries/discovery.js.map +0 -1
  384. package/dist/esm/registries/fairscale.js +0 -633
  385. package/dist/esm/registries/fairscale.js.map +0 -1
  386. package/dist/esm/registries/index.js +0 -46
  387. package/dist/esm/registries/index.js.map +0 -1
  388. package/dist/esm/registries/metaplex-bridge.js +0 -706
  389. package/dist/esm/registries/metaplex-bridge.js.map +0 -1
  390. package/dist/esm/registries/session.js +0 -429
  391. package/dist/esm/registries/session.js.map +0 -1
  392. package/dist/esm/registries/x402.js +0 -664
  393. package/dist/esm/registries/x402.js.map +0 -1
  394. package/dist/esm/types/accounts.js +0 -12
  395. package/dist/esm/types/accounts.js.map +0 -1
  396. package/dist/esm/types/common.js +0 -12
  397. package/dist/esm/types/common.js.map +0 -1
  398. package/dist/esm/types/endpoint.js +0 -14
  399. package/dist/esm/types/endpoint.js.map +0 -1
  400. package/dist/esm/types/enums.js +0 -266
  401. package/dist/esm/types/enums.js.map +0 -1
  402. package/dist/esm/types/index.js +0 -25
  403. package/dist/esm/types/index.js.map +0 -1
  404. package/dist/esm/types/instructions.js +0 -89
  405. package/dist/esm/types/instructions.js.map +0 -1
  406. package/dist/esm/utils/endpoint-validator.js +0 -226
  407. package/dist/esm/utils/endpoint-validator.js.map +0 -1
  408. package/dist/esm/utils/escrow-validation.js +0 -212
  409. package/dist/esm/utils/escrow-validation.js.map +0 -1
  410. package/dist/esm/utils/hash.js +0 -103
  411. package/dist/esm/utils/hash.js.map +0 -1
  412. package/dist/esm/utils/merchant-validator.js +0 -241
  413. package/dist/esm/utils/merchant-validator.js.map +0 -1
  414. package/dist/esm/utils/network-normalizer.js +0 -229
  415. package/dist/esm/utils/network-normalizer.js.map +0 -1
  416. package/dist/esm/utils/priority-fee.js +0 -209
  417. package/dist/esm/utils/priority-fee.js.map +0 -1
  418. package/dist/esm/utils/rpc-strategy.js +0 -231
  419. package/dist/esm/utils/rpc-strategy.js.map +0 -1
  420. package/dist/esm/utils/schemas.js +0 -320
  421. package/dist/esm/utils/schemas.js.map +0 -1
  422. package/dist/esm/utils/serialization.js +0 -98
  423. package/dist/esm/utils/serialization.js.map +0 -1
  424. package/dist/esm/utils/validation.js +0 -33
  425. package/dist/esm/utils/validation.js.map +0 -1
  426. package/dist/esm/utils/x402-direct.js +0 -228
  427. package/dist/esm/utils/x402-direct.js.map +0 -1
  428. package/dist/types/constants/addresses.d.ts +0 -117
  429. package/dist/types/constants/addresses.d.ts.map +0 -1
  430. package/dist/types/constants/index.d.ts +0 -31
  431. package/dist/types/constants/index.d.ts.map +0 -1
  432. package/dist/types/constants/limits.d.ts +0 -149
  433. package/dist/types/constants/limits.d.ts.map +0 -1
  434. package/dist/types/constants/network.d.ts +0 -81
  435. package/dist/types/constants/network.d.ts.map +0 -1
  436. package/dist/types/constants/payments.d.ts +0 -121
  437. package/dist/types/constants/payments.d.ts.map +0 -1
  438. package/dist/types/constants/programs.d.ts +0 -69
  439. package/dist/types/constants/programs.d.ts.map +0 -1
  440. package/dist/types/constants/seeds.d.ts +0 -80
  441. package/dist/types/constants/seeds.d.ts.map +0 -1
  442. package/dist/types/core/client.d.ts +0 -452
  443. package/dist/types/core/client.d.ts.map +0 -1
  444. package/dist/types/core/connection.d.ts +0 -305
  445. package/dist/types/core/connection.d.ts.map +0 -1
  446. package/dist/types/core/index.d.ts +0 -20
  447. package/dist/types/core/index.d.ts.map +0 -1
  448. package/dist/types/errors/index.d.ts +0 -276
  449. package/dist/types/errors/index.d.ts.map +0 -1
  450. package/dist/types/events/geyser.d.ts +0 -150
  451. package/dist/types/events/geyser.d.ts.map +0 -1
  452. package/dist/types/events/index.d.ts +0 -248
  453. package/dist/types/events/index.d.ts.map +0 -1
  454. package/dist/types/idl/index.d.ts +0 -70
  455. package/dist/types/idl/index.d.ts.map +0 -1
  456. package/dist/types/index.d.ts +0 -85
  457. package/dist/types/index.d.ts.map +0 -1
  458. package/dist/types/modules/agent.d.ts +0 -166
  459. package/dist/types/modules/agent.d.ts.map +0 -1
  460. package/dist/types/modules/attestation.d.ts +0 -96
  461. package/dist/types/modules/attestation.d.ts.map +0 -1
  462. package/dist/types/modules/base.d.ts +0 -126
  463. package/dist/types/modules/base.d.ts.map +0 -1
  464. package/dist/types/modules/escrow-v2.d.ts +0 -100
  465. package/dist/types/modules/escrow-v2.d.ts.map +0 -1
  466. package/dist/types/modules/escrow.d.ts +0 -168
  467. package/dist/types/modules/escrow.d.ts.map +0 -1
  468. package/dist/types/modules/feedback.d.ts +0 -105
  469. package/dist/types/modules/feedback.d.ts.map +0 -1
  470. package/dist/types/modules/index.d.ts +0 -28
  471. package/dist/types/modules/index.d.ts.map +0 -1
  472. package/dist/types/modules/indexing.d.ts +0 -200
  473. package/dist/types/modules/indexing.d.ts.map +0 -1
  474. package/dist/types/modules/ledger.d.ts +0 -150
  475. package/dist/types/modules/ledger.d.ts.map +0 -1
  476. package/dist/types/modules/receipt.d.ts +0 -77
  477. package/dist/types/modules/receipt.d.ts.map +0 -1
  478. package/dist/types/modules/staking.d.ts +0 -51
  479. package/dist/types/modules/staking.d.ts.map +0 -1
  480. package/dist/types/modules/subscription.d.ts +0 -33
  481. package/dist/types/modules/subscription.d.ts.map +0 -1
  482. package/dist/types/modules/tools.d.ts +0 -182
  483. package/dist/types/modules/tools.d.ts.map +0 -1
  484. package/dist/types/modules/vault.d.ts +0 -240
  485. package/dist/types/modules/vault.d.ts.map +0 -1
  486. package/dist/types/parser/client.d.ts +0 -123
  487. package/dist/types/parser/client.d.ts.map +0 -1
  488. package/dist/types/parser/complete.d.ts +0 -90
  489. package/dist/types/parser/complete.d.ts.map +0 -1
  490. package/dist/types/parser/index.d.ts +0 -40
  491. package/dist/types/parser/index.d.ts.map +0 -1
  492. package/dist/types/parser/inner.d.ts +0 -114
  493. package/dist/types/parser/inner.d.ts.map +0 -1
  494. package/dist/types/parser/instructions.d.ts +0 -76
  495. package/dist/types/parser/instructions.d.ts.map +0 -1
  496. package/dist/types/parser/transaction.d.ts +0 -77
  497. package/dist/types/parser/transaction.d.ts.map +0 -1
  498. package/dist/types/parser/types.d.ts +0 -154
  499. package/dist/types/parser/types.d.ts.map +0 -1
  500. package/dist/types/pda/index.d.ts +0 -510
  501. package/dist/types/pda/index.d.ts.map +0 -1
  502. package/dist/types/plugin/index.d.ts +0 -171
  503. package/dist/types/plugin/index.d.ts.map +0 -1
  504. package/dist/types/plugin/protocols.d.ts +0 -152
  505. package/dist/types/plugin/protocols.d.ts.map +0 -1
  506. package/dist/types/plugin/schemas.d.ts +0 -829
  507. package/dist/types/plugin/schemas.d.ts.map +0 -1
  508. package/dist/types/postgres/adapter.d.ts +0 -355
  509. package/dist/types/postgres/adapter.d.ts.map +0 -1
  510. package/dist/types/postgres/index.d.ts +0 -24
  511. package/dist/types/postgres/index.d.ts.map +0 -1
  512. package/dist/types/postgres/serializers.d.ts +0 -30
  513. package/dist/types/postgres/serializers.d.ts.map +0 -1
  514. package/dist/types/postgres/sync.d.ts +0 -156
  515. package/dist/types/postgres/sync.d.ts.map +0 -1
  516. package/dist/types/postgres/types.d.ts +0 -167
  517. package/dist/types/postgres/types.d.ts.map +0 -1
  518. package/dist/types/registries/builder.d.ts +0 -340
  519. package/dist/types/registries/builder.d.ts.map +0 -1
  520. package/dist/types/registries/discovery.d.ts +0 -333
  521. package/dist/types/registries/discovery.d.ts.map +0 -1
  522. package/dist/types/registries/fairscale.d.ts +0 -680
  523. package/dist/types/registries/fairscale.d.ts.map +0 -1
  524. package/dist/types/registries/index.d.ts +0 -52
  525. package/dist/types/registries/index.d.ts.map +0 -1
  526. package/dist/types/registries/metaplex-bridge.d.ts +0 -488
  527. package/dist/types/registries/metaplex-bridge.d.ts.map +0 -1
  528. package/dist/types/registries/session.d.ts +0 -323
  529. package/dist/types/registries/session.d.ts.map +0 -1
  530. package/dist/types/registries/x402.d.ts +0 -530
  531. package/dist/types/registries/x402.d.ts.map +0 -1
  532. package/dist/types/types/accounts.d.ts +0 -765
  533. package/dist/types/types/accounts.d.ts.map +0 -1
  534. package/dist/types/types/common.d.ts +0 -166
  535. package/dist/types/types/common.d.ts.map +0 -1
  536. package/dist/types/types/endpoint.d.ts +0 -161
  537. package/dist/types/types/endpoint.d.ts.map +0 -1
  538. package/dist/types/types/enums.d.ts +0 -353
  539. package/dist/types/types/enums.d.ts.map +0 -1
  540. package/dist/types/types/index.d.ts +0 -29
  541. package/dist/types/types/index.d.ts.map +0 -1
  542. package/dist/types/types/instructions.d.ts +0 -400
  543. package/dist/types/types/instructions.d.ts.map +0 -1
  544. package/dist/types/utils/endpoint-validator.d.ts +0 -110
  545. package/dist/types/utils/endpoint-validator.d.ts.map +0 -1
  546. package/dist/types/utils/escrow-validation.d.ts +0 -145
  547. package/dist/types/utils/escrow-validation.d.ts.map +0 -1
  548. package/dist/types/utils/hash.d.ts +0 -75
  549. package/dist/types/utils/hash.d.ts.map +0 -1
  550. package/dist/types/utils/index.d.ts +0 -33
  551. package/dist/types/utils/index.d.ts.map +0 -1
  552. package/dist/types/utils/merchant-validator.d.ts +0 -176
  553. package/dist/types/utils/merchant-validator.d.ts.map +0 -1
  554. package/dist/types/utils/network-normalizer.d.ts +0 -120
  555. package/dist/types/utils/network-normalizer.d.ts.map +0 -1
  556. package/dist/types/utils/priority-fee.d.ts +0 -205
  557. package/dist/types/utils/priority-fee.d.ts.map +0 -1
  558. package/dist/types/utils/rpc-strategy.d.ts +0 -172
  559. package/dist/types/utils/rpc-strategy.d.ts.map +0 -1
  560. package/dist/types/utils/schemas.d.ts +0 -351
  561. package/dist/types/utils/schemas.d.ts.map +0 -1
  562. package/dist/types/utils/serialization.d.ts +0 -69
  563. package/dist/types/utils/serialization.d.ts.map +0 -1
  564. package/dist/types/utils/validation.d.ts +0 -29
  565. package/dist/types/utils/validation.d.ts.map +0 -1
  566. package/dist/types/utils/x402-direct.d.ts +0 -114
  567. package/dist/types/utils/x402-direct.d.ts.map +0 -1
  568. package/src/constants/addresses.ts +0 -162
  569. package/src/constants/index.ts +0 -69
  570. package/src/constants/limits.ts +0 -165
  571. package/src/constants/network.ts +0 -89
  572. package/src/constants/payments.ts +0 -145
  573. package/src/constants/programs.ts +0 -83
  574. package/src/constants/seeds.ts +0 -85
  575. package/src/core/client.ts +0 -583
  576. package/src/core/connection.ts +0 -461
  577. package/src/core/index.ts +0 -20
  578. package/src/errors/index.ts +0 -346
  579. package/src/events/geyser.ts +0 -384
  580. package/src/events/index.ts +0 -335
  581. package/src/events/yellowstone.d.ts +0 -7
  582. package/src/idl/index.ts +0 -76
  583. package/src/idl/synapse_agent_sap.json +0 -14595
  584. package/src/index.ts +0 -421
  585. package/src/modules/agent.ts +0 -319
  586. package/src/modules/attestation.ts +0 -168
  587. package/src/modules/base.ts +0 -158
  588. package/src/modules/escrow-v2.ts +0 -658
  589. package/src/modules/escrow.ts +0 -383
  590. package/src/modules/feedback.ts +0 -186
  591. package/src/modules/index.ts +0 -28
  592. package/src/modules/indexing.ts +0 -444
  593. package/src/modules/ledger.ts +0 -262
  594. package/src/modules/receipt.ts +0 -212
  595. package/src/modules/staking.ts +0 -157
  596. package/src/modules/subscription.ts +0 -147
  597. package/src/modules/tools.ts +0 -411
  598. package/src/modules/vault.ts +0 -533
  599. package/src/parser/client.ts +0 -211
  600. package/src/parser/complete.ts +0 -232
  601. package/src/parser/index.ts +0 -71
  602. package/src/parser/inner.ts +0 -255
  603. package/src/parser/instructions.ts +0 -135
  604. package/src/parser/transaction.ts +0 -200
  605. package/src/parser/types.ts +0 -182
  606. package/src/pda/index.ts +0 -919
  607. package/src/plugin/index.ts +0 -1224
  608. package/src/plugin/protocols.ts +0 -404
  609. package/src/plugin/schemas.ts +0 -941
  610. package/src/postgres/adapter.ts +0 -904
  611. package/src/postgres/index.ts +0 -59
  612. package/src/postgres/schema.sql +0 -683
  613. package/src/postgres/serializers.ts +0 -485
  614. package/src/postgres/sync.ts +0 -340
  615. package/src/postgres/types.ts +0 -245
  616. package/src/registries/builder.ts +0 -607
  617. package/src/registries/discovery.ts +0 -572
  618. package/src/registries/fairscale.ts +0 -1278
  619. package/src/registries/index.ts +0 -143
  620. package/src/registries/metaplex-bridge.ts +0 -1199
  621. package/src/registries/session.ts +0 -613
  622. package/src/registries/x402.ts +0 -1048
  623. package/src/types/accounts.ts +0 -858
  624. package/src/types/common.ts +0 -187
  625. package/src/types/endpoint.ts +0 -181
  626. package/src/types/enums.ts +0 -333
  627. package/src/types/index.ts +0 -121
  628. package/src/types/instructions.ts +0 -453
  629. package/src/utils/endpoint-validator.ts +0 -300
  630. package/src/utils/escrow-validation.ts +0 -301
  631. package/src/utils/hash.ts +0 -113
  632. package/src/utils/index.ts +0 -102
  633. package/src/utils/merchant-validator.ts +0 -359
  634. package/src/utils/network-normalizer.ts +0 -240
  635. package/src/utils/priority-fee.ts +0 -325
  636. package/src/utils/rpc-strategy.ts +0 -322
  637. package/src/utils/schemas.ts +0 -359
  638. package/src/utils/serialization.ts +0 -98
  639. package/src/utils/validation.ts +0 -36
  640. package/src/utils/x402-direct.ts +0 -370
@@ -1,668 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module registries/x402
4
- * @description x402 payment flow registry — high-level helpers for
5
- * the complete x402 HTTP micropayment lifecycle.
6
- *
7
- * Implements the x402 payment standard on SAP:
8
- *
9
- * ┌──────────┐ HTTP 402 ┌──────────┐
10
- * │ Client │ ──────────────→│ Agent │
11
- * └────┬─────┘ └────┬─────┘
12
- * │ 1. Discover pricing │
13
- * │ 2. Create/fund escrow │
14
- * │ 3. Call via x402 header │
15
- * │ │
16
- * │ 4. Agent serves request │
17
- * │ 5. Agent settles onchain │
18
- * │ ← PaymentSettledEvent ← │
19
- * │ 6. Client verifies │
20
- * └───────────────────────────┘
21
- *
22
- * This registry provides:
23
- * - Pricing estimation with volume curve support
24
- * - x402 HTTP header generation
25
- * - Escrow lifecycle management
26
- * - Settlement verification
27
- * - Balance/expiry monitoring
28
- *
29
- * @category Registries
30
- * @since v0.1.0
31
- *
32
- * @example
33
- * ```ts
34
- * const x402 = client.x402;
35
- *
36
- * // === CLIENT SIDE ===
37
- *
38
- * // 1. Estimate cost before committing
39
- * const estimate = x402.estimateCost(agentWallet, 100);
40
- *
41
- * // 2. Prepare payment (creates escrow + deposits)
42
- * const ctx = await x402.preparePayment(agentWallet, {
43
- * pricePerCall: 1000,
44
- * maxCalls: 100,
45
- * deposit: 100_000,
46
- * });
47
- *
48
- * // 3. Build x402 HTTP headers for API calls
49
- * const headers = x402.buildPaymentHeaders(ctx);
50
- *
51
- * // 4. Check balance
52
- * const balance = await x402.getBalance(agentWallet);
53
- *
54
- * // === AGENT SIDE ===
55
- *
56
- * // 5. Settle after serving calls
57
- * const receipt = await x402.settle(depositorWallet, 5, serviceData);
58
- *
59
- * // 6. Batch settle for efficiency
60
- * const batchReceipt = await x402.settleBatch(depositorWallet, settlements);
61
- *
62
- * // 7. Verify a settlement TX
63
- * const verified = await x402.verifySettlement(txSignature);
64
- * ```
65
- */
66
- Object.defineProperty(exports, "__esModule", { value: true });
67
- exports.X402Registry = void 0;
68
- const web3_js_1 = require("@solana/web3.js");
69
- const anchor_1 = require("@coral-xyz/anchor");
70
- const pda_1 = require("../pda");
71
- const utils_1 = require("../utils");
72
- const network_1 = require("../constants/network");
73
- const priority_fee_1 = require("../utils/priority-fee");
74
- // ═══════════════════════════════════════════════════════════════════
75
- // x402 Registry
76
- // ═══════════════════════════════════════════════════════════════════
77
- /**
78
- * @name X402Registry
79
- * @description x402 payment flow registry for the SAP network.
80
- *
81
- * Provides the complete x402 HTTP micropayment lifecycle: pricing
82
- * estimation, escrow management, HTTP header generation, settlement,
83
- * and balance monitoring. Used by both clients (payers) and agents (payees).
84
- *
85
- * @category Registries
86
- * @since v0.1.0
87
- *
88
- * @example
89
- * ```ts
90
- * const x402 = client.x402;
91
- *
92
- * // Client: prepare payment and build headers
93
- * const ctx = await x402.preparePayment(agentWallet, {
94
- * pricePerCall: 1000, maxCalls: 100, deposit: 100_000,
95
- * });
96
- * const headers = x402.buildPaymentHeaders(ctx);
97
- *
98
- * // Agent: settle calls after serving
99
- * const receipt = await x402.settle(depositorWallet, 5, "service-data");
100
- * ```
101
- */
102
- class X402Registry {
103
- program;
104
- wallet;
105
- constructor(program) {
106
- this.program = program;
107
- this.wallet = program.provider.wallet.publicKey;
108
- }
109
- // ── Pricing & Estimation ─────────────────────────────
110
- /**
111
- * @name estimateCost
112
- * @description Estimate the cost of N calls to an agent.
113
- * Reads the escrow data if it exists, falls back to the agent’s pricing.
114
- * Supports volume curve pricing for tiered cost calculation.
115
- *
116
- * @param agentWallet - Agent wallet address.
117
- * @param calls - Number of calls to estimate.
118
- * @param opts - Optional: provide pricing directly to avoid on-chain fetch.
119
- * @param opts.pricePerCall - Base price per call.
120
- * @param opts.volumeCurve - Volume curve breakpoints.
121
- * @param opts.totalCallsBefore - Total calls already settled (for curve offset).
122
- * @returns A {@link CostEstimate} with total cost and per-tier breakdown.
123
- * @since v0.1.0
124
- */
125
- async estimateCost(agentWallet, calls, opts) {
126
- let pricePerCall;
127
- let volumeCurve;
128
- let totalBefore;
129
- if (opts?.pricePerCall) {
130
- pricePerCall = opts.pricePerCall;
131
- volumeCurve = opts.volumeCurve ?? [];
132
- totalBefore = opts.totalCallsBefore ?? 0;
133
- }
134
- else {
135
- // Try to read from existing escrow (V2 first, then V1)
136
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
137
- const resolved = await this.resolveEscrow(agentPda, this.wallet);
138
- if (resolved) {
139
- pricePerCall = resolved.escrow.pricePerCall;
140
- volumeCurve = resolved.escrow.volumeCurve ?? [];
141
- totalBefore = resolved.escrow.totalCallsSettled.toNumber();
142
- }
143
- else {
144
- // Fall back to agent's first pricing tier
145
- const agent = await this.fetchNullable("agentAccount", agentPda);
146
- if (!agent || agent.pricing.length === 0) {
147
- return {
148
- totalCost: new anchor_1.BN(0),
149
- calls,
150
- effectivePricePerCall: new anchor_1.BN(0),
151
- hasVolumeCurve: false,
152
- tiers: [],
153
- };
154
- }
155
- pricePerCall = agent.pricing[0].pricePerCall;
156
- volumeCurve = agent.pricing[0].volumeCurve ?? [];
157
- totalBefore = 0;
158
- }
159
- }
160
- return this.calculateCost(pricePerCall, volumeCurve, totalBefore, calls);
161
- }
162
- /**
163
- * @name calculateCost
164
- * @description Pure cost calculation (no network calls).
165
- * Implements the same tiered pricing logic as the on-chain program.
166
- *
167
- * @param basePrice - Base price per call in smallest token unit.
168
- * @param volumeCurve - Volume curve breakpoints.
169
- * @param totalCallsBefore - Total calls already settled (cursor offset).
170
- * @param calls - Number of calls to calculate cost for.
171
- * @returns A {@link CostEstimate} with total cost and per-tier breakdown.
172
- * @since v0.1.0
173
- */
174
- calculateCost(basePrice, volumeCurve, totalCallsBefore, calls) {
175
- const tiers = [];
176
- if (volumeCurve.length === 0) {
177
- const totalCost = basePrice.mul(new anchor_1.BN(calls));
178
- return {
179
- totalCost,
180
- calls,
181
- effectivePricePerCall: basePrice,
182
- hasVolumeCurve: false,
183
- tiers: [{ calls, pricePerCall: basePrice, subtotal: totalCost }],
184
- };
185
- }
186
- let remaining = calls;
187
- let cursor = totalCallsBefore;
188
- let totalCost = new anchor_1.BN(0);
189
- while (remaining > 0) {
190
- let currentPrice = basePrice;
191
- let nextThreshold = null;
192
- for (const bp of volumeCurve) {
193
- const threshold = bp.afterCalls;
194
- if (cursor >= threshold) {
195
- currentPrice = bp.pricePerCall;
196
- }
197
- else {
198
- nextThreshold = threshold;
199
- break;
200
- }
201
- }
202
- const callsAtPrice = nextThreshold !== null
203
- ? Math.min(remaining, nextThreshold - cursor)
204
- : remaining;
205
- const subtotal = currentPrice.mul(new anchor_1.BN(callsAtPrice));
206
- totalCost = totalCost.add(subtotal);
207
- tiers.push({ calls: callsAtPrice, pricePerCall: currentPrice, subtotal });
208
- remaining -= callsAtPrice;
209
- cursor += callsAtPrice;
210
- }
211
- const effectivePricePerCall = calls > 0
212
- ? totalCost.div(new anchor_1.BN(calls))
213
- : new anchor_1.BN(0);
214
- return {
215
- totalCost,
216
- calls,
217
- effectivePricePerCall,
218
- hasVolumeCurve: true,
219
- tiers,
220
- };
221
- }
222
- // ── Escrow Lifecycle (Client Side) ───────────────────
223
- /**
224
- * @name preparePayment
225
- * @description Prepare an x402 payment flow — creates and funds an escrow.
226
- * Derives the escrow PDA, sends the `createEscrow` instruction, and returns
227
- * a {@link PaymentContext} for building x402 headers.
228
- *
229
- * @param agentWallet - The agent’s wallet public key.
230
- * @param opts - Payment options (price, max calls, deposit, etc.).
231
- * @returns A {@link PaymentContext} with escrow details and transaction signature.
232
- * @since v0.1.0
233
- * @deprecated Since v0.7.0 — Creates a V1 escrow. Use `client.escrowV2.create()` for
234
- * V2 escrows with dispute windows, co-signing, and settlement security.
235
- *
236
- * @example
237
- * ```ts
238
- * const ctx = await x402.preparePayment(agentWallet, {
239
- * pricePerCall: 1000,
240
- * maxCalls: 100,
241
- * deposit: 100_000,
242
- * });
243
- * ```
244
- */
245
- async preparePayment(agentWallet, opts) {
246
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
247
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
248
- const pricePerCall = new anchor_1.BN(opts.pricePerCall.toString());
249
- const maxCalls = new anchor_1.BN((opts.maxCalls ?? 0).toString());
250
- const initialDeposit = new anchor_1.BN(opts.deposit.toString());
251
- const expiresAt = new anchor_1.BN((opts.expiresAt ?? 0).toString());
252
- const volumeCurve = (opts.volumeCurve ?? []).map((v) => ({
253
- afterCalls: v.afterCalls,
254
- pricePerCall: new anchor_1.BN(v.pricePerCall.toString()),
255
- }));
256
- const txSignature = await this.methods
257
- .createEscrow(pricePerCall, maxCalls, initialDeposit, expiresAt, volumeCurve, opts.tokenMint ?? null, opts.tokenDecimals ?? 9)
258
- .accounts({
259
- depositor: this.wallet,
260
- agent: agentPda,
261
- escrow: escrowPda,
262
- systemProgram: web3_js_1.SystemProgram.programId,
263
- })
264
- .rpc();
265
- return {
266
- escrowPda,
267
- agentPda,
268
- agentWallet,
269
- depositorWallet: this.wallet,
270
- pricePerCall,
271
- maxCalls,
272
- txSignature,
273
- networkIdentifier: opts.networkIdentifier ?? network_1.SapNetwork.SOLANA_MAINNET,
274
- };
275
- }
276
- /**
277
- * @name addFunds
278
- * @description Add more funds to an existing escrow.
279
- *
280
- * @param agentWallet - Agent wallet of the escrow.
281
- * @param amount - Amount to deposit in smallest token unit.
282
- * @returns The transaction signature.
283
- * @since v0.1.0
284
- * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.deposit()` instead.
285
- */
286
- async addFunds(agentWallet, amount) {
287
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
288
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
289
- return this.methods
290
- .depositEscrow(new anchor_1.BN(amount.toString()))
291
- .accounts({
292
- depositor: this.wallet,
293
- escrow: escrowPda,
294
- systemProgram: web3_js_1.SystemProgram.programId,
295
- })
296
- .rpc();
297
- }
298
- /**
299
- * @name withdrawFunds
300
- * @description Withdraw remaining funds from an escrow.
301
- *
302
- * @param agentWallet - Agent wallet of the escrow.
303
- * @param amount - Amount to withdraw in smallest token unit.
304
- * @returns The transaction signature.
305
- * @since v0.1.0
306
- * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.withdraw()` instead.
307
- */
308
- async withdrawFunds(agentWallet, amount) {
309
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
310
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
311
- return this.methods
312
- .withdrawEscrow(new anchor_1.BN(amount.toString()))
313
- .accounts({
314
- depositor: this.wallet,
315
- escrow: escrowPda,
316
- systemProgram: web3_js_1.SystemProgram.programId,
317
- })
318
- .rpc();
319
- }
320
- /**
321
- * @name closeEscrow
322
- * @description Close an empty escrow (balance must be 0).
323
- * Reclaims the rent-exempt lamports.
324
- *
325
- * @param agentWallet - Agent wallet of the escrow.
326
- * @returns The transaction signature.
327
- * @since v0.1.0
328
- * @deprecated Since v0.7.0 — Operates on V1 escrows only. Use `client.escrowV2.close()` instead.
329
- */
330
- async closeEscrow(agentWallet) {
331
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
332
- const [escrowPda] = (0, pda_1.deriveEscrow)(agentPda, this.wallet);
333
- return this.methods
334
- .closeEscrow()
335
- .accounts({
336
- depositor: this.wallet,
337
- escrow: escrowPda,
338
- })
339
- .rpc();
340
- }
341
- // ── x402 HTTP Headers ────────────────────────────────
342
- /**
343
- * @name buildPaymentHeaders
344
- * @description Build x402 HTTP headers for API requests.
345
- * Include these headers when calling an agent’s x402 endpoint.
346
- *
347
- * @param ctx - Payment context from {@link X402Registry.preparePayment}.
348
- * @param opts - Optional settings.
349
- * @param opts.network - Solana cluster name (defaults to `"mainnet-beta"`).
350
- * @returns An {@link X402Headers} object ready to merge into HTTP requests.
351
- * @since v0.1.0
352
- */
353
- buildPaymentHeaders(ctx, opts) {
354
- // Prefer: explicit override → ctx.networkIdentifier → default
355
- const rawNetwork = opts?.network ?? ctx.networkIdentifier ?? network_1.SapNetwork.SOLANA_MAINNET;
356
- return {
357
- "X-Payment-Protocol": "SAP-x402",
358
- "X-Payment-Escrow": ctx.escrowPda.toBase58(),
359
- "X-Payment-Agent": ctx.agentPda.toBase58(),
360
- "X-Payment-Depositor": ctx.depositorWallet.toBase58(),
361
- "X-Payment-MaxCalls": ctx.maxCalls.toString(),
362
- "X-Payment-PricePerCall": ctx.pricePerCall.toString(),
363
- "X-Payment-Program": this.program.programId.toBase58(),
364
- "X-Payment-Network": rawNetwork,
365
- };
366
- }
367
- /**
368
- * @name buildPaymentHeadersFromEscrow
369
- * @description Build x402 headers directly from an agent wallet (fetches escrow data).
370
- * Convenience method that fetches the escrow account on-chain.
371
- *
372
- * @param agentWallet - Agent wallet to look up the escrow for.
373
- * @param opts - Optional settings.
374
- * @param opts.network - Network identifier for the `X-Payment-Network` header.
375
- * Defaults to `SapNetwork.SOLANA_MAINNET`.
376
- * @returns An {@link X402Headers} object, or `null` if no escrow exists.
377
- * @since v0.1.0
378
- */
379
- async buildPaymentHeadersFromEscrow(agentWallet, opts) {
380
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
381
- const resolved = await this.resolveEscrow(agentPda, this.wallet);
382
- if (!resolved)
383
- return null;
384
- const escrow = resolved.escrow;
385
- return {
386
- "X-Payment-Protocol": "SAP-x402",
387
- "X-Payment-Escrow": resolved.escrowPda.toBase58(),
388
- "X-Payment-Agent": agentPda.toBase58(),
389
- "X-Payment-Depositor": this.wallet.toBase58(),
390
- "X-Payment-MaxCalls": escrow.maxCalls.toString(),
391
- "X-Payment-PricePerCall": escrow.pricePerCall.toString(),
392
- "X-Payment-Program": this.program.programId.toBase58(),
393
- "X-Payment-Network": opts?.network ?? network_1.SapNetwork.SOLANA_MAINNET,
394
- };
395
- }
396
- // ── Settlement (Agent Side) ──────────────────────────
397
- /**
398
- * @name settle
399
- * @description Settle calls — agent claims payment for calls served.
400
- * Must be called by the agent owner wallet. Calculates the settlement
401
- * amount using the escrow’s pricing and volume curve.
402
- *
403
- * @param depositorWallet - The client wallet that funded the escrow.
404
- * @param callsToSettle - Number of calls to settle.
405
- * @param serviceData - Raw service data (auto-hashed to `service_hash`).
406
- * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
407
- * @returns A {@link SettlementResult} with transaction details and amount.
408
- * @since v0.1.0
409
- * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
410
- *
411
- * @example
412
- * ```ts
413
- * // Default (no priority fee)
414
- * const receipt = await x402.settle(depositor, 1, "data");
415
- *
416
- * // Fast settlement with priority fee
417
- * import { FAST_SETTLE_OPTIONS } from "@synapse-sap/sdk";
418
- * const receipt = await x402.settle(depositor, 1, "data", FAST_SETTLE_OPTIONS);
419
- *
420
- * // Custom priority fee
421
- * const receipt = await x402.settle(depositor, 1, "data", {
422
- * priorityFeeMicroLamports: 10_000,
423
- * computeUnits: 100_000,
424
- * skipPreflight: true,
425
- * });
426
- * ```
427
- */
428
- async settle(depositorWallet, callsToSettle, serviceData, opts) {
429
- const serviceHash = (0, utils_1.hashToArray)((0, utils_1.sha256)(typeof serviceData === "string" ? serviceData : Buffer.from(serviceData)));
430
- const [agentPda] = (0, pda_1.deriveAgent)(this.wallet);
431
- const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
432
- // Auto-detect escrow version
433
- const resolved = await this.resolveEscrow(agentPda, depositorWallet);
434
- if (!resolved) {
435
- throw new Error("No escrow found for this agent + depositor pair");
436
- }
437
- const escrow = resolved.escrow;
438
- const escrowPda = resolved.escrowPda;
439
- const estimate = this.calculateCost(escrow.pricePerCall, escrow.volumeCurve, escrow.totalCallsSettled.toNumber(), callsToSettle);
440
- // Build priority fee instructions (empty array if no opts)
441
- const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(opts);
442
- const rpcOpts = (0, priority_fee_1.buildRpcOptions)(opts);
443
- let builder;
444
- if (resolved.version === 2) {
445
- // V2: settleCallsV2 requires escrow_nonce (default 0)
446
- builder = this.methods
447
- .settleCallsV2(new anchor_1.BN(0), new anchor_1.BN(callsToSettle), serviceHash)
448
- .accounts({
449
- wallet: this.wallet,
450
- agent: agentPda,
451
- agentStats: statsPda,
452
- escrow: escrowPda,
453
- systemProgram: web3_js_1.SystemProgram.programId,
454
- });
455
- }
456
- else {
457
- builder = this.methods
458
- .settleCalls(new anchor_1.BN(callsToSettle), serviceHash)
459
- .accounts({
460
- wallet: this.wallet,
461
- agent: agentPda,
462
- agentStats: statsPda,
463
- escrow: escrowPda,
464
- systemProgram: web3_js_1.SystemProgram.programId,
465
- });
466
- }
467
- if (preIxs.length > 0) {
468
- builder = builder.preInstructions(preIxs);
469
- }
470
- const txSignature = await builder.rpc(rpcOpts);
471
- return {
472
- txSignature,
473
- callsSettled: callsToSettle,
474
- amount: estimate.totalCost,
475
- serviceHash,
476
- };
477
- }
478
- /**
479
- * @name settleBatch
480
- * @description Batch settle — process up to 10 settlements in one TX.
481
- * Must be called by the agent owner wallet. More gas-efficient than
482
- * individual settlements.
483
- *
484
- * Optionally accepts {@link SettleOptions} to configure priority fees,
485
- * compute budget, and RPC behavior for faster confirmation.
486
- *
487
- * @param depositorWallet - The client wallet that funded the escrow.
488
- * @param entries - Array of `{ calls, serviceData }` settlement entries.
489
- * @param opts - Optional {@link SettleOptions} for priority fees and RPC tuning.
490
- * @returns A {@link BatchSettlementResult} with aggregated totals.
491
- * @since v0.1.0
492
- * @updated v0.6.2 — Added optional `opts` parameter for priority fees.
493
- *
494
- * @example
495
- * ```ts
496
- * import { FAST_BATCH_SETTLE_OPTIONS } from "@synapse-sap/sdk";
497
- * const receipt = await x402.settleBatch(depositor, entries, FAST_BATCH_SETTLE_OPTIONS);
498
- * ```
499
- */
500
- async settleBatch(depositorWallet, entries, opts) {
501
- const settlements = entries.map((e) => ({
502
- callsToSettle: new anchor_1.BN(e.calls),
503
- serviceHash: (0, utils_1.hashToArray)((0, utils_1.sha256)(typeof e.serviceData === "string" ? e.serviceData : Buffer.from(e.serviceData))),
504
- }));
505
- const totalCalls = entries.reduce((sum, e) => sum + e.calls, 0);
506
- const [agentPda] = (0, pda_1.deriveAgent)(this.wallet);
507
- const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
508
- // Auto-detect escrow version
509
- const resolved = await this.resolveEscrow(agentPda, depositorWallet);
510
- if (!resolved) {
511
- throw new Error("No escrow found for this agent + depositor pair");
512
- }
513
- const escrow = resolved.escrow;
514
- const escrowPda = resolved.escrowPda;
515
- const estimate = this.calculateCost(escrow.pricePerCall, escrow.volumeCurve, escrow.totalCallsSettled.toNumber(), totalCalls);
516
- // Auto-size CU to the batch length when the caller didn't pin one.
517
- // Default Solana cap (200k) is tight past ~8 entries; a CU limit
518
- // costs nothing extra (only caps the maximum charge).
519
- const effectiveOpts = {
520
- ...opts,
521
- computeUnits: opts?.computeUnits ?? (0, priority_fee_1.computeBatchSettleCu)(settlements.length),
522
- };
523
- const preIxs = (0, priority_fee_1.buildPriorityFeeIxs)(effectiveOpts);
524
- const rpcOpts = (0, priority_fee_1.buildRpcOptions)(effectiveOpts);
525
- let builder = this.methods
526
- .settleBatch(settlements)
527
- .accountsPartial({
528
- wallet: this.wallet,
529
- agent: agentPda,
530
- agentStats: statsPda,
531
- escrow: escrowPda,
532
- systemProgram: web3_js_1.SystemProgram.programId,
533
- });
534
- if (preIxs.length > 0) {
535
- builder = builder.preInstructions(preIxs);
536
- }
537
- const txSignature = await builder.rpc(rpcOpts);
538
- return {
539
- txSignature,
540
- totalCalls,
541
- totalAmount: estimate.totalCost,
542
- settlementCount: entries.length,
543
- };
544
- }
545
- // ── Balance & Status ─────────────────────────────────
546
- /**
547
- * @name getBalance
548
- * @description Get the current escrow balance and status.
549
- * Returns balance, deposit/settlement totals, remaining calls,
550
- * expiry status, and affordable call estimate.
551
- *
552
- * @param agentWallet - Agent wallet of the escrow.
553
- * @param depositor - Depositor wallet (defaults to caller).
554
- * @returns An {@link EscrowBalance}, or `null` if no escrow exists.
555
- * @since v0.1.0
556
- */
557
- async getBalance(agentWallet, depositor) {
558
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
559
- const dep = depositor ?? this.wallet;
560
- const resolved = await this.resolveEscrow(agentPda, dep);
561
- if (!resolved)
562
- return null;
563
- const escrow = resolved.escrow;
564
- const now = Math.floor(Date.now() / 1000);
565
- const isExpired = escrow.expiresAt.toNumber() > 0 && now >= escrow.expiresAt.toNumber();
566
- const maxCalls = escrow.maxCalls.toNumber();
567
- const settled = escrow.totalCallsSettled.toNumber();
568
- const callsRemaining = maxCalls > 0 ? maxCalls - settled : Infinity;
569
- const pricePerCall = escrow.pricePerCall.toNumber();
570
- const balance = escrow.balance.toNumber();
571
- const affordableCalls = pricePerCall > 0
572
- ? Math.floor(balance / pricePerCall)
573
- : Infinity;
574
- return {
575
- balance: escrow.balance,
576
- totalDeposited: escrow.totalDeposited,
577
- totalSettled: escrow.totalSettled,
578
- totalCallsSettled: escrow.totalCallsSettled,
579
- callsRemaining: Math.min(callsRemaining, affordableCalls),
580
- isExpired,
581
- affordableCalls,
582
- };
583
- }
584
- /**
585
- * @name hasEscrow
586
- * @description Check if an escrow exists for a given agent + depositor pair.
587
- *
588
- * @param agentWallet - Agent wallet to check.
589
- * @param depositor - Depositor wallet (defaults to caller).
590
- * @returns `true` if the escrow account exists on-chain.
591
- * @since v0.1.0
592
- */
593
- async hasEscrow(agentWallet, depositor) {
594
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
595
- const dep = depositor ?? this.wallet;
596
- const conn = this.program.provider.connection;
597
- // Check V2 first (nonce=0)
598
- const [v2Pda] = (0, pda_1.deriveEscrowV2)(agentPda, dep, 0);
599
- const v2Info = await conn.getAccountInfo(v2Pda);
600
- if (v2Info !== null)
601
- return true;
602
- // Fall back to V1
603
- const [v1Pda] = (0, pda_1.deriveEscrow)(agentPda, dep);
604
- const v1Info = await conn.getAccountInfo(v1Pda);
605
- return v1Info !== null;
606
- }
607
- /**
608
- * @name fetchEscrow
609
- * @description Fetch the raw escrow account data.
610
- *
611
- * @param agentWallet - Agent wallet of the escrow.
612
- * @param depositor - Depositor wallet (defaults to caller).
613
- * @returns The raw {@link EscrowAccountData}, or `null` if not found.
614
- * @since v0.1.0
615
- */
616
- async fetchEscrow(agentWallet, depositor) {
617
- const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
618
- const dep = depositor ?? this.wallet;
619
- const resolved = await this.resolveEscrow(agentPda, dep);
620
- return resolved?.escrow ?? null;
621
- }
622
- // ── Internals ────────────────────────────────────────
623
- /**
624
- * @name methods
625
- * @description Accessor for the Anchor program methods namespace.
626
- * @returns The program methods object for building RPC calls.
627
- * @private
628
- */
629
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
630
- get methods() {
631
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
632
- return this.program.methods;
633
- }
634
- /**
635
- * @name fetchNullable
636
- * @description Fetch an on-chain account by name and PDA. Returns `null` if not found.
637
- * @param name - Anchor account discriminator name.
638
- * @param pda - Account public key to fetch.
639
- * @returns The deserialized account data, or `null` if the account does not exist.
640
- * @private
641
- */
642
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
643
- async fetchNullable(name, pda) {
644
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
645
- return this.program.account[name].fetchNullable(pda);
646
- }
647
- /**
648
- * @name resolveEscrow
649
- * @description Try to find an escrow: V2 (nonce=0) first, then V1 fallback.
650
- * Returns the escrow data, PDA, and version indicator.
651
- * @private
652
- */
653
- async resolveEscrow(agentPda, depositor) {
654
- // Try V2 first (nonce=0 is the default)
655
- const [v2Pda] = (0, pda_1.deriveEscrowV2)(agentPda, depositor, 0);
656
- const v2 = await this.fetchNullable("escrowAccountV2", v2Pda);
657
- if (v2)
658
- return { escrow: v2, escrowPda: v2Pda, version: 2 };
659
- // Fall back to V1
660
- const [v1Pda] = (0, pda_1.deriveEscrow)(agentPda, depositor);
661
- const v1 = await this.fetchNullable("escrowAccount", v1Pda);
662
- if (v1)
663
- return { escrow: v1, escrowPda: v1Pda, version: 1 };
664
- return null;
665
- }
666
- }
667
- exports.X402Registry = X402Registry;
668
- //# sourceMappingURL=x402.js.map