@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,148 @@
1
+ "use strict";
2
+ /**
3
+ * @module receipt
4
+ * @description Receipt-based trustless dispute resolution (v0.7).
5
+ *
6
+ * Agents inscribe merkle roots of call receipt batches on-chain.
7
+ * During disputes, agents submit merkle inclusion proofs to prove delivery.
8
+ * After the proof deadline, anyone can trigger automatic proportional resolution.
9
+ *
10
+ * @category Modules
11
+ * @since v0.7.0
12
+ * @packageDocumentation
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ReceiptModule = void 0;
16
+ const web3_js_1 = require("@solana/web3.js");
17
+ const anchor_1 = require("@coral-xyz/anchor");
18
+ const base_1 = require("./base");
19
+ const pda_1 = require("../pda");
20
+ /**
21
+ * @name ReceiptModule
22
+ * @description Manages receipt batch inscriptions, merkle proof submissions,
23
+ * and automatic dispute resolution for the v0.7 trustless settlement layer.
24
+ *
25
+ * @category Modules
26
+ * @since v0.7.0
27
+ * @extends BaseModule
28
+ */
29
+ class ReceiptModule extends base_1.BaseModule {
30
+ // ── Helpers ──────────────────────────────────────────
31
+ toNum(v) {
32
+ return anchor_1.BN.isBN(v) ? v.toNumber() : Number(v);
33
+ }
34
+ // ── PDA helpers ──────────────────────────────────────
35
+ deriveReceiptBatch(escrowV2Pda, batchIndex) {
36
+ return (0, pda_1.deriveReceiptBatch)(escrowV2Pda, batchIndex);
37
+ }
38
+ // ── Instructions ─────────────────────────────────────
39
+ /**
40
+ * Inscribe a receipt batch merkle root on-chain.
41
+ *
42
+ * Called by the **agent** to commit a cryptographic proof of calls delivered.
43
+ * The `merkleRoot` is the root of a merkle tree whose leaves are individual
44
+ * call receipt hashes.
45
+ *
46
+ * @param depositorWallet - The depositor's wallet (needed for escrow PDA derivation).
47
+ * @param nonce - Escrow nonce.
48
+ * @param batchIndex - Zero-based batch index (must equal escrow.receipt_batch_count).
49
+ * @param merkleRoot - 32-byte merkle root of the receipt batch.
50
+ * @param callCount - Number of calls in the batch.
51
+ * @param periodStart - Unix timestamp for the start of the covered period.
52
+ * @param periodEnd - Unix timestamp for the end of the covered period.
53
+ */
54
+ async inscribeReceiptBatch(depositorWallet, nonce, batchIndex, merkleRoot, callCount, periodStart, periodEnd) {
55
+ const [agentPda] = (0, pda_1.deriveAgent)(this.walletPubkey);
56
+ const [escrowPda] = (0, pda_1.deriveEscrowV2)(agentPda, depositorWallet, this.toNum(nonce));
57
+ const [receiptPda] = this.deriveReceiptBatch(escrowPda, batchIndex);
58
+ return this.methods
59
+ .inscribeReceiptBatch(batchIndex, merkleRoot, this.bn(callCount), this.bn(periodStart), this.bn(periodEnd))
60
+ .accounts({
61
+ wallet: this.walletPubkey,
62
+ agent: agentPda,
63
+ escrow: escrowPda,
64
+ receiptBatch: receiptPda,
65
+ systemProgram: web3_js_1.SystemProgram.programId,
66
+ })
67
+ .rpc();
68
+ }
69
+ /**
70
+ * Submit a merkle inclusion proof during a dispute.
71
+ *
72
+ * Called by the **agent** to prove delivery of specific calls.
73
+ * Each proof verifies that a set of receipt hashes are included
74
+ * in the previously inscribed merkle root.
75
+ *
76
+ * @param depositorWallet - The depositor's wallet.
77
+ * @param nonce - Escrow nonce.
78
+ * @param settlementIndex - Index of the disputed pending settlement.
79
+ * @param batchIndex - Receipt batch index containing the proof.
80
+ * @param provenCount - Number of calls proven in this proof submission.
81
+ * @param proof - Array of 32-byte merkle proof hashes.
82
+ * @param leaf - The 32-byte leaf hash being proven.
83
+ */
84
+ async submitReceiptProof(depositorWallet, nonce, settlementIndex, batchIndex, provenCount, proof, leaf) {
85
+ const [agentPda] = (0, pda_1.deriveAgent)(this.walletPubkey);
86
+ const [escrowPda] = (0, pda_1.deriveEscrowV2)(agentPda, depositorWallet, this.toNum(nonce));
87
+ const [pendingPda] = (0, pda_1.derivePendingSettlement)(escrowPda, this.toNum(settlementIndex));
88
+ const [disputePda] = (0, pda_1.deriveDispute)(pendingPda);
89
+ const [receiptPda] = this.deriveReceiptBatch(escrowPda, batchIndex);
90
+ return this.methods
91
+ .submitReceiptProof(batchIndex, this.bn(provenCount), proof, leaf)
92
+ .accounts({
93
+ wallet: this.walletPubkey,
94
+ agent: agentPda,
95
+ escrow: escrowPda,
96
+ pendingSettlement: pendingPda,
97
+ dispute: disputePda,
98
+ receiptBatch: receiptPda,
99
+ })
100
+ .rpc();
101
+ }
102
+ /**
103
+ * Trigger automatic dispute resolution after the proof deadline.
104
+ *
105
+ * Permissionless crank — anyone can call this once the deadline has passed.
106
+ * Resolution is proportional: if the agent proved N of M claimed calls,
107
+ * N/M of the settlement amount goes to the agent, the rest is refunded.
108
+ *
109
+ * @param agentWallet - The agent's wallet.
110
+ * @param depositorWallet - The depositor's wallet.
111
+ * @param nonce - Escrow nonce.
112
+ * @param settlementIndex - Index of the disputed pending settlement.
113
+ */
114
+ async autoResolveDispute(agentWallet, depositorWallet, nonce, settlementIndex) {
115
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
116
+ const [escrowPda] = (0, pda_1.deriveEscrowV2)(agentPda, depositorWallet, this.toNum(nonce));
117
+ const [pendingPda] = (0, pda_1.derivePendingSettlement)(escrowPda, this.toNum(settlementIndex));
118
+ const [disputePda] = (0, pda_1.deriveDispute)(pendingPda);
119
+ const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
120
+ // v0.11 H-3: AgentStake is now a typed required account so the slash on
121
+ // DepositorWins is guaranteed instead of silently skipped.
122
+ const [stakePda] = (0, pda_1.deriveStake)(agentPda);
123
+ return this.methods
124
+ .autoResolveDispute()
125
+ .accounts({
126
+ payer: this.walletPubkey,
127
+ depositor: depositorWallet,
128
+ agentWallet,
129
+ escrow: escrowPda,
130
+ pendingSettlement: pendingPda,
131
+ dispute: disputePda,
132
+ agentStats: statsPda,
133
+ agentStake: stakePda,
134
+ })
135
+ .rpc();
136
+ }
137
+ // ── Fetchers ─────────────────────────────────────────
138
+ async fetchReceiptBatch(escrowV2Pda, batchIndex) {
139
+ const [pda] = this.deriveReceiptBatch(escrowV2Pda, batchIndex);
140
+ return this.fetchAccount("receiptBatch", pda);
141
+ }
142
+ async fetchReceiptBatchNullable(escrowV2Pda, batchIndex) {
143
+ const [pda] = this.deriveReceiptBatch(escrowV2Pda, batchIndex);
144
+ return this.fetchAccountNullable("receiptBatch", pda);
145
+ }
146
+ }
147
+ exports.ReceiptModule = ReceiptModule;
148
+ //# sourceMappingURL=receipt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../../../src/modules/receipt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * @module staking
4
+ * @description Agent staking lifecycle — init, deposit, request unstake,
5
+ * complete unstake, and fetch stake accounts.
6
+ *
7
+ * @category Modules
8
+ * @since v0.7.0
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StakingModule = void 0;
13
+ const web3_js_1 = require("@solana/web3.js");
14
+ const base_1 = require("./base");
15
+ const pda_1 = require("../pda");
16
+ const payments_1 = require("../constants/payments");
17
+ const anchor_errors_1 = require("../utils/anchor-errors");
18
+ /**
19
+ * @name StakingModule
20
+ * @description Manages agent stake accounts — init, deposit, unstake, and fetch.
21
+ *
22
+ * @category Modules
23
+ * @since v0.7.0
24
+ * @extends BaseModule
25
+ */
26
+ class StakingModule extends base_1.BaseModule {
27
+ // ── PDA helpers ──────────────────────────────────────
28
+ deriveStake(agentPda) {
29
+ return (0, pda_1.deriveStake)(agentPda);
30
+ }
31
+ // ── Instructions ─────────────────────────────────────
32
+ async initStake(agentWallet, initialDeposit) {
33
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
34
+ const [stakePda] = this.deriveStake(agentPda);
35
+ // v0.13.0 preflights
36
+ const want = BigInt(this.bn(initialDeposit).toString());
37
+ if (want < payments_1.MIN_AGENT_STAKE_LAMPORTS) {
38
+ (0, anchor_errors_1.throwPredicted)("StakeBelowMinimum", `initial deposit ${want} < MIN_AGENT_STAKE_LAMPORTS ${payments_1.MIN_AGENT_STAKE_LAMPORTS}`);
39
+ }
40
+ await this.requireAccountAbsent("agentStake", stakePda, "Stake already initialized — use depositStake to top up");
41
+ return this.methods
42
+ .initStake(this.bn(initialDeposit))
43
+ .accounts({
44
+ wallet: this.walletPubkey,
45
+ agent: agentPda,
46
+ stake: stakePda,
47
+ systemProgram: web3_js_1.SystemProgram.programId,
48
+ })
49
+ .rpc();
50
+ }
51
+ async deposit(agentWallet, amount) {
52
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
53
+ const [stakePda] = this.deriveStake(agentPda);
54
+ // v0.13.0 preflight — stake must already exist; amount > 0
55
+ if (BigInt(this.bn(amount).toString()) <= 0n) {
56
+ (0, anchor_errors_1.throwPredicted)("InsufficientStake", "Deposit amount must be > 0");
57
+ }
58
+ await this.requireAccountExists("agentStake", stakePda, { predicted: "NoStakeAccount", hint: "Call initStake first" });
59
+ return this.methods
60
+ .depositStake(this.bn(amount))
61
+ .accounts({
62
+ wallet: this.walletPubkey,
63
+ agent: agentPda,
64
+ stake: stakePda,
65
+ systemProgram: web3_js_1.SystemProgram.programId,
66
+ })
67
+ .rpc();
68
+ }
69
+ async requestUnstake(agentWallet, amount) {
70
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
71
+ const [stakePda] = this.deriveStake(agentPda);
72
+ // v0.13.0 preflight — enforce MIN_STAKE floor + no double-pending
73
+ const stake = await this.requireAccountExists("agentStake", stakePda, { predicted: "NoStakeAccount", hint: "No stake account to unstake from" });
74
+ const want = BigInt(this.bn(amount).toString());
75
+ if (want <= 0n)
76
+ (0, anchor_errors_1.throwPredicted)("InsufficientStake", "Unstake amount must be > 0");
77
+ const max = this.getMaxUnstakeLamports(stake);
78
+ if (want > max) {
79
+ (0, anchor_errors_1.throwPredicted)("StakeBelowMinimum", `requested ${want} would drop stake below MIN_AGENT_STAKE_LAMPORTS (max unstake = ${max})`);
80
+ }
81
+ if (BigInt(stake.unstakeAmount.toString()) > 0n) {
82
+ (0, anchor_errors_1.throwPredicted)("UnstakeAlreadyPending", "A pending unstake already exists — completeUnstake first or wait for cooldown");
83
+ }
84
+ return this.methods
85
+ .requestUnstake(this.bn(amount))
86
+ .accounts({
87
+ wallet: this.walletPubkey,
88
+ agent: agentPda,
89
+ stake: stakePda,
90
+ })
91
+ .rpc();
92
+ }
93
+ async completeUnstake(agentWallet) {
94
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
95
+ const [stakePda] = this.deriveStake(agentPda);
96
+ // v0.13.0 preflight — cooldown must have elapsed and an unstake must be pending
97
+ const stake = await this.requireAccountExists("agentStake", stakePda, { predicted: "NoStakeAccount", hint: "No stake account" });
98
+ const pending = BigInt(stake.unstakeAmount.toString());
99
+ if (pending === 0n) {
100
+ (0, anchor_errors_1.throwPredicted)("NoUnstakePending", "Call requestUnstake first");
101
+ }
102
+ const availableAt = BigInt(stake.unstakeAvailableAt.toString());
103
+ const nowSec = BigInt(Math.floor(Date.now() / 1000));
104
+ if (nowSec < availableAt) {
105
+ (0, anchor_errors_1.throwPredicted)("UnstakeCooldownNotMet", `available at unix ${availableAt}, now ${nowSec} (Δ ${availableAt - nowSec}s)`);
106
+ }
107
+ return this.methods
108
+ .completeUnstake()
109
+ .accounts({
110
+ wallet: this.walletPubkey,
111
+ agent: agentPda,
112
+ stake: stakePda,
113
+ })
114
+ .rpc();
115
+ }
116
+ // ── Fetchers ─────────────────────────────────────────
117
+ async fetch(agentPda) {
118
+ const [pda] = this.deriveStake(agentPda);
119
+ return this.fetchAccount("agentStake", pda);
120
+ }
121
+ async fetchNullable(agentPda) {
122
+ const [pda] = this.deriveStake(agentPda);
123
+ return this.fetchAccountNullable("agentStake", pda);
124
+ }
125
+ async fetchByPda(stakePda) {
126
+ return this.fetchAccount("agentStake", stakePda);
127
+ }
128
+ // ── v0.11 helpers ────────────────────────────────────────────
129
+ /**
130
+ * Compute the maximum amount that can be requested via `requestUnstake`
131
+ * without breaching the on-chain {@link MIN_AGENT_STAKE_LAMPORTS} floor.
132
+ *
133
+ * Returns 0 if the agent is already at (or below) the floor.
134
+ *
135
+ * @since v0.11.0
136
+ */
137
+ getMaxUnstakeLamports(stake) {
138
+ const staked = BigInt(stake.stakedAmount.toString());
139
+ if (staked <= payments_1.MIN_AGENT_STAKE_LAMPORTS)
140
+ return 0n;
141
+ return staked - payments_1.MIN_AGENT_STAKE_LAMPORTS;
142
+ }
143
+ /**
144
+ * Returns the lamport delta the agent must `deposit` to satisfy the
145
+ * per-escrow stake-coverage requirement for `escrowLamports`. 0 if already
146
+ * sufficient. Useful for a UI "top up to open this escrow" button.
147
+ *
148
+ * Mirrors the on-chain check in `create_escrow_v2` (v0.11 H-1).
149
+ *
150
+ * @since v0.11.0
151
+ */
152
+ getRequiredTopUp(stake, escrowLamports) {
153
+ const required = (0, payments_1.computeRequiredStakeLamports)(escrowLamports);
154
+ const have = BigInt(stake.stakedAmount.toString());
155
+ return have >= required ? 0n : required - have;
156
+ }
157
+ }
158
+ exports.StakingModule = StakingModule;
159
+ //# sourceMappingURL=staking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/modules/staking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * @module subscription
4
+ * @description Agent subscription lifecycle — create, fund, cancel,
5
+ * close, and fetch subscription accounts.
6
+ *
7
+ * @category Modules
8
+ * @since v0.7.0
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SubscriptionModule = void 0;
13
+ const web3_js_1 = require("@solana/web3.js");
14
+ const anchor_1 = require("@coral-xyz/anchor");
15
+ const base_1 = require("./base");
16
+ const pda_1 = require("../pda");
17
+ /**
18
+ * @name SubscriptionModule
19
+ * @description Manages recurring subscriptions between subscribers and agents.
20
+ *
21
+ * @category Modules
22
+ * @since v0.7.0
23
+ * @extends BaseModule
24
+ */
25
+ class SubscriptionModule extends base_1.BaseModule {
26
+ // ── PDA helpers ──────────────────────────────────────
27
+ toNum(v) {
28
+ return anchor_1.BN.isBN(v) ? v.toNumber() : Number(v);
29
+ }
30
+ deriveSubscription(agentPda, subscriber, subId = 0) {
31
+ return (0, pda_1.deriveSubscription)(agentPda, subscriber ?? this.walletPubkey, this.toNum(subId));
32
+ }
33
+ // ── Instructions ─────────────────────────────────────
34
+ async create(agentWallet, args) {
35
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
36
+ const [subPda] = this.deriveSubscription(agentPda, undefined, args.subId);
37
+ return this.methods
38
+ .createSubscription(this.bn(args.subId), this.bn(args.pricePerInterval), args.billingInterval, this.bn(args.initialFund))
39
+ .accounts({
40
+ subscriber: this.walletPubkey,
41
+ agent: agentPda,
42
+ subscription: subPda,
43
+ systemProgram: web3_js_1.SystemProgram.programId,
44
+ })
45
+ .rpc();
46
+ }
47
+ async fund(agentWallet, subId, amount) {
48
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
49
+ const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
50
+ return this.methods
51
+ .fundSubscription(this.bn(amount))
52
+ .accounts({
53
+ subscriber: this.walletPubkey,
54
+ subscription: subPda,
55
+ systemProgram: web3_js_1.SystemProgram.programId,
56
+ })
57
+ .rpc();
58
+ }
59
+ async cancel(agentWallet, subId = 0) {
60
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
61
+ const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
62
+ return this.methods
63
+ .cancelSubscription()
64
+ .accounts({
65
+ subscriber: this.walletPubkey,
66
+ agentWallet,
67
+ subscription: subPda,
68
+ })
69
+ .rpc();
70
+ }
71
+ async close(agentWallet, subId = 0) {
72
+ const [agentPda] = (0, pda_1.deriveAgent)(agentWallet);
73
+ const [subPda] = this.deriveSubscription(agentPda, undefined, subId);
74
+ return this.methods
75
+ .closeSubscription()
76
+ .accounts({
77
+ subscriber: this.walletPubkey,
78
+ subscription: subPda,
79
+ })
80
+ .rpc();
81
+ }
82
+ // ── Fetchers ─────────────────────────────────────────
83
+ async fetch(agentPda, subscriber, subId = 0) {
84
+ const [pda] = this.deriveSubscription(agentPda, subscriber, subId);
85
+ return this.fetchAccount("subscriptionAccount", pda);
86
+ }
87
+ async fetchNullable(agentPda, subscriber, subId = 0) {
88
+ const [pda] = this.deriveSubscription(agentPda, subscriber, subId);
89
+ return this.fetchAccountNullable("subscriptionAccount", pda);
90
+ }
91
+ async fetchByPda(subPda) {
92
+ return this.fetchAccount("subscriptionAccount", subPda);
93
+ }
94
+ }
95
+ exports.SubscriptionModule = SubscriptionModule;
96
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/modules/subscription.ts"],"names":[],"mappings":"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"}