@wuwei-labs/srsly 3.0.0-beta.21 → 3.0.0-beta.23

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 (489) hide show
  1. package/dist/cjs/accounts/borrower.js +12 -5
  2. package/dist/cjs/accounts/borrower.js.map +1 -1
  3. package/dist/cjs/accounts/contract.js +12 -5
  4. package/dist/cjs/accounts/contract.js.map +1 -1
  5. package/dist/cjs/accounts/index.js +23 -0
  6. package/dist/cjs/accounts/index.js.map +1 -0
  7. package/dist/cjs/accounts/rental.js +12 -5
  8. package/dist/cjs/accounts/rental.js.map +1 -1
  9. package/dist/cjs/demos.js +190 -62
  10. package/dist/cjs/demos.js.map +1 -1
  11. package/dist/cjs/generated/codama/accounts/borrowerState.js +8 -2
  12. package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
  13. package/dist/cjs/generated/codama/accounts/configState.js +4 -6
  14. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  15. package/dist/cjs/generated/codama/accounts/contractState.js +27 -34
  16. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  17. package/dist/cjs/generated/codama/accounts/index.js +0 -1
  18. package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
  19. package/dist/cjs/generated/codama/accounts/rentalState.js +20 -14
  20. package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
  21. package/dist/cjs/generated/codama/accounts/thread.js +0 -10
  22. package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
  23. package/dist/cjs/generated/codama/errors/srsly.js +39 -30
  24. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  25. package/dist/cjs/generated/codama/instructions/acceptRental.js +69 -118
  26. package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
  27. package/dist/cjs/generated/codama/instructions/activateRental.js +159 -24
  28. package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
  29. package/dist/cjs/generated/codama/instructions/cancelRental.js +28 -33
  30. package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
  31. package/dist/cjs/generated/codama/instructions/claimBorrower.js +3 -11
  32. package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
  33. package/dist/cjs/generated/codama/instructions/claimContract.js +202 -0
  34. package/dist/cjs/generated/codama/instructions/claimContract.js.map +1 -0
  35. package/dist/cjs/generated/codama/instructions/closeBorrower.js +183 -0
  36. package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +1 -0
  37. package/dist/cjs/generated/codama/instructions/closeContract.js +130 -14
  38. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  39. package/dist/cjs/generated/codama/instructions/closeContractThread.js +167 -0
  40. package/dist/cjs/generated/codama/instructions/closeContractThread.js.map +1 -0
  41. package/dist/cjs/generated/codama/instructions/closeRental.js +10 -121
  42. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  43. package/dist/cjs/generated/codama/instructions/createBorrower.js +211 -0
  44. package/dist/cjs/generated/codama/instructions/createBorrower.js.map +1 -0
  45. package/dist/cjs/generated/codama/instructions/createContract.js +46 -30
  46. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  47. package/dist/cjs/generated/codama/instructions/createContractThread.js +317 -0
  48. package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -0
  49. package/dist/cjs/generated/codama/instructions/deleteBorrower.js +115 -0
  50. package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -0
  51. package/dist/cjs/generated/codama/instructions/deleteRental.js +2 -2
  52. package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
  53. package/dist/cjs/generated/codama/instructions/index.js +8 -5
  54. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  55. package/dist/cjs/generated/codama/instructions/payContract.js +224 -0
  56. package/dist/cjs/generated/codama/instructions/payContract.js.map +1 -0
  57. package/dist/cjs/generated/codama/instructions/processContract.js +224 -0
  58. package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -0
  59. package/dist/cjs/generated/codama/instructions/reserveRental.js +94 -60
  60. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  61. package/dist/cjs/generated/codama/instructions/updateBorrower.js +7 -43
  62. package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
  63. package/dist/cjs/generated/codama/instructions/updateConfig.js +4 -6
  64. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  65. package/dist/cjs/generated/codama/instructions/updateContract.js +6 -16
  66. package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
  67. package/dist/cjs/generated/codama/instructions/updateContractThread.js +177 -0
  68. package/dist/cjs/generated/codama/instructions/updateContractThread.js.map +1 -0
  69. package/dist/cjs/generated/codama/programs/srsly.js +43 -35
  70. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  71. package/dist/cjs/generated/codama/types/bidType.js +30 -0
  72. package/dist/cjs/generated/codama/types/bidType.js.map +1 -0
  73. package/dist/cjs/generated/codama/types/contractThreadClosed.js +29 -0
  74. package/dist/cjs/generated/codama/types/contractThreadClosed.js.map +1 -0
  75. package/dist/cjs/generated/codama/types/contractThreadCreated.js +29 -0
  76. package/dist/cjs/generated/codama/types/contractThreadCreated.js.map +1 -0
  77. package/dist/cjs/generated/codama/types/contractThreadUpdated.js +39 -0
  78. package/dist/cjs/generated/codama/types/contractThreadUpdated.js.map +1 -0
  79. package/dist/cjs/generated/codama/types/discountAuthorization.js +2 -0
  80. package/dist/cjs/generated/codama/types/discountAuthorization.js.map +1 -1
  81. package/dist/cjs/generated/codama/types/index.js +6 -2
  82. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  83. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js +33 -0
  84. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js.map +1 -0
  85. package/dist/cjs/generated/codama/types/rentalAccepted.js +2 -10
  86. package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -1
  87. package/dist/cjs/generated/codama/types/rentalActivated.js +2 -0
  88. package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -1
  89. package/dist/cjs/generated/codama/types/rentalExpiredInline.js +31 -0
  90. package/dist/cjs/generated/codama/types/rentalExpiredInline.js.map +1 -0
  91. package/dist/cjs/generated/codama/types/rentalStatus.js +4 -3
  92. package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -1
  93. package/dist/cjs/generated/codama/types/reservationCreated.js +9 -4
  94. package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
  95. package/dist/cjs/generated/codama/types/signal.js +14 -2
  96. package/dist/cjs/generated/codama/types/signal.js.map +1 -1
  97. package/dist/cjs/index.js +4 -221
  98. package/dist/cjs/index.js.map +1 -1
  99. package/dist/cjs/instructions/acceptRental.js +37 -85
  100. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  101. package/dist/cjs/instructions/activateRental.js +85 -0
  102. package/dist/cjs/instructions/activateRental.js.map +1 -0
  103. package/dist/cjs/instructions/cancelRental.js +25 -23
  104. package/dist/cjs/instructions/cancelRental.js.map +1 -1
  105. package/dist/cjs/instructions/claimBorrower.js +44 -22
  106. package/dist/cjs/instructions/claimBorrower.js.map +1 -1
  107. package/dist/cjs/instructions/claimContract.js +56 -0
  108. package/dist/cjs/instructions/claimContract.js.map +1 -0
  109. package/dist/cjs/instructions/closeBorrower.js +58 -0
  110. package/dist/cjs/instructions/closeBorrower.js.map +1 -0
  111. package/dist/cjs/instructions/closeContract.js +13 -12
  112. package/dist/cjs/instructions/closeContract.js.map +1 -1
  113. package/dist/cjs/instructions/closeContractThread.js +66 -0
  114. package/dist/cjs/instructions/closeContractThread.js.map +1 -0
  115. package/dist/cjs/instructions/closeRental.js +34 -45
  116. package/dist/cjs/instructions/closeRental.js.map +1 -1
  117. package/dist/cjs/instructions/createBorrower.js +64 -0
  118. package/dist/cjs/instructions/createBorrower.js.map +1 -0
  119. package/dist/cjs/instructions/createContract.js +2 -34
  120. package/dist/cjs/instructions/createContract.js.map +1 -1
  121. package/dist/cjs/instructions/createContractThread.js +78 -0
  122. package/dist/cjs/instructions/createContractThread.js.map +1 -0
  123. package/dist/cjs/instructions/deleteBorrower.js +60 -0
  124. package/dist/cjs/instructions/deleteBorrower.js.map +1 -0
  125. package/dist/cjs/instructions/deleteRental.js +1 -4
  126. package/dist/cjs/instructions/deleteRental.js.map +1 -1
  127. package/dist/cjs/instructions/index.js +43 -49
  128. package/dist/cjs/instructions/index.js.map +1 -1
  129. package/dist/cjs/instructions/reserveRental.js +70 -68
  130. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  131. package/dist/cjs/instructions/updateBorrower.js +44 -40
  132. package/dist/cjs/instructions/updateBorrower.js.map +1 -1
  133. package/dist/cjs/instructions/updateConfig.js +0 -1
  134. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  135. package/dist/cjs/instructions/updateContract.js +14 -30
  136. package/dist/cjs/instructions/updateContract.js.map +1 -1
  137. package/dist/cjs/instructions/updateContractThread.js +60 -0
  138. package/dist/cjs/instructions/updateContractThread.js.map +1 -0
  139. package/dist/cjs/kit/index.js +37 -3
  140. package/dist/cjs/kit/index.js.map +1 -1
  141. package/dist/cjs/legacy/index.js +15 -16
  142. package/dist/cjs/legacy/index.js.map +1 -1
  143. package/dist/cjs/package.json +1 -1
  144. package/dist/cjs/params/index.js +21 -0
  145. package/dist/cjs/params/index.js.map +1 -0
  146. package/dist/cjs/params/sol.js +71 -0
  147. package/dist/cjs/params/sol.js.map +1 -0
  148. package/dist/cjs/pda/constants.js +7 -3
  149. package/dist/cjs/pda/constants.js.map +1 -1
  150. package/dist/cjs/pda/index.js +9 -23
  151. package/dist/cjs/pda/index.js.map +1 -1
  152. package/dist/cjs/pda/srsly.js +30 -37
  153. package/dist/cjs/pda/srsly.js.map +1 -1
  154. package/dist/cjs/pda/thread.js +38 -29
  155. package/dist/cjs/pda/thread.js.map +1 -1
  156. package/dist/cjs/utils/addresses.js +2 -1
  157. package/dist/cjs/utils/addresses.js.map +1 -1
  158. package/dist/cjs/utils/discountAuth.js +5 -1
  159. package/dist/cjs/utils/discountAuth.js.map +1 -1
  160. package/dist/cjs/utils/index.js +3 -5
  161. package/dist/cjs/utils/index.js.map +1 -1
  162. package/dist/cjs/utils/rental.js +23 -109
  163. package/dist/cjs/utils/rental.js.map +1 -1
  164. package/dist/cjs/version.js +1 -1
  165. package/dist/esm/accounts/borrower.js +12 -5
  166. package/dist/esm/accounts/borrower.js.map +1 -1
  167. package/dist/esm/accounts/contract.js +12 -5
  168. package/dist/esm/accounts/contract.js.map +1 -1
  169. package/dist/esm/accounts/index.js +7 -0
  170. package/dist/esm/accounts/index.js.map +1 -0
  171. package/dist/esm/accounts/rental.js +12 -5
  172. package/dist/esm/accounts/rental.js.map +1 -1
  173. package/dist/esm/demos.js +189 -61
  174. package/dist/esm/demos.js.map +1 -1
  175. package/dist/esm/generated/codama/accounts/borrowerState.js +9 -3
  176. package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
  177. package/dist/esm/generated/codama/accounts/configState.js +4 -6
  178. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  179. package/dist/esm/generated/codama/accounts/contractState.js +28 -35
  180. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  181. package/dist/esm/generated/codama/accounts/index.js +0 -1
  182. package/dist/esm/generated/codama/accounts/index.js.map +1 -1
  183. package/dist/esm/generated/codama/accounts/rentalState.js +22 -16
  184. package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
  185. package/dist/esm/generated/codama/accounts/thread.js +0 -10
  186. package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
  187. package/dist/esm/generated/codama/errors/srsly.js +37 -28
  188. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  189. package/dist/esm/generated/codama/instructions/acceptRental.js +70 -119
  190. package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
  191. package/dist/esm/generated/codama/instructions/activateRental.js +161 -26
  192. package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
  193. package/dist/esm/generated/codama/instructions/cancelRental.js +29 -34
  194. package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
  195. package/dist/esm/generated/codama/instructions/claimBorrower.js +4 -12
  196. package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
  197. package/dist/esm/generated/codama/instructions/claimContract.js +192 -0
  198. package/dist/esm/generated/codama/instructions/claimContract.js.map +1 -0
  199. package/dist/esm/generated/codama/instructions/closeBorrower.js +173 -0
  200. package/dist/esm/generated/codama/instructions/closeBorrower.js.map +1 -0
  201. package/dist/esm/generated/codama/instructions/closeContract.js +130 -14
  202. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  203. package/dist/esm/generated/codama/instructions/closeContractThread.js +157 -0
  204. package/dist/esm/generated/codama/instructions/closeContractThread.js.map +1 -0
  205. package/dist/esm/generated/codama/instructions/closeRental.js +11 -122
  206. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  207. package/dist/esm/generated/codama/instructions/createBorrower.js +201 -0
  208. package/dist/esm/generated/codama/instructions/createBorrower.js.map +1 -0
  209. package/dist/esm/generated/codama/instructions/createContract.js +47 -31
  210. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  211. package/dist/esm/generated/codama/instructions/createContractThread.js +307 -0
  212. package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -0
  213. package/dist/esm/generated/codama/instructions/deleteBorrower.js +105 -0
  214. package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -0
  215. package/dist/esm/generated/codama/instructions/deleteRental.js +2 -2
  216. package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
  217. package/dist/esm/generated/codama/instructions/index.js +8 -5
  218. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  219. package/dist/esm/generated/codama/instructions/payContract.js +214 -0
  220. package/dist/esm/generated/codama/instructions/payContract.js.map +1 -0
  221. package/dist/esm/generated/codama/instructions/processContract.js +214 -0
  222. package/dist/esm/generated/codama/instructions/processContract.js.map +1 -0
  223. package/dist/esm/generated/codama/instructions/reserveRental.js +95 -61
  224. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  225. package/dist/esm/generated/codama/instructions/updateBorrower.js +8 -43
  226. package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
  227. package/dist/esm/generated/codama/instructions/updateConfig.js +5 -7
  228. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  229. package/dist/esm/generated/codama/instructions/updateContract.js +7 -17
  230. package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
  231. package/dist/esm/generated/codama/instructions/updateContractThread.js +167 -0
  232. package/dist/esm/generated/codama/instructions/updateContractThread.js.map +1 -0
  233. package/dist/esm/generated/codama/programs/srsly.js +43 -35
  234. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  235. package/dist/esm/generated/codama/types/bidType.js +24 -0
  236. package/dist/esm/generated/codama/types/bidType.js.map +1 -0
  237. package/dist/esm/generated/codama/types/contractThreadClosed.js +24 -0
  238. package/dist/esm/generated/codama/types/contractThreadClosed.js.map +1 -0
  239. package/dist/esm/generated/codama/types/contractThreadCreated.js +24 -0
  240. package/dist/esm/generated/codama/types/contractThreadCreated.js.map +1 -0
  241. package/dist/esm/generated/codama/types/contractThreadUpdated.js +34 -0
  242. package/dist/esm/generated/codama/types/contractThreadUpdated.js.map +1 -0
  243. package/dist/esm/generated/codama/types/discountAuthorization.js +3 -1
  244. package/dist/esm/generated/codama/types/discountAuthorization.js.map +1 -1
  245. package/dist/esm/generated/codama/types/index.js +6 -2
  246. package/dist/esm/generated/codama/types/index.js.map +1 -1
  247. package/dist/esm/generated/codama/types/queuedRentalRefunded.js +28 -0
  248. package/dist/esm/generated/codama/types/queuedRentalRefunded.js.map +1 -0
  249. package/dist/esm/generated/codama/types/rentalAccepted.js +2 -10
  250. package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -1
  251. package/dist/esm/generated/codama/types/rentalActivated.js +3 -1
  252. package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -1
  253. package/dist/esm/generated/codama/types/rentalExpiredInline.js +26 -0
  254. package/dist/esm/generated/codama/types/rentalExpiredInline.js.map +1 -0
  255. package/dist/esm/generated/codama/types/rentalStatus.js +4 -3
  256. package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -1
  257. package/dist/esm/generated/codama/types/reservationCreated.js +10 -5
  258. package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
  259. package/dist/esm/generated/codama/types/signal.js +15 -3
  260. package/dist/esm/generated/codama/types/signal.js.map +1 -1
  261. package/dist/esm/index.js +1 -99
  262. package/dist/esm/index.js.map +1 -1
  263. package/dist/esm/instructions/acceptRental.js +41 -89
  264. package/dist/esm/instructions/acceptRental.js.map +1 -1
  265. package/dist/esm/instructions/activateRental.js +82 -0
  266. package/dist/esm/instructions/activateRental.js.map +1 -0
  267. package/dist/esm/instructions/cancelRental.js +26 -24
  268. package/dist/esm/instructions/cancelRental.js.map +1 -1
  269. package/dist/esm/instructions/claimBorrower.js +45 -23
  270. package/dist/esm/instructions/claimBorrower.js.map +1 -1
  271. package/dist/esm/instructions/claimContract.js +53 -0
  272. package/dist/esm/instructions/claimContract.js.map +1 -0
  273. package/dist/esm/instructions/closeBorrower.js +55 -0
  274. package/dist/esm/instructions/closeBorrower.js.map +1 -0
  275. package/dist/esm/instructions/closeContract.js +13 -12
  276. package/dist/esm/instructions/closeContract.js.map +1 -1
  277. package/dist/esm/instructions/closeContractThread.js +63 -0
  278. package/dist/esm/instructions/closeContractThread.js.map +1 -0
  279. package/dist/esm/instructions/closeRental.js +35 -46
  280. package/dist/esm/instructions/closeRental.js.map +1 -1
  281. package/dist/esm/instructions/createBorrower.js +61 -0
  282. package/dist/esm/instructions/createBorrower.js.map +1 -0
  283. package/dist/esm/instructions/createContract.js +2 -34
  284. package/dist/esm/instructions/createContract.js.map +1 -1
  285. package/dist/esm/instructions/createContractThread.js +75 -0
  286. package/dist/esm/instructions/createContractThread.js.map +1 -0
  287. package/dist/esm/instructions/deleteBorrower.js +57 -0
  288. package/dist/esm/instructions/deleteBorrower.js.map +1 -0
  289. package/dist/esm/instructions/deleteRental.js +1 -4
  290. package/dist/esm/instructions/deleteRental.js.map +1 -1
  291. package/dist/esm/instructions/index.js +29 -24
  292. package/dist/esm/instructions/index.js.map +1 -1
  293. package/dist/esm/instructions/reserveRental.js +71 -69
  294. package/dist/esm/instructions/reserveRental.js.map +1 -1
  295. package/dist/esm/instructions/updateBorrower.js +45 -41
  296. package/dist/esm/instructions/updateBorrower.js.map +1 -1
  297. package/dist/esm/instructions/updateConfig.js +0 -1
  298. package/dist/esm/instructions/updateConfig.js.map +1 -1
  299. package/dist/esm/instructions/updateContract.js +14 -30
  300. package/dist/esm/instructions/updateContract.js.map +1 -1
  301. package/dist/esm/instructions/updateContractThread.js +57 -0
  302. package/dist/esm/instructions/updateContractThread.js.map +1 -0
  303. package/dist/esm/kit/index.js +11 -3
  304. package/dist/esm/kit/index.js.map +1 -1
  305. package/dist/esm/legacy/index.js +13 -14
  306. package/dist/esm/legacy/index.js.map +1 -1
  307. package/dist/esm/package.json +1 -1
  308. package/dist/esm/params/index.js +5 -0
  309. package/dist/esm/params/index.js.map +1 -0
  310. package/dist/esm/params/sol.js +68 -0
  311. package/dist/esm/params/sol.js.map +1 -0
  312. package/dist/esm/pda/constants.js +6 -2
  313. package/dist/esm/pda/constants.js.map +1 -1
  314. package/dist/esm/pda/index.js +3 -21
  315. package/dist/esm/pda/index.js.map +1 -1
  316. package/dist/esm/pda/srsly.js +29 -36
  317. package/dist/esm/pda/srsly.js.map +1 -1
  318. package/dist/esm/pda/thread.js +37 -29
  319. package/dist/esm/pda/thread.js.map +1 -1
  320. package/dist/esm/utils/addresses.js +2 -1
  321. package/dist/esm/utils/addresses.js.map +1 -1
  322. package/dist/esm/utils/discountAuth.js +5 -1
  323. package/dist/esm/utils/discountAuth.js.map +1 -1
  324. package/dist/esm/utils/index.js +1 -1
  325. package/dist/esm/utils/index.js.map +1 -1
  326. package/dist/esm/utils/rental.js +22 -106
  327. package/dist/esm/utils/rental.js.map +1 -1
  328. package/dist/esm/version.js +1 -1
  329. package/dist/idl/srsly.json +1904 -1945
  330. package/dist/types/accounts/borrower.d.ts.map +1 -1
  331. package/dist/types/accounts/contract.d.ts.map +1 -1
  332. package/dist/types/accounts/index.d.ts +7 -0
  333. package/dist/types/accounts/index.d.ts.map +1 -0
  334. package/dist/types/accounts/rental.d.ts.map +1 -1
  335. package/dist/types/demos.d.ts +28 -10
  336. package/dist/types/demos.d.ts.map +1 -1
  337. package/dist/types/generated/codama/accounts/borrowerState.d.ts +15 -3
  338. package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
  339. package/dist/types/generated/codama/accounts/configState.d.ts +0 -4
  340. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  341. package/dist/types/generated/codama/accounts/contractState.d.ts +51 -74
  342. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  343. package/dist/types/generated/codama/accounts/index.d.ts +0 -1
  344. package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
  345. package/dist/types/generated/codama/accounts/rentalState.d.ts +46 -34
  346. package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
  347. package/dist/types/generated/codama/accounts/thread.d.ts +0 -4
  348. package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
  349. package/dist/types/generated/codama/errors/srsly.d.ts +32 -26
  350. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  351. package/dist/types/generated/codama/instructions/acceptRental.d.ts +53 -62
  352. package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
  353. package/dist/types/generated/codama/instructions/activateRental.d.ts +76 -32
  354. package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
  355. package/dist/types/generated/codama/instructions/cancelRental.d.ts +28 -25
  356. package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
  357. package/dist/types/generated/codama/instructions/claimBorrower.d.ts +4 -24
  358. package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
  359. package/dist/types/generated/codama/instructions/claimContract.d.ts +79 -0
  360. package/dist/types/generated/codama/instructions/claimContract.d.ts.map +1 -0
  361. package/dist/types/generated/codama/instructions/closeBorrower.d.ts +83 -0
  362. package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +1 -0
  363. package/dist/types/generated/codama/instructions/closeContract.d.ts +70 -18
  364. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  365. package/dist/types/generated/codama/instructions/closeContractThread.d.ts +67 -0
  366. package/dist/types/generated/codama/instructions/closeContractThread.d.ts.map +1 -0
  367. package/dist/types/generated/codama/instructions/closeRental.d.ts +20 -70
  368. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  369. package/dist/types/generated/codama/instructions/createBorrower.d.ts +88 -0
  370. package/dist/types/generated/codama/instructions/createBorrower.d.ts.map +1 -0
  371. package/dist/types/generated/codama/instructions/createContract.d.ts +28 -32
  372. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  373. package/dist/types/generated/codama/instructions/createContractThread.d.ts +133 -0
  374. package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -0
  375. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +55 -0
  376. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -0
  377. package/dist/types/generated/codama/instructions/deleteRental.d.ts +4 -1
  378. package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
  379. package/dist/types/generated/codama/instructions/index.d.ts +8 -5
  380. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  381. package/dist/types/generated/codama/instructions/payContract.d.ts +100 -0
  382. package/dist/types/generated/codama/instructions/payContract.d.ts.map +1 -0
  383. package/dist/types/generated/codama/instructions/processContract.d.ts +100 -0
  384. package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -0
  385. package/dist/types/generated/codama/instructions/reserveRental.d.ts +88 -68
  386. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  387. package/dist/types/generated/codama/instructions/updateBorrower.d.ts +21 -19
  388. package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
  389. package/dist/types/generated/codama/instructions/updateConfig.d.ts +0 -6
  390. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  391. package/dist/types/generated/codama/instructions/updateContract.d.ts +2 -14
  392. package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
  393. package/dist/types/generated/codama/instructions/updateContractThread.d.ts +76 -0
  394. package/dist/types/generated/codama/instructions/updateContractThread.d.ts.map +1 -0
  395. package/dist/types/generated/codama/programs/srsly.d.ts +40 -32
  396. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  397. package/dist/types/generated/codama/types/bidType.d.ts +18 -0
  398. package/dist/types/generated/codama/types/bidType.d.ts.map +1 -0
  399. package/dist/types/generated/codama/types/contractThreadClosed.d.ts +17 -0
  400. package/dist/types/generated/codama/types/contractThreadClosed.d.ts.map +1 -0
  401. package/dist/types/generated/codama/types/contractThreadCreated.d.ts +17 -0
  402. package/dist/types/generated/codama/types/contractThreadCreated.d.ts.map +1 -0
  403. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts +24 -0
  404. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts.map +1 -0
  405. package/dist/types/generated/codama/types/discountAuthorization.d.ts +5 -1
  406. package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +1 -1
  407. package/dist/types/generated/codama/types/index.d.ts +6 -2
  408. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  409. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts +24 -0
  410. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts.map +1 -0
  411. package/dist/types/generated/codama/types/rentalAccepted.d.ts +2 -10
  412. package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -1
  413. package/dist/types/generated/codama/types/rentalActivated.d.ts +7 -1
  414. package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -1
  415. package/dist/types/generated/codama/types/rentalExpiredInline.d.ts +18 -0
  416. package/dist/types/generated/codama/types/rentalExpiredInline.d.ts.map +1 -0
  417. package/dist/types/generated/codama/types/rentalStatus.d.ts +4 -3
  418. package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -1
  419. package/dist/types/generated/codama/types/reservationCreated.d.ts +9 -4
  420. package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
  421. package/dist/types/generated/codama/types/signal.d.ts +8 -6
  422. package/dist/types/generated/codama/types/signal.d.ts.map +1 -1
  423. package/dist/types/index.d.ts +1 -42
  424. package/dist/types/index.d.ts.map +1 -1
  425. package/dist/types/instructions/acceptRental.d.ts +2 -31
  426. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  427. package/dist/types/instructions/activateRental.d.ts +41 -0
  428. package/dist/types/instructions/activateRental.d.ts.map +1 -0
  429. package/dist/types/instructions/cancelRental.d.ts +8 -18
  430. package/dist/types/instructions/cancelRental.d.ts.map +1 -1
  431. package/dist/types/instructions/claimBorrower.d.ts +33 -11
  432. package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
  433. package/dist/types/instructions/claimContract.d.ts +40 -0
  434. package/dist/types/instructions/claimContract.d.ts.map +1 -0
  435. package/dist/types/instructions/closeBorrower.d.ts +51 -0
  436. package/dist/types/instructions/closeBorrower.d.ts.map +1 -0
  437. package/dist/types/instructions/closeContract.d.ts +1 -12
  438. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  439. package/dist/types/instructions/closeContractThread.d.ts +40 -0
  440. package/dist/types/instructions/closeContractThread.d.ts.map +1 -0
  441. package/dist/types/instructions/closeRental.d.ts +6 -14
  442. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  443. package/dist/types/instructions/createBorrower.d.ts +49 -0
  444. package/dist/types/instructions/createBorrower.d.ts.map +1 -0
  445. package/dist/types/instructions/createContract.d.ts +1 -41
  446. package/dist/types/instructions/createContract.d.ts.map +1 -1
  447. package/dist/types/instructions/createContractThread.d.ts +51 -0
  448. package/dist/types/instructions/createContractThread.d.ts.map +1 -0
  449. package/dist/types/instructions/deleteBorrower.d.ts +56 -0
  450. package/dist/types/instructions/deleteBorrower.d.ts.map +1 -0
  451. package/dist/types/instructions/deleteRental.d.ts +3 -2
  452. package/dist/types/instructions/deleteRental.d.ts.map +1 -1
  453. package/dist/types/instructions/index.d.ts +29 -24
  454. package/dist/types/instructions/index.d.ts.map +1 -1
  455. package/dist/types/instructions/reserveRental.d.ts +33 -29
  456. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  457. package/dist/types/instructions/updateBorrower.d.ts +23 -29
  458. package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
  459. package/dist/types/instructions/updateConfig.d.ts +0 -4
  460. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  461. package/dist/types/instructions/updateContract.d.ts +11 -33
  462. package/dist/types/instructions/updateContract.d.ts.map +1 -1
  463. package/dist/types/instructions/updateContractThread.d.ts +48 -0
  464. package/dist/types/instructions/updateContractThread.d.ts.map +1 -0
  465. package/dist/types/kit/index.d.ts +10 -3
  466. package/dist/types/kit/index.d.ts.map +1 -1
  467. package/dist/types/legacy/index.d.ts +13 -39
  468. package/dist/types/legacy/index.d.ts.map +1 -1
  469. package/dist/types/params/index.d.ts +5 -0
  470. package/dist/types/params/index.d.ts.map +1 -0
  471. package/dist/types/params/sol.d.ts +34 -0
  472. package/dist/types/params/sol.d.ts.map +1 -0
  473. package/dist/types/pda/constants.d.ts +6 -2
  474. package/dist/types/pda/constants.d.ts.map +1 -1
  475. package/dist/types/pda/index.d.ts +3 -21
  476. package/dist/types/pda/index.d.ts.map +1 -1
  477. package/dist/types/pda/srsly.d.ts +13 -15
  478. package/dist/types/pda/srsly.d.ts.map +1 -1
  479. package/dist/types/pda/thread.d.ts +17 -18
  480. package/dist/types/pda/thread.d.ts.map +1 -1
  481. package/dist/types/utils/addresses.d.ts.map +1 -1
  482. package/dist/types/utils/discountAuth.d.ts +4 -0
  483. package/dist/types/utils/discountAuth.d.ts.map +1 -1
  484. package/dist/types/utils/index.d.ts +1 -1
  485. package/dist/types/utils/index.d.ts.map +1 -1
  486. package/dist/types/utils/rental.d.ts +8 -66
  487. package/dist/types/utils/rental.d.ts.map +1 -1
  488. package/dist/types/version.d.ts +1 -1
  489. package/package.json +1 -1
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @purpose Simplified activateRental instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated activateRental instruction.
5
+ * Manually activates a queued rental when automation is delayed or unavailable.
6
+ */
7
+ import { address } from '@solana/kit';
8
+ import { getActivateRentalInstructionAsync } from '../generated/codama/instructions';
9
+ import { mergeConfig, getAddresses } from '../utils/config';
10
+ import { toTransactionSigner } from '../utils/signer';
11
+ import { prepareInstructions } from '../utils/instructions';
12
+ import { fetchConfig } from '../accounts/config';
13
+ import { fetchContract } from '../accounts/contract';
14
+ import { fetchRental } from '../accounts/rental';
15
+ import { fetchBorrower } from '../accounts/borrower';
16
+ import { deriveActiveRental, deriveQueuedRental, deriveRentalAuthority } from '../pda/srsly';
17
+ import { deriveContractThread, deriveFiber } from '../pda/thread';
18
+ import { deriveAssociatedTokenAccount } from '../pda/token';
19
+ /**
20
+ * Manually activate a queued rental
21
+ *
22
+ * This is a fallback for when the Antegen automation thread is delayed.
23
+ * Anyone can call this — it's permissionless. The queued rental will be
24
+ * promoted to active, the fleet will be delegated to the borrower in SAGE,
25
+ * and deferred fees will be paid.
26
+ *
27
+ * @param params - Activate rental parameters
28
+ * @param config - Optional SDK configuration overrides
29
+ * @returns Kit instruction (or web3.js if PublicKey in config)
30
+ */
31
+ export async function activateRental(params, config) {
32
+ const finalConfig = mergeConfig(config);
33
+ if (!params.payer) {
34
+ throw new Error('payer is required');
35
+ }
36
+ if (!params.contract) {
37
+ throw new Error('contract is required');
38
+ }
39
+ const payerSigner = toTransactionSigner(params.payer);
40
+ const addresses = getAddresses(config);
41
+ const programAddress = address(addresses.srsly);
42
+ const contractAddress = address(params.contract);
43
+ // Fetch config and contract
44
+ const configAccount = await fetchConfig(finalConfig.rpcUrl);
45
+ const atlasMint = configAccount.data.atlasMint;
46
+ const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
47
+ // Derive rental PDAs
48
+ const activeRental = await deriveActiveRental(contractAddress);
49
+ const queuedRental = await deriveQueuedRental(contractAddress);
50
+ const rentalAuthority = await deriveRentalAuthority();
51
+ // Derive thread PDAs — only if thread configured
52
+ const thread = address(contractAccount.data.thread);
53
+ const hasThread = thread !== '11111111111111111111111111111111';
54
+ const contractThread = hasThread ? await deriveContractThread(contractAddress, rentalAuthority) : undefined;
55
+ const closeRentalFiber = hasThread && contractThread ? await deriveFiber(contractThread, 1) : undefined;
56
+ // Fetch queued rental to get borrower info, then fetch borrower state for profile faction
57
+ const queuedRentalAccount = await fetchRental(queuedRental, finalConfig.rpcUrl);
58
+ const borrowerState = await fetchBorrower(queuedRentalAccount.data.borrowerState, finalConfig.rpcUrl);
59
+ // Get vault from config and derive vault token account
60
+ const vault = configAccount.data.slyvault;
61
+ const vaultTokenAccount = await deriveAssociatedTokenAccount(vault, atlasMint);
62
+ const kitInstruction = await getActivateRentalInstructionAsync({
63
+ payer: payerSigner,
64
+ contract: contractAddress,
65
+ contractTokenAccount: contractAccount.data.managedTokenAccount,
66
+ mint: atlasMint,
67
+ borrowerProfile: queuedRentalAccount.data.borrowerProfile,
68
+ borrowerProfileFaction: borrowerState.data.borrowerProfileFaction,
69
+ fleet: contractAccount.data.fleet,
70
+ gameId: contractAccount.data.gameId,
71
+ ...(contractThread && { contractThread }),
72
+ ...(closeRentalFiber && { closeRentalFiber }),
73
+ vault,
74
+ vaultTokenAccount,
75
+ sageProgram: address(addresses.sage),
76
+ }, { programAddress });
77
+ return prepareInstructions(kitInstruction, {
78
+ computeUnits: params.computeUnits,
79
+ PublicKey: finalConfig.PublicKey
80
+ });
81
+ }
82
+ //# sourceMappingURL=activateRental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activateRental.js","sourceRoot":"","sources":["../../../src/instructions/activateRental.ts"],"names":[],"mappings":"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"}
@@ -8,26 +8,23 @@ import { address } from '@solana/kit';
8
8
  import { getCancelRentalInstructionAsync } from '../generated/codama/instructions';
9
9
  import { mergeConfig, getAddresses } from '../utils/config';
10
10
  import { toTransactionSigner } from '../utils/signer';
11
- import { deriveRental, deriveRentalAuthority } from '../pda/srsly';
12
- import { deriveRentalThread } from '../pda/thread';
11
+ import { deriveActiveRental } from '../pda/srsly';
12
+ import { deriveAssociatedTokenAccount } from '../pda/token';
13
13
  import { prepareInstructions } from '../utils/instructions';
14
14
  import { convertDuration } from '../params/duration';
15
- import { requireBorrowerRentalSlot } from '../utils/rental';
16
15
  import { fetchConfig } from '../accounts/config';
16
+ import { fetchContract } from '../accounts/contract';
17
17
  /**
18
18
  * Cancel a rental
19
19
  *
20
- * Allows a borrower to cancel an active rental.
20
+ * Allows a borrower to cancel an active rental. Always targets the active
21
+ * rental PDA (no more slot detection needed).
21
22
  *
22
23
  * **Cancellation Behavior:**
23
- * - `cancelDelay = 0`: Instant cancellation (requires `allowInstantCancel` on contract)
24
- * - Sets `Trigger::Immediate` so `rental_pay` fires immediately
25
- * - Returns `InstantCancelNotAllowed` error if contract doesn't allow it
26
- * - `cancelDelay > 0`: Deferred cancellation
27
- * - Rental continues until `now + cancelDelay`
28
- * - Existing Cron trigger handles cleanup when `end_time` is reached
24
+ * - `cancelDelay = 0`: Instant cancellation
25
+ * - `cancelDelay > 0`: Deferred cancellation, rental continues until `now + cancelDelay`
29
26
  *
30
- * Both paths refund the borrower for unused time. Owner gets paid when `rental_pay` fires.
27
+ * Both paths refund the borrower for unused time.
31
28
  *
32
29
  * @param params - Cancellation parameters (borrower, contract, cancelDelay)
33
30
  * @param config - Optional SDK configuration overrides
@@ -41,7 +38,7 @@ import { fetchConfig } from '../accounts/config';
41
38
  * contract: contractAddress
42
39
  * });
43
40
  *
44
- * // Instant cancellation (requires allowInstantCancel on contract)
41
+ * // Instant cancellation
45
42
  * const ix2 = await cancelRental({
46
43
  * borrower: borrowerWallet,
47
44
  * contract: contractAddress,
@@ -73,28 +70,33 @@ export async function cancelRental(params, config) {
73
70
  const atlasMint = configAccount.data.atlasMint;
74
71
  const addresses = getAddresses(config);
75
72
  const programAddress = address(addresses.srsly);
76
- // Auto-detect rental slot if not provided
77
- const rentalSlot = params.rentalSlot ?? await requireBorrowerRentalSlot(params.contract, borrowerSigner.address, finalConfig.rpcUrl || 'https://api.devnet.solana.com');
78
- // Derive rental state using slot
79
- const rentalState = await deriveRental(params.contract, rentalSlot);
80
- const rentalAuthority = await deriveRentalAuthority();
81
- const rentalThread = await deriveRentalThread(rentalState, rentalAuthority);
73
+ // Fetch contract to get fleet
74
+ const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
75
+ const fleet = contractAccount.data.fleet;
76
+ // Derive active rental PDA (no more slot logic)
77
+ const rentalState = await deriveActiveRental(params.contract);
78
+ // Derive contract token account (ATA of contract PDA)
79
+ const contractAddress = address(params.contract);
80
+ const contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
82
81
  // Convert duration to seconds (supports { hours: 1 }, { days: 1 }, etc.)
83
- // Default to 1 hour if not specified (safer than instant cancel which requires flag)
82
+ // Default to 1 hour if not specified (safer than instant cancel)
84
83
  const cancelDelay = params.cancelDelay !== undefined
85
84
  ? BigInt(convertDuration(params.cancelDelay))
86
85
  : BigInt(convertDuration({ hours: 1 }));
86
+ // Resolve contract thread (system_program::ID means no thread configured)
87
+ const thread = address(contractAccount.data.thread);
88
+ const hasThread = thread !== '11111111111111111111111111111111';
87
89
  // Call Codama-generated instruction
88
- // Note: Codama auto-derives config, borrowerState, borrowerTokenAccount,
89
- // rentalTokenAccount, rentalAuthority, antegenProgram, tokenProgram
90
+ // Note: Codama auto-derives config, borrowerState, borrowerTokenAccount, rentalAuthority
90
91
  const kitInstruction = await getCancelRentalInstructionAsync({
91
92
  mint: atlasMint,
92
93
  borrower: borrowerSigner,
93
94
  rentalState,
94
- rentalThread,
95
- contract: address(params.contract),
95
+ contractTokenAccount,
96
+ contract: contractAddress,
97
+ fleet: address(fleet),
98
+ ...(hasThread && { contractThread: thread }),
96
99
  cancelDelay,
97
- rentalSlot,
98
100
  }, { programAddress });
99
101
  return prepareInstructions(kitInstruction, {
100
102
  computeUnits: params.computeUnits,
@@ -1 +1 @@
1
- {"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../src/instructions/cancelRental.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,12 @@
2
2
  * @purpose Simplified claimBorrower instruction wrapper
3
3
  *
4
4
  * Thin convenience wrapper around Codama-generated claimBorrower instruction.
5
- * Allows borrowers to claim accumulated ATLAS from their managed token account.
5
+ * Allows claiming accumulated ATLAS from a borrower's managed token account.
6
+ * When close is true, bundles a closeBorrower instruction to also close the
7
+ * managed ATA and BorrowerState in a single transaction.
6
8
  */
7
9
  import { address } from '@solana/kit';
8
- import { getClaimBorrowerInstructionAsync } from '../generated/codama/instructions';
10
+ import { getClaimBorrowerInstructionAsync, getCloseBorrowerInstructionAsync } from '../generated/codama/instructions';
9
11
  import { mergeConfig, getAddresses } from '../utils/config';
10
12
  import { toTransactionSigner, getSignerAddress } from '../utils/signer';
11
13
  import { prepareInstructions } from '../utils/instructions';
@@ -18,48 +20,68 @@ import { fetchConfig } from '../accounts/config';
18
20
  * account (an ATA with the borrower_state as authority). This instruction
19
21
  * transfers those funds to the borrower's personal wallet.
20
22
  *
23
+ * The payer and borrower can be different accounts, allowing a third party
24
+ * to pay for the claim transaction on behalf of the borrower.
25
+ *
26
+ * When close is true, a closeBorrower instruction is bundled to also close
27
+ * the managed ATA and BorrowerState PDA in the same transaction.
28
+ *
21
29
  * @param params - Borrower claim parameters
22
30
  * @param config - Optional SDK configuration overrides
23
31
  * @returns Kit instruction (or web3.js if PublicKey in config)
24
32
  *
25
33
  * @example
26
34
  * ```typescript
27
- * // Claim accumulated ATLAS refunds
35
+ * // Self-claim: payer is the borrower
28
36
  * const ix = await claimBorrower({
29
- * borrower: borrowerWallet
37
+ * payer: borrowerWallet,
30
38
  * });
31
39
  *
32
- * // With web3.js
33
- * import { PublicKey } from '@solana/web3.js';
34
- * setSdkConfig({ network: 'mainnet-beta', PublicKey });
35
- * const web3Ix = await claimBorrower({
36
- * borrower: keypair
40
+ * // Third-party claim: someone else pays
41
+ * const ix2 = await claimBorrower({
42
+ * payer: relayerWallet,
43
+ * borrower: "BORROWER_ADDRESS"
44
+ * });
45
+ *
46
+ * // Claim and close the BorrowerState account
47
+ * const ix3 = await claimBorrower({
48
+ * payer: borrowerWallet,
49
+ * close: true
37
50
  * });
38
51
  * ```
39
52
  */
40
53
  export async function claimBorrower(params, config) {
41
- // Merge config
42
54
  const finalConfig = mergeConfig(config);
43
- // Validate required params
44
- if (!params.borrower) {
45
- throw new Error('borrower is required');
55
+ if (!params.payer) {
56
+ throw new Error('payer is required');
46
57
  }
47
- // Convert borrower to transaction signer
48
- const borrowerSigner = toTransactionSigner(params.borrower);
49
- // Get atlasMint from on-chain config
58
+ const payerSigner = toTransactionSigner(params.payer);
59
+ const borrowerAddress = params.borrower
60
+ ? address(params.borrower)
61
+ : getSignerAddress(payerSigner);
50
62
  const configAccount = await fetchConfig(finalConfig.rpcUrl);
51
63
  const atlasMint = configAccount.data.atlasMint;
52
64
  const addresses = getAddresses(config);
53
65
  const programAddress = address(addresses.srsly);
54
- // Call Codama-generated instruction
55
- // Most accounts are auto-derived (config, borrowerState, managed account, destination)
56
- const kitInstruction = await getClaimBorrowerInstructionAsync({
57
- payer: borrowerSigner,
58
- borrower: getSignerAddress(borrowerSigner),
66
+ // Build claim instruction
67
+ const claimIx = await getClaimBorrowerInstructionAsync({
68
+ payer: payerSigner,
69
+ borrower: borrowerAddress,
59
70
  mint: atlasMint,
60
- close: params.close ?? false,
61
71
  }, { programAddress });
62
- return prepareInstructions(kitInstruction, {
72
+ // If close requested, bundle a closeBorrower instruction after the claim
73
+ if (params.close) {
74
+ const closeIx = await getCloseBorrowerInstructionAsync({
75
+ payer: payerSigner,
76
+ borrower: borrowerAddress,
77
+ mint: atlasMint,
78
+ }, { programAddress });
79
+ return prepareInstructions([claimIx, closeIx], {
80
+ computeUnits: params.computeUnits,
81
+ PublicKey: finalConfig.PublicKey
82
+ });
83
+ }
84
+ return prepareInstructions(claimIx, {
63
85
  computeUnits: params.computeUnits,
64
86
  PublicKey: finalConfig.PublicKey
65
87
  });
@@ -1 +1 @@
1
- {"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0BjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,yCAAyC;IACzC,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,oCAAoC;IACpC,uFAAuF;IACvF,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;QACE,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,gBAAgB,CAAC,cAAc,CAAC;QAC1C,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"claimBorrower.js","sourceRoot":"","sources":["../../../src/instructions/claimBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,gCAAgC,CACpD;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,yEAAyE;IACzE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,gCAAgC,CACpD;YACE,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,SAAS;SAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;QAEF,OAAO,mBAAmB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,mBAAmB,CAAC,OAAO,EAAE;QAClC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @purpose Simplified claimContract instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated claimContract instruction.
5
+ * Permissionless — anyone can trigger, but tokens always go to the owner's ATA.
6
+ */
7
+ import { address } from '@solana/kit';
8
+ import { getClaimContractInstructionAsync } from '../generated/codama/instructions';
9
+ import { mergeConfig, getAddresses } from '../utils/config';
10
+ import { toTransactionSigner } from '../utils/signer';
11
+ import { prepareInstructions } from '../utils/instructions';
12
+ import { fetchConfig } from '../accounts/config';
13
+ import { fetchContract } from '../accounts/contract';
14
+ /**
15
+ * Claim contract ATLAS earnings
16
+ *
17
+ * Permissionless — anyone can trigger, but tokens always go to the
18
+ * contract owner's ATA (derived from contract state).
19
+ *
20
+ * @param params - Contract claim parameters
21
+ * @param config - Optional SDK configuration overrides
22
+ * @returns Kit instruction (or web3.js if PublicKey in config)
23
+ */
24
+ export async function claimContract(params, config) {
25
+ const finalConfig = mergeConfig(config);
26
+ if (!params.payer) {
27
+ throw new Error('payer is required');
28
+ }
29
+ if (!params.contract) {
30
+ throw new Error('contract is required');
31
+ }
32
+ const payerSigner = toTransactionSigner(params.payer);
33
+ // Get atlasMint from on-chain config
34
+ const configAccount = await fetchConfig(finalConfig.rpcUrl);
35
+ const atlasMint = configAccount.data.atlasMint;
36
+ const addresses = getAddresses(config);
37
+ const programAddress = address(addresses.srsly);
38
+ // Fetch contract to get owner and contractTokenAccount
39
+ const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
40
+ const contractAddress = address(params.contract);
41
+ const kitInstruction = await getClaimContractInstructionAsync({
42
+ payer: payerSigner,
43
+ owner: contractAccount.data.owner,
44
+ mint: atlasMint,
45
+ contract: contractAddress,
46
+ contractTokenAccount: contractAccount.data.managedTokenAccount,
47
+ }, { programAddress });
48
+ return prepareInstructions(kitInstruction, {
49
+ computeUnits: params.computeUnits,
50
+ PublicKey: finalConfig.PublicKey
51
+ });
52
+ }
53
+ //# sourceMappingURL=claimContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimContract.js","sourceRoot":"","sources":["../../../src/instructions/claimContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuBrD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,uDAAuD;IACvD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;QACE,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK;QACjC,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB;KAC/D,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @purpose Simplified closeBorrower instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated closeBorrower instruction.
5
+ * Closes a borrower's managed token account and BorrowerState.
6
+ * Requires no active rentals and zero managed ATA balance (claim first).
7
+ */
8
+ import { address } from '@solana/kit';
9
+ import { getCloseBorrowerInstructionAsync } from '../generated/codama/instructions';
10
+ import { mergeConfig, getAddresses } from '../utils/config';
11
+ import { toTransactionSigner, getSignerAddress } from '../utils/signer';
12
+ import { prepareInstructions } from '../utils/instructions';
13
+ import { fetchConfig } from '../accounts/config';
14
+ /**
15
+ * Close a borrower's managed token account and BorrowerState
16
+ *
17
+ * Closes the managed ATA and BorrowerState PDA, returning lamports to the
18
+ * borrower wallet. Requires no active rentals and zero managed ATA balance.
19
+ * Call claimBorrower first to withdraw any remaining ATLAS.
20
+ *
21
+ * Permissionless — anyone can trigger since lamports always go to the borrower.
22
+ *
23
+ * @param params - Close borrower parameters
24
+ * @param config - Optional SDK configuration overrides
25
+ * @returns Kit instruction (or web3.js if PublicKey in config)
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const ix = await closeBorrower({ payer: borrowerWallet });
30
+ * ```
31
+ */
32
+ export async function closeBorrower(params, config) {
33
+ const finalConfig = mergeConfig(config);
34
+ if (!params.payer) {
35
+ throw new Error('payer is required');
36
+ }
37
+ const payerSigner = toTransactionSigner(params.payer);
38
+ const borrowerAddress = params.borrower
39
+ ? address(params.borrower)
40
+ : getSignerAddress(payerSigner);
41
+ const configAccount = await fetchConfig(finalConfig.rpcUrl);
42
+ const atlasMint = configAccount.data.atlasMint;
43
+ const addresses = getAddresses(config);
44
+ const programAddress = address(addresses.srsly);
45
+ const kitInstruction = await getCloseBorrowerInstructionAsync({
46
+ payer: payerSigner,
47
+ borrower: borrowerAddress,
48
+ mint: atlasMint,
49
+ }, { programAddress });
50
+ return prepareInstructions(kitInstruction, {
51
+ computeUnits: params.computeUnits,
52
+ PublicKey: finalConfig.PublicKey
53
+ });
54
+ }
55
+ //# sourceMappingURL=closeBorrower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeBorrower.js","sourceRoot":"","sources":["../../../src/instructions/closeBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyBjD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAC3D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -10,6 +10,8 @@ import { mergeConfig, getAddresses } from '../utils/config';
10
10
  import { toTransactionSigner } from '../utils/signer';
11
11
  import { fetchContract } from '../accounts/contract';
12
12
  import { fetchConfig } from '../accounts/config';
13
+ import { deriveAssociatedTokenAccount } from '../pda/token';
14
+ import { deriveContract } from '../pda/srsly';
13
15
  import { prepareInstructions } from '../utils/instructions';
14
16
  /**
15
17
  * Close a rental contract
@@ -32,25 +34,19 @@ import { prepareInstructions } from '../utils/instructions';
32
34
  * const ix = await closeContract({
33
35
  * owner: wallet,
34
36
  * fleet: fleetAddress
35
- * // contract derived from fleet PDA
36
- * // Works even if contract doesn't exist (init_if_needed)
37
37
  * });
38
38
  *
39
39
  * // Option 2: Provide contract only (contract MUST exist)
40
40
  * const ix2 = await closeContract({
41
41
  * owner: wallet,
42
42
  * contract: contractAddress
43
- * // fleet fetched from contract.fleet
44
- * // REQUIRES contract to already exist
45
43
  * });
46
44
  *
47
45
  * // Option 3: Provide both (most explicit, no fetching)
48
46
  * const ix3 = await closeContract({
49
47
  * owner: wallet,
50
48
  * fleet: fleetAddress,
51
- * contract: contractAddress,
52
- * sageProgram: customSageProgram, // Optional
53
- * destinationTokenAccount: customTokenAccount // Optional
49
+ * contract: contractAddress
54
50
  * });
55
51
  * ```
56
52
  */
@@ -82,7 +78,7 @@ export async function closeContract(params, config) {
82
78
  else if (params.fleet) {
83
79
  // Only fleet provided - derive contract from fleet PDA
84
80
  fleetAddress = address(params.fleet);
85
- contractAddress = undefined; // Will be derived on-chain
81
+ contractAddress = await deriveContract(fleetAddress, programAddress);
86
82
  }
87
83
  else if (params.contract) {
88
84
  // Only contract provided - fetch contract to get fleet
@@ -98,16 +94,21 @@ export async function closeContract(params, config) {
98
94
  const sageProgram = params.sageProgram
99
95
  ? address(params.sageProgram)
100
96
  : address(addresses.sage);
101
- // Optional destination token account
102
- const destinationTokenAccount = params.destinationTokenAccount
103
- ? address(params.destinationTokenAccount)
104
- : undefined;
97
+ // Derive contract token account (ATA of contract PDA for ATLAS)
98
+ // For the codama call, we need to provide it since it's not optional in the async input
99
+ // We need contract address to derive it, which may need to be derived from fleet
100
+ // Let codama auto-derive it if we don't have a contract address
101
+ let contractTokenAccount;
102
+ if (contractAddress) {
103
+ contractTokenAccount = await deriveAssociatedTokenAccount(contractAddress, atlasMint);
104
+ }
105
105
  // Call Codama-generated instruction
106
106
  const kitInstruction = await getCloseContractInstructionAsync({
107
107
  owner: ownerSigner,
108
108
  contract: contractAddress,
109
109
  mint: atlasMint,
110
110
  fleet: fleetAddress,
111
+ contractTokenAccount: contractTokenAccount,
111
112
  sageProgram,
112
113
  }, { programAddress });
113
114
  return prepareInstructions(kitInstruction, {
@@ -1 +1 @@
1
- {"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @purpose Simplified closeContractThread instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated closeContractThread instruction.
5
+ * Closes a per-contract automation thread and reclaims rent.
6
+ */
7
+ import { AccountRole, address } from '@solana/kit';
8
+ import { getCloseContractThreadInstructionAsync } from '../generated/codama/instructions';
9
+ import { fetchThread } from '../generated/codama/accounts/thread';
10
+ import { mergeConfig, getAddresses, getRpcUrl } from '../utils/config';
11
+ import { toTransactionSigner } from '../utils/signer';
12
+ import { prepareInstructions } from '../utils/instructions';
13
+ import { createRpc } from '../utils/rpc';
14
+ import { deriveContractThread, deriveFiber } from '../pda/thread';
15
+ import { deriveRentalAuthority } from '../pda/srsly';
16
+ /**
17
+ * Close a per-contract automation thread
18
+ *
19
+ * Closes the Antegen thread and all fiber PDAs, reclaiming rent to the owner.
20
+ * Fetches the thread account to read `fiberIds`, then derives and passes only
21
+ * the fibers that actually exist as remaining accounts.
22
+ *
23
+ * @param params - Thread closing parameters
24
+ * @param config - Optional SDK configuration overrides
25
+ * @returns Kit instruction (or web3.js if PublicKey in config)
26
+ */
27
+ export async function closeContractThread(params, config) {
28
+ const finalConfig = mergeConfig(config);
29
+ if (!params.owner) {
30
+ throw new Error('owner is required');
31
+ }
32
+ if (!params.contract) {
33
+ throw new Error('contract is required');
34
+ }
35
+ const ownerSigner = toTransactionSigner(params.owner);
36
+ const addresses = getAddresses(config);
37
+ const programAddress = address(addresses.srsly);
38
+ const contractAddress = address(params.contract);
39
+ // Derive thread PDA
40
+ const rentalAuthority = await deriveRentalAuthority();
41
+ const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
42
+ // Fetch thread account to read actual fiber_ids
43
+ const rpc = createRpc(getRpcUrl(config));
44
+ const threadAccount = await fetchThread(rpc, contractThread);
45
+ const fiberIds = Array.from(threadAccount.data.fiberIds);
46
+ // Derive fiber PDAs only for fibers that actually exist on the thread
47
+ const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
48
+ address: await deriveFiber(contractThread, id),
49
+ role: AccountRole.WRITABLE,
50
+ })));
51
+ const kitInstruction = await getCloseContractThreadInstructionAsync({
52
+ owner: ownerSigner,
53
+ contract: contractAddress,
54
+ thread: contractThread,
55
+ }, { programAddress });
56
+ // Add fiber PDAs as remaining accounts (writable, non-signer)
57
+ kitInstruction.accounts.push(...fiberAccounts);
58
+ return prepareInstructions(kitInstruction, {
59
+ computeUnits: params.computeUnits,
60
+ PublicKey: finalConfig.PublicKey
61
+ });
62
+ }
63
+ //# sourceMappingURL=closeContractThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeContractThread.js","sourceRoot":"","sources":["../../../src/instructions/closeContractThread.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAsBrD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiC,EACjC,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,oBAAoB;IACpB,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpF,gDAAgD;IAChD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzD,sEAAsE;IACtE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,MAAM,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9C,IAAI,EAAE,WAAW,CAAC,QAAiB;KACpC,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,sCAAsC,CACjE;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,cAAc;KACvB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,8DAA8D;IAC9D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAE/C,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}