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

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 (395) hide show
  1. package/dist/cjs/accounts/index.js +23 -0
  2. package/dist/cjs/accounts/index.js.map +1 -0
  3. package/dist/cjs/demos.js +157 -57
  4. package/dist/cjs/demos.js.map +1 -1
  5. package/dist/cjs/generated/codama/accounts/borrowerState.js +8 -2
  6. package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
  7. package/dist/cjs/generated/codama/accounts/configState.js +0 -2
  8. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  9. package/dist/cjs/generated/codama/accounts/contractState.js +23 -30
  10. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  11. package/dist/cjs/generated/codama/accounts/index.js +0 -1
  12. package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
  13. package/dist/cjs/generated/codama/accounts/rentalState.js +20 -14
  14. package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
  15. package/dist/cjs/generated/codama/errors/srsly.js +43 -43
  16. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  17. package/dist/cjs/generated/codama/instructions/acceptRental.js +60 -47
  18. package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
  19. package/dist/cjs/generated/codama/instructions/activateRental.js +144 -22
  20. package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
  21. package/dist/cjs/generated/codama/instructions/cancelRental.js +13 -42
  22. package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
  23. package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
  24. package/dist/cjs/generated/codama/instructions/claimContract.js +197 -0
  25. package/dist/cjs/generated/codama/instructions/claimContract.js.map +1 -0
  26. package/dist/cjs/generated/codama/instructions/closeContract.js +130 -14
  27. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  28. package/dist/cjs/generated/codama/instructions/closeContractThread.js +154 -0
  29. package/dist/cjs/generated/codama/instructions/closeContractThread.js.map +1 -0
  30. package/dist/cjs/generated/codama/instructions/closeRental.js +10 -121
  31. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  32. package/dist/cjs/generated/codama/instructions/createBorrower.js +211 -0
  33. package/dist/cjs/generated/codama/instructions/createBorrower.js.map +1 -0
  34. package/dist/cjs/generated/codama/instructions/createContract.js +40 -24
  35. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  36. package/dist/cjs/generated/codama/instructions/createContractThread.js +299 -0
  37. package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -0
  38. package/dist/cjs/generated/codama/instructions/index.js +6 -5
  39. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  40. package/dist/cjs/generated/codama/instructions/payContract.js +237 -0
  41. package/dist/cjs/generated/codama/instructions/payContract.js.map +1 -0
  42. package/dist/cjs/generated/codama/instructions/reserveRental.js +81 -60
  43. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  44. package/dist/cjs/generated/codama/instructions/updateBorrower.js +7 -43
  45. package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
  46. package/dist/cjs/generated/codama/instructions/updateConfig.js +0 -2
  47. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  48. package/dist/cjs/generated/codama/instructions/updateContract.js +0 -10
  49. package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
  50. package/dist/cjs/generated/codama/instructions/updateContractThread.js +177 -0
  51. package/dist/cjs/generated/codama/instructions/updateContractThread.js.map +1 -0
  52. package/dist/cjs/generated/codama/programs/srsly.js +36 -36
  53. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  54. package/dist/cjs/generated/codama/types/bidType.js +30 -0
  55. package/dist/cjs/generated/codama/types/bidType.js.map +1 -0
  56. package/dist/cjs/generated/codama/types/contractThreadClosed.js +29 -0
  57. package/dist/cjs/generated/codama/types/contractThreadClosed.js.map +1 -0
  58. package/dist/cjs/generated/codama/types/contractThreadCreated.js +29 -0
  59. package/dist/cjs/generated/codama/types/contractThreadCreated.js.map +1 -0
  60. package/dist/cjs/generated/codama/types/contractThreadUpdated.js +39 -0
  61. package/dist/cjs/generated/codama/types/contractThreadUpdated.js.map +1 -0
  62. package/dist/cjs/generated/codama/types/index.js +6 -2
  63. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  64. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js +33 -0
  65. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js.map +1 -0
  66. package/dist/cjs/generated/codama/types/rentalActivated.js +2 -0
  67. package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -1
  68. package/dist/cjs/generated/codama/types/rentalExpiredInline.js +31 -0
  69. package/dist/cjs/generated/codama/types/rentalExpiredInline.js.map +1 -0
  70. package/dist/cjs/generated/codama/types/rentalStatus.js +4 -3
  71. package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -1
  72. package/dist/cjs/generated/codama/types/reservationCreated.js +9 -4
  73. package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
  74. package/dist/cjs/index.js +4 -221
  75. package/dist/cjs/index.js.map +1 -1
  76. package/dist/cjs/instructions/acceptRental.js +23 -79
  77. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  78. package/dist/cjs/instructions/activateRental.js +83 -0
  79. package/dist/cjs/instructions/activateRental.js.map +1 -0
  80. package/dist/cjs/instructions/cancelRental.js +21 -23
  81. package/dist/cjs/instructions/cancelRental.js.map +1 -1
  82. package/dist/cjs/instructions/claimBorrower.js +27 -14
  83. package/dist/cjs/instructions/claimBorrower.js.map +1 -1
  84. package/dist/cjs/instructions/claimContract.js +56 -0
  85. package/dist/cjs/instructions/claimContract.js.map +1 -0
  86. package/dist/cjs/instructions/closeContract.js +13 -12
  87. package/dist/cjs/instructions/closeContract.js.map +1 -1
  88. package/dist/cjs/instructions/closeContractThread.js +58 -0
  89. package/dist/cjs/instructions/closeContractThread.js.map +1 -0
  90. package/dist/cjs/instructions/closeRental.js +34 -45
  91. package/dist/cjs/instructions/closeRental.js.map +1 -1
  92. package/dist/cjs/instructions/createBorrower.js +64 -0
  93. package/dist/cjs/instructions/createBorrower.js.map +1 -0
  94. package/dist/cjs/instructions/createContract.js +2 -34
  95. package/dist/cjs/instructions/createContract.js.map +1 -1
  96. package/dist/cjs/instructions/createContractThread.js +74 -0
  97. package/dist/cjs/instructions/createContractThread.js.map +1 -0
  98. package/dist/cjs/instructions/index.js +41 -49
  99. package/dist/cjs/instructions/index.js.map +1 -1
  100. package/dist/cjs/instructions/reserveRental.js +70 -68
  101. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  102. package/dist/cjs/instructions/updateBorrower.js +44 -40
  103. package/dist/cjs/instructions/updateBorrower.js.map +1 -1
  104. package/dist/cjs/instructions/updateConfig.js +0 -1
  105. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  106. package/dist/cjs/instructions/updateContract.js +14 -30
  107. package/dist/cjs/instructions/updateContract.js.map +1 -1
  108. package/dist/cjs/instructions/updateContractThread.js +60 -0
  109. package/dist/cjs/instructions/updateContractThread.js.map +1 -0
  110. package/dist/cjs/kit/index.js +37 -3
  111. package/dist/cjs/kit/index.js.map +1 -1
  112. package/dist/cjs/legacy/index.js +13 -16
  113. package/dist/cjs/legacy/index.js.map +1 -1
  114. package/dist/cjs/package.json +1 -1
  115. package/dist/cjs/params/index.js +21 -0
  116. package/dist/cjs/params/index.js.map +1 -0
  117. package/dist/cjs/params/sol.js +71 -0
  118. package/dist/cjs/params/sol.js.map +1 -0
  119. package/dist/cjs/pda/constants.js +4 -2
  120. package/dist/cjs/pda/constants.js.map +1 -1
  121. package/dist/cjs/pda/index.js +7 -23
  122. package/dist/cjs/pda/index.js.map +1 -1
  123. package/dist/cjs/pda/srsly.js +30 -37
  124. package/dist/cjs/pda/srsly.js.map +1 -1
  125. package/dist/cjs/pda/thread.js +37 -24
  126. package/dist/cjs/pda/thread.js.map +1 -1
  127. package/dist/cjs/utils/index.js +3 -5
  128. package/dist/cjs/utils/index.js.map +1 -1
  129. package/dist/cjs/utils/rental.js +23 -109
  130. package/dist/cjs/utils/rental.js.map +1 -1
  131. package/dist/cjs/version.js +1 -1
  132. package/dist/esm/accounts/index.js +7 -0
  133. package/dist/esm/accounts/index.js.map +1 -0
  134. package/dist/esm/demos.js +156 -56
  135. package/dist/esm/demos.js.map +1 -1
  136. package/dist/esm/generated/codama/accounts/borrowerState.js +9 -3
  137. package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
  138. package/dist/esm/generated/codama/accounts/configState.js +0 -2
  139. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  140. package/dist/esm/generated/codama/accounts/contractState.js +24 -31
  141. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  142. package/dist/esm/generated/codama/accounts/index.js +0 -1
  143. package/dist/esm/generated/codama/accounts/index.js.map +1 -1
  144. package/dist/esm/generated/codama/accounts/rentalState.js +22 -16
  145. package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
  146. package/dist/esm/generated/codama/errors/srsly.js +41 -41
  147. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  148. package/dist/esm/generated/codama/instructions/acceptRental.js +60 -47
  149. package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
  150. package/dist/esm/generated/codama/instructions/activateRental.js +146 -24
  151. package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
  152. package/dist/esm/generated/codama/instructions/cancelRental.js +14 -43
  153. package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
  154. package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
  155. package/dist/esm/generated/codama/instructions/claimContract.js +187 -0
  156. package/dist/esm/generated/codama/instructions/claimContract.js.map +1 -0
  157. package/dist/esm/generated/codama/instructions/closeContract.js +130 -14
  158. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  159. package/dist/esm/generated/codama/instructions/closeContractThread.js +144 -0
  160. package/dist/esm/generated/codama/instructions/closeContractThread.js.map +1 -0
  161. package/dist/esm/generated/codama/instructions/closeRental.js +11 -122
  162. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  163. package/dist/esm/generated/codama/instructions/createBorrower.js +201 -0
  164. package/dist/esm/generated/codama/instructions/createBorrower.js.map +1 -0
  165. package/dist/esm/generated/codama/instructions/createContract.js +41 -25
  166. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  167. package/dist/esm/generated/codama/instructions/createContractThread.js +289 -0
  168. package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -0
  169. package/dist/esm/generated/codama/instructions/index.js +6 -5
  170. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  171. package/dist/esm/generated/codama/instructions/payContract.js +227 -0
  172. package/dist/esm/generated/codama/instructions/payContract.js.map +1 -0
  173. package/dist/esm/generated/codama/instructions/reserveRental.js +82 -61
  174. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  175. package/dist/esm/generated/codama/instructions/updateBorrower.js +8 -43
  176. package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
  177. package/dist/esm/generated/codama/instructions/updateConfig.js +0 -2
  178. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  179. package/dist/esm/generated/codama/instructions/updateContract.js +1 -11
  180. package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
  181. package/dist/esm/generated/codama/instructions/updateContractThread.js +167 -0
  182. package/dist/esm/generated/codama/instructions/updateContractThread.js.map +1 -0
  183. package/dist/esm/generated/codama/programs/srsly.js +36 -36
  184. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  185. package/dist/esm/generated/codama/types/bidType.js +24 -0
  186. package/dist/esm/generated/codama/types/bidType.js.map +1 -0
  187. package/dist/esm/generated/codama/types/contractThreadClosed.js +24 -0
  188. package/dist/esm/generated/codama/types/contractThreadClosed.js.map +1 -0
  189. package/dist/esm/generated/codama/types/contractThreadCreated.js +24 -0
  190. package/dist/esm/generated/codama/types/contractThreadCreated.js.map +1 -0
  191. package/dist/esm/generated/codama/types/contractThreadUpdated.js +34 -0
  192. package/dist/esm/generated/codama/types/contractThreadUpdated.js.map +1 -0
  193. package/dist/esm/generated/codama/types/index.js +6 -2
  194. package/dist/esm/generated/codama/types/index.js.map +1 -1
  195. package/dist/esm/generated/codama/types/queuedRentalRefunded.js +28 -0
  196. package/dist/esm/generated/codama/types/queuedRentalRefunded.js.map +1 -0
  197. package/dist/esm/generated/codama/types/rentalActivated.js +3 -1
  198. package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -1
  199. package/dist/esm/generated/codama/types/rentalExpiredInline.js +26 -0
  200. package/dist/esm/generated/codama/types/rentalExpiredInline.js.map +1 -0
  201. package/dist/esm/generated/codama/types/rentalStatus.js +4 -3
  202. package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -1
  203. package/dist/esm/generated/codama/types/reservationCreated.js +10 -5
  204. package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
  205. package/dist/esm/index.js +1 -99
  206. package/dist/esm/index.js.map +1 -1
  207. package/dist/esm/instructions/acceptRental.js +26 -82
  208. package/dist/esm/instructions/acceptRental.js.map +1 -1
  209. package/dist/esm/instructions/activateRental.js +80 -0
  210. package/dist/esm/instructions/activateRental.js.map +1 -0
  211. package/dist/esm/instructions/cancelRental.js +22 -24
  212. package/dist/esm/instructions/cancelRental.js.map +1 -1
  213. package/dist/esm/instructions/claimBorrower.js +27 -14
  214. package/dist/esm/instructions/claimBorrower.js.map +1 -1
  215. package/dist/esm/instructions/claimContract.js +53 -0
  216. package/dist/esm/instructions/claimContract.js.map +1 -0
  217. package/dist/esm/instructions/closeContract.js +13 -12
  218. package/dist/esm/instructions/closeContract.js.map +1 -1
  219. package/dist/esm/instructions/closeContractThread.js +55 -0
  220. package/dist/esm/instructions/closeContractThread.js.map +1 -0
  221. package/dist/esm/instructions/closeRental.js +35 -46
  222. package/dist/esm/instructions/closeRental.js.map +1 -1
  223. package/dist/esm/instructions/createBorrower.js +61 -0
  224. package/dist/esm/instructions/createBorrower.js.map +1 -0
  225. package/dist/esm/instructions/createContract.js +2 -34
  226. package/dist/esm/instructions/createContract.js.map +1 -1
  227. package/dist/esm/instructions/createContractThread.js +71 -0
  228. package/dist/esm/instructions/createContractThread.js.map +1 -0
  229. package/dist/esm/instructions/index.js +27 -24
  230. package/dist/esm/instructions/index.js.map +1 -1
  231. package/dist/esm/instructions/reserveRental.js +71 -69
  232. package/dist/esm/instructions/reserveRental.js.map +1 -1
  233. package/dist/esm/instructions/updateBorrower.js +45 -41
  234. package/dist/esm/instructions/updateBorrower.js.map +1 -1
  235. package/dist/esm/instructions/updateConfig.js +0 -1
  236. package/dist/esm/instructions/updateConfig.js.map +1 -1
  237. package/dist/esm/instructions/updateContract.js +14 -30
  238. package/dist/esm/instructions/updateContract.js.map +1 -1
  239. package/dist/esm/instructions/updateContractThread.js +57 -0
  240. package/dist/esm/instructions/updateContractThread.js.map +1 -0
  241. package/dist/esm/kit/index.js +11 -3
  242. package/dist/esm/kit/index.js.map +1 -1
  243. package/dist/esm/legacy/index.js +11 -14
  244. package/dist/esm/legacy/index.js.map +1 -1
  245. package/dist/esm/package.json +1 -1
  246. package/dist/esm/params/index.js +5 -0
  247. package/dist/esm/params/index.js.map +1 -0
  248. package/dist/esm/params/sol.js +68 -0
  249. package/dist/esm/params/sol.js.map +1 -0
  250. package/dist/esm/pda/constants.js +3 -1
  251. package/dist/esm/pda/constants.js.map +1 -1
  252. package/dist/esm/pda/index.js +3 -21
  253. package/dist/esm/pda/index.js.map +1 -1
  254. package/dist/esm/pda/srsly.js +29 -36
  255. package/dist/esm/pda/srsly.js.map +1 -1
  256. package/dist/esm/pda/thread.js +36 -24
  257. package/dist/esm/pda/thread.js.map +1 -1
  258. package/dist/esm/utils/index.js +1 -1
  259. package/dist/esm/utils/index.js.map +1 -1
  260. package/dist/esm/utils/rental.js +22 -106
  261. package/dist/esm/utils/rental.js.map +1 -1
  262. package/dist/esm/version.js +1 -1
  263. package/dist/idl/srsly.json +1704 -1909
  264. package/dist/types/accounts/index.d.ts +7 -0
  265. package/dist/types/accounts/index.d.ts.map +1 -0
  266. package/dist/types/demos.d.ts +24 -10
  267. package/dist/types/demos.d.ts.map +1 -1
  268. package/dist/types/generated/codama/accounts/borrowerState.d.ts +15 -3
  269. package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
  270. package/dist/types/generated/codama/accounts/configState.d.ts +0 -4
  271. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  272. package/dist/types/generated/codama/accounts/contractState.d.ts +51 -74
  273. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  274. package/dist/types/generated/codama/accounts/index.d.ts +0 -1
  275. package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
  276. package/dist/types/generated/codama/accounts/rentalState.d.ts +46 -34
  277. package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
  278. package/dist/types/generated/codama/errors/srsly.d.ts +39 -39
  279. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  280. package/dist/types/generated/codama/instructions/acceptRental.d.ts +50 -35
  281. package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
  282. package/dist/types/generated/codama/instructions/activateRental.d.ts +72 -32
  283. package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
  284. package/dist/types/generated/codama/instructions/cancelRental.d.ts +20 -28
  285. package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
  286. package/dist/types/generated/codama/instructions/claimBorrower.d.ts +3 -18
  287. package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
  288. package/dist/types/generated/codama/instructions/claimContract.d.ts +75 -0
  289. package/dist/types/generated/codama/instructions/claimContract.d.ts.map +1 -0
  290. package/dist/types/generated/codama/instructions/closeContract.d.ts +70 -18
  291. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  292. package/dist/types/generated/codama/instructions/closeContractThread.d.ts +63 -0
  293. package/dist/types/generated/codama/instructions/closeContractThread.d.ts.map +1 -0
  294. package/dist/types/generated/codama/instructions/closeRental.d.ts +20 -70
  295. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  296. package/dist/types/generated/codama/instructions/createBorrower.d.ts +88 -0
  297. package/dist/types/generated/codama/instructions/createBorrower.d.ts.map +1 -0
  298. package/dist/types/generated/codama/instructions/createContract.d.ts +28 -32
  299. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  300. package/dist/types/generated/codama/instructions/createContractThread.d.ts +125 -0
  301. package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -0
  302. package/dist/types/generated/codama/instructions/index.d.ts +6 -5
  303. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  304. package/dist/types/generated/codama/instructions/payContract.d.ts +104 -0
  305. package/dist/types/generated/codama/instructions/payContract.d.ts.map +1 -0
  306. package/dist/types/generated/codama/instructions/reserveRental.d.ts +84 -68
  307. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  308. package/dist/types/generated/codama/instructions/updateBorrower.d.ts +21 -19
  309. package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
  310. package/dist/types/generated/codama/instructions/updateConfig.d.ts +0 -6
  311. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  312. package/dist/types/generated/codama/instructions/updateContract.d.ts +2 -14
  313. package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
  314. package/dist/types/generated/codama/instructions/updateContractThread.d.ts +76 -0
  315. package/dist/types/generated/codama/instructions/updateContractThread.d.ts.map +1 -0
  316. package/dist/types/generated/codama/programs/srsly.d.ts +34 -32
  317. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  318. package/dist/types/generated/codama/types/bidType.d.ts +18 -0
  319. package/dist/types/generated/codama/types/bidType.d.ts.map +1 -0
  320. package/dist/types/generated/codama/types/contractThreadClosed.d.ts +17 -0
  321. package/dist/types/generated/codama/types/contractThreadClosed.d.ts.map +1 -0
  322. package/dist/types/generated/codama/types/contractThreadCreated.d.ts +17 -0
  323. package/dist/types/generated/codama/types/contractThreadCreated.d.ts.map +1 -0
  324. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts +24 -0
  325. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts.map +1 -0
  326. package/dist/types/generated/codama/types/index.d.ts +6 -2
  327. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  328. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts +24 -0
  329. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts.map +1 -0
  330. package/dist/types/generated/codama/types/rentalActivated.d.ts +7 -1
  331. package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -1
  332. package/dist/types/generated/codama/types/rentalExpiredInline.d.ts +18 -0
  333. package/dist/types/generated/codama/types/rentalExpiredInline.d.ts.map +1 -0
  334. package/dist/types/generated/codama/types/rentalStatus.d.ts +4 -3
  335. package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -1
  336. package/dist/types/generated/codama/types/reservationCreated.d.ts +9 -4
  337. package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
  338. package/dist/types/index.d.ts +1 -42
  339. package/dist/types/index.d.ts.map +1 -1
  340. package/dist/types/instructions/acceptRental.d.ts +2 -31
  341. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  342. package/dist/types/instructions/activateRental.d.ts +41 -0
  343. package/dist/types/instructions/activateRental.d.ts.map +1 -0
  344. package/dist/types/instructions/cancelRental.d.ts +8 -18
  345. package/dist/types/instructions/cancelRental.d.ts.map +1 -1
  346. package/dist/types/instructions/claimBorrower.d.ts +27 -10
  347. package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
  348. package/dist/types/instructions/claimContract.d.ts +40 -0
  349. package/dist/types/instructions/claimContract.d.ts.map +1 -0
  350. package/dist/types/instructions/closeContract.d.ts +1 -12
  351. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  352. package/dist/types/instructions/closeContractThread.d.ts +40 -0
  353. package/dist/types/instructions/closeContractThread.d.ts.map +1 -0
  354. package/dist/types/instructions/closeRental.d.ts +6 -14
  355. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  356. package/dist/types/instructions/createBorrower.d.ts +49 -0
  357. package/dist/types/instructions/createBorrower.d.ts.map +1 -0
  358. package/dist/types/instructions/createContract.d.ts +1 -41
  359. package/dist/types/instructions/createContract.d.ts.map +1 -1
  360. package/dist/types/instructions/createContractThread.d.ts +50 -0
  361. package/dist/types/instructions/createContractThread.d.ts.map +1 -0
  362. package/dist/types/instructions/index.d.ts +27 -24
  363. package/dist/types/instructions/index.d.ts.map +1 -1
  364. package/dist/types/instructions/reserveRental.d.ts +33 -29
  365. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  366. package/dist/types/instructions/updateBorrower.d.ts +23 -29
  367. package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
  368. package/dist/types/instructions/updateConfig.d.ts +0 -4
  369. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  370. package/dist/types/instructions/updateContract.d.ts +11 -33
  371. package/dist/types/instructions/updateContract.d.ts.map +1 -1
  372. package/dist/types/instructions/updateContractThread.d.ts +48 -0
  373. package/dist/types/instructions/updateContractThread.d.ts.map +1 -0
  374. package/dist/types/kit/index.d.ts +10 -3
  375. package/dist/types/kit/index.d.ts.map +1 -1
  376. package/dist/types/legacy/index.d.ts +11 -39
  377. package/dist/types/legacy/index.d.ts.map +1 -1
  378. package/dist/types/params/index.d.ts +5 -0
  379. package/dist/types/params/index.d.ts.map +1 -0
  380. package/dist/types/params/sol.d.ts +34 -0
  381. package/dist/types/params/sol.d.ts.map +1 -0
  382. package/dist/types/pda/constants.d.ts +3 -1
  383. package/dist/types/pda/constants.d.ts.map +1 -1
  384. package/dist/types/pda/index.d.ts +3 -21
  385. package/dist/types/pda/index.d.ts.map +1 -1
  386. package/dist/types/pda/srsly.d.ts +13 -15
  387. package/dist/types/pda/srsly.d.ts.map +1 -1
  388. package/dist/types/pda/thread.d.ts +17 -18
  389. package/dist/types/pda/thread.d.ts.map +1 -1
  390. package/dist/types/utils/index.d.ts +1 -1
  391. package/dist/types/utils/index.d.ts.map +1 -1
  392. package/dist/types/utils/rental.d.ts +8 -66
  393. package/dist/types/utils/rental.d.ts.map +1 -1
  394. package/dist/types/version.d.ts +1 -1
  395. package/package.json +1 -1
@@ -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,29 @@ 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 }));
87
86
  // Call Codama-generated instruction
88
- // Note: Codama auto-derives config, borrowerState, borrowerTokenAccount,
89
- // rentalTokenAccount, rentalAuthority, antegenProgram, tokenProgram
87
+ // Note: Codama auto-derives config, borrowerState, borrowerTokenAccount, rentalAuthority
90
88
  const kitInstruction = await getCancelRentalInstructionAsync({
91
89
  mint: atlasMint,
92
90
  borrower: borrowerSigner,
93
91
  rentalState,
94
- rentalThread,
95
- contract: address(params.contract),
92
+ contractTokenAccount,
93
+ contract: contractAddress,
94
+ fleet: address(fleet),
96
95
  cancelDelay,
97
- rentalSlot,
98
96
  }, { programAddress });
99
97
  return prepareInstructions(kitInstruction, {
100
98
  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,7 +2,7 @@
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
6
  */
7
7
  import { address } from '@solana/kit';
8
8
  import { getClaimBorrowerInstructionAsync } from '../generated/codama/instructions';
@@ -18,22 +18,31 @@ import { fetchConfig } from '../accounts/config';
18
18
  * account (an ATA with the borrower_state as authority). This instruction
19
19
  * transfers those funds to the borrower's personal wallet.
20
20
  *
21
+ * The payer and borrower can be different accounts, allowing a third party
22
+ * to pay for the claim transaction on behalf of the borrower.
23
+ *
21
24
  * @param params - Borrower claim parameters
22
25
  * @param config - Optional SDK configuration overrides
23
26
  * @returns Kit instruction (or web3.js if PublicKey in config)
24
27
  *
25
28
  * @example
26
29
  * ```typescript
27
- * // Claim accumulated ATLAS refunds
30
+ * // Self-claim: payer is the borrower
28
31
  * const ix = await claimBorrower({
29
- * borrower: borrowerWallet
32
+ * payer: borrowerWallet,
33
+ * // borrower defaults to payer
34
+ * });
35
+ *
36
+ * // Third-party claim: someone else pays
37
+ * const ix2 = await claimBorrower({
38
+ * payer: relayerWallet,
39
+ * borrower: "BORROWER_ADDRESS"
30
40
  * });
31
41
  *
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
42
+ * // Claim and close the BorrowerState account
43
+ * const ix3 = await claimBorrower({
44
+ * payer: borrowerWallet,
45
+ * close: true
37
46
  * });
38
47
  * ```
39
48
  */
@@ -41,11 +50,15 @@ export async function claimBorrower(params, config) {
41
50
  // Merge config
42
51
  const finalConfig = mergeConfig(config);
43
52
  // Validate required params
44
- if (!params.borrower) {
45
- throw new Error('borrower is required');
53
+ if (!params.payer) {
54
+ throw new Error('payer is required');
46
55
  }
47
- // Convert borrower to transaction signer
48
- const borrowerSigner = toTransactionSigner(params.borrower);
56
+ // Convert payer to transaction signer
57
+ const payerSigner = toTransactionSigner(params.payer);
58
+ // Resolve borrower address: use provided or default to payer
59
+ const borrowerAddress = params.borrower
60
+ ? address(params.borrower)
61
+ : getSignerAddress(payerSigner);
49
62
  // Get atlasMint from on-chain config
50
63
  const configAccount = await fetchConfig(finalConfig.rpcUrl);
51
64
  const atlasMint = configAccount.data.atlasMint;
@@ -54,8 +67,8 @@ export async function claimBorrower(params, config) {
54
67
  // Call Codama-generated instruction
55
68
  // Most accounts are auto-derived (config, borrowerState, managed account, destination)
56
69
  const kitInstruction = await getClaimBorrowerInstructionAsync({
57
- payer: borrowerSigner,
58
- borrower: getSignerAddress(borrowerSigner),
70
+ payer: payerSigner,
71
+ borrower: borrowerAddress,
59
72
  mint: atlasMint,
60
73
  close: params.close ?? false,
61
74
  }, { programAddress });
@@ -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;;;;;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;AAkCjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;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,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAElC,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,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @purpose Simplified claimContract instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated claimContract instruction.
5
+ * Allows contract owners to claim accumulated ATLAS from the contract's escrow.
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
+ * Transfers `owner_claimable` ATLAS from the contract's token account
18
+ * to the owner's wallet. No OwnerState needed — claims directly from
19
+ * the per-contract escrow.
20
+ *
21
+ * @param params - Contract claim parameters
22
+ * @param config - Optional SDK configuration overrides
23
+ * @returns Kit instruction (or web3.js if PublicKey in config)
24
+ */
25
+ export async function claimContract(params, config) {
26
+ const finalConfig = mergeConfig(config);
27
+ if (!params.owner) {
28
+ throw new Error('owner is required');
29
+ }
30
+ if (!params.contract) {
31
+ throw new Error('contract is required');
32
+ }
33
+ const ownerSigner = toTransactionSigner(params.owner);
34
+ // Get atlasMint from on-chain config
35
+ const configAccount = await fetchConfig(finalConfig.rpcUrl);
36
+ const atlasMint = configAccount.data.atlasMint;
37
+ const addresses = getAddresses(config);
38
+ const programAddress = address(addresses.srsly);
39
+ // Fetch contract to get fleet and contractTokenAccount
40
+ const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
41
+ const contractAddress = address(params.contract);
42
+ const kitInstruction = await getClaimContractInstructionAsync({
43
+ owner: ownerSigner,
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;AAsBrD;;;;;;;;;;GAUG;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,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"}
@@ -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,55 @@
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 { mergeConfig, getAddresses } from '../utils/config';
10
+ import { toTransactionSigner } from '../utils/signer';
11
+ import { prepareInstructions } from '../utils/instructions';
12
+ import { deriveContractThread, deriveFiber } from '../pda/thread';
13
+ import { deriveRentalAuthority } from '../pda/srsly';
14
+ /**
15
+ * Close a per-contract automation thread
16
+ *
17
+ * Closes the Antegen thread and any existing fiber PDAs, reclaiming rent to the owner.
18
+ * Fiber PDAs are derived and passed as remaining accounts. Only initialized fibers
19
+ * will be closed on-chain.
20
+ *
21
+ * @param params - Thread closing parameters
22
+ * @param config - Optional SDK configuration overrides
23
+ * @returns Kit instruction (or web3.js if PublicKey in config)
24
+ */
25
+ export async function closeContractThread(params, config) {
26
+ const finalConfig = mergeConfig(config);
27
+ if (!params.owner) {
28
+ throw new Error('owner is required');
29
+ }
30
+ if (!params.contract) {
31
+ throw new Error('contract is required');
32
+ }
33
+ const ownerSigner = toTransactionSigner(params.owner);
34
+ const addresses = getAddresses(config);
35
+ const programAddress = address(addresses.srsly);
36
+ const contractAddress = address(params.contract);
37
+ // Derive thread and fiber PDAs
38
+ const rentalAuthority = await deriveRentalAuthority();
39
+ const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
40
+ const closeRentalFiber = await deriveFiber(contractThread, 1);
41
+ const activateRentalFiber = await deriveFiber(contractThread, 2);
42
+ const kitInstruction = await getCloseContractThreadInstructionAsync({
43
+ owner: ownerSigner,
44
+ contract: contractAddress,
45
+ thread: contractThread,
46
+ }, { programAddress });
47
+ // Add fiber PDAs as remaining accounts (writable, non-signer)
48
+ // On-chain handler filters to only initialized accounts
49
+ kitInstruction.accounts.push({ address: closeRentalFiber, role: AccountRole.WRITABLE }, { address: activateRentalFiber, role: AccountRole.WRITABLE });
50
+ return prepareInstructions(kitInstruction, {
51
+ computeUnits: params.computeUnits,
52
+ PublicKey: finalConfig.PublicKey
53
+ });
54
+ }
55
+ //# 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,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,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,+BAA+B;IAC/B,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAEjE,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,wDAAwD;IACxD,cAAc,CAAC,QAAQ,CAAC,IAAI,CAC1B,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,EACzD,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAC7D,CAAC;IAEF,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -6,32 +6,29 @@
6
6
  */
7
7
  import { address } from '@solana/kit';
8
8
  import { getCloseRentalInstructionAsync } from '../generated/codama/instructions';
9
- import { fetchRentalState } from '../generated/codama/accounts';
10
9
  import { mergeConfig, getAddresses } from '../utils/config';
11
10
  import { toTransactionSigner } from '../utils/signer';
12
11
  import { fetchContract } from '../accounts/contract';
13
12
  import { fetchConfig } from '../accounts/config';
14
13
  import { fetchFleet } from '../accounts/fleet';
14
+ import { fetchRental } from '../accounts/rental';
15
+ import { fetchBorrower } from '../accounts/borrower';
15
16
  import { deriveGameAccounts } from '../pda/sage';
16
- import { deriveRental, deriveRentalAuthority, deriveBorrowerState, deriveOwnerState } from '../pda/srsly';
17
- import { deriveRentalThread } from '../pda/thread';
17
+ import { deriveActiveRental, deriveBorrowerState } from '../pda/srsly';
18
18
  import { prepareInstructions } from '../utils/instructions';
19
- import { createRpc } from '../utils/rpc';
20
- import { requireExistingRentalSlot } from '../utils/rental';
21
19
  /**
22
20
  * Close a rental
23
21
  *
24
22
  * Closes a completed rental and transfers the fleet back to the owner.
25
- * Payments are sent to the owner's token account.
23
+ * Always targets the active rental PDA.
26
24
  *
27
25
  * This function automatically:
28
- * - Fetches contract to get owner, ownerTokenAccount, fleet, gameId
29
- * - Fetches fleet to get faction for SAGE account derivation
26
+ * - Fetches contract to get owner, fleet, gameId
27
+ * - Fetches the active rental to get borrower (if not provided)
28
+ * - Fetches the borrower's SAGE profile from borrower_state
30
29
  * - Derives required SAGE accounts (starbase, starbase player)
31
- * - Derives rental thread for automated payments
32
- * - Codama auto-derives contractTokenAccount as ATA
33
30
  *
34
- * @param params - Rental closure parameters (payer, rentalSlot, contract)
31
+ * @param params - Rental closure parameters (payer, contract)
35
32
  * @param config - Optional SDK configuration overrides
36
33
  * @returns Kit instruction (or web3.js if PublicKey in config)
37
34
  *
@@ -39,7 +36,6 @@ import { requireExistingRentalSlot } from '../utils/rental';
39
36
  * ```typescript
40
37
  * const ix = await closeRental({
41
38
  * payer: ownerWallet,
42
- * rentalSlot: 0,
43
39
  * contract: contractAddress
44
40
  * });
45
41
  * ```
@@ -56,34 +52,21 @@ export async function closeRental(params, config) {
56
52
  }
57
53
  // Fetch contract to get owner, fleet, gameId
58
54
  const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
59
- const owner = contractAccount.data.owner;
60
55
  const fleet = contractAccount.data.fleet;
61
56
  const gameId = contractAccount.data.gameId;
62
57
  // Convert payer to transaction signer
63
58
  const payerSigner = toTransactionSigner(params.payer);
64
- // Auto-detect rental slot if not provided
65
- const rentalSlot = params.rentalSlot ?? requireExistingRentalSlot(contractAccount.data);
66
- const otherSlot = rentalSlot === 0 ? 1 : 0;
67
- // Fetch fleet data to get faction (for SAGE account derivation)
68
- const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
69
- const faction = fleetState.faction;
70
- const ownerProfile = fleetState.ownerProfile;
71
- // Derive SAGE game accounts (we need owner's profile for starbase player)
72
- const gameAccounts = await deriveGameAccounts(ownerProfile, faction, gameId);
73
- // Derive rental and rental authority PDAs
74
- const rental = await deriveRental(params.contract, rentalSlot);
75
- const rentalAuthority = await deriveRentalAuthority();
59
+ // Derive active rental PDA (no more slot logic)
60
+ const rentalState = await deriveActiveRental(params.contract);
76
61
  // Get borrower - use provided value, or fetch from rental state, or fall back to payer
77
62
  let borrower;
78
63
  if (params.borrower) {
79
- borrower = params.borrower;
64
+ borrower = address(params.borrower);
80
65
  }
81
66
  else {
82
- // Try to fetch from rental state
83
67
  try {
84
- const rpc = createRpc(finalConfig.rpcUrl || 'https://api.devnet.solana.com');
85
- const rentalState = await fetchRentalState(rpc, rental);
86
- borrower = rentalState.data.borrower;
68
+ const rental = await fetchRental(rentalState, finalConfig.rpcUrl);
69
+ borrower = rental.data.borrower;
87
70
  }
88
71
  catch {
89
72
  // Rental state doesn't exist, fall back to payer
@@ -92,37 +75,43 @@ export async function closeRental(params, config) {
92
75
  }
93
76
  // Derive borrower state PDA
94
77
  const borrowerState = await deriveBorrowerState(borrower);
95
- // Derive rental thread for automated payments
96
- const rentalThread = await deriveRentalThread(rental, rentalAuthority);
78
+ // Fetch borrower's SAGE profile from borrower_state to derive game accounts
79
+ let borrowerProfile;
80
+ let faction;
81
+ try {
82
+ const borrowerAccount = await fetchBorrower(borrower, finalConfig.rpcUrl);
83
+ borrowerProfile = borrowerAccount.data.borrowerProfile;
84
+ }
85
+ catch {
86
+ // Borrower state doesn't exist, fallback to fleet owner profile
87
+ const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
88
+ borrowerProfile = fleetState.ownerProfile;
89
+ faction = fleetState.faction;
90
+ }
91
+ // Get faction from fleet if not set above
92
+ if (faction === undefined) {
93
+ const fleetState = await fetchFleet(fleet, finalConfig.rpcUrl);
94
+ faction = fleetState.faction;
95
+ }
96
+ // Derive SAGE game accounts using borrower's profile
97
+ const gameAccounts = await deriveGameAccounts(borrowerProfile, faction, gameId);
97
98
  // Get atlasMint from on-chain config
98
99
  const configAccount = await fetchConfig(finalConfig.rpcUrl);
99
- const atlasMint = configAccount.data.atlasMint;
100
100
  const addresses = getAddresses(config);
101
101
  const sageProgram = address(addresses.sage);
102
102
  const programAddress = address(addresses.srsly);
103
- // Derive queuedThread from the other slot's rental
104
- const otherSlotRental = await deriveRental(params.contract, otherSlot);
105
- const queuedThread = await deriveRentalThread(otherSlotRental, rentalAuthority);
106
- // Derive ownerState PDA from owner address
107
- const ownerState = await deriveOwnerState(owner);
108
103
  // Call Codama-generated instruction
109
- // Note: ownerTokenAccount is auto-derived by Codama as ATA for ownerState + mint
110
104
  const kitInstruction = await getCloseRentalInstructionAsync({
111
105
  payer: payerSigner,
112
- mint: atlasMint,
113
- borrower: address(borrower),
106
+ borrower,
114
107
  borrowerState,
115
- ownerState,
116
108
  contract: address(params.contract),
117
- rentalState: rental,
118
- rentalThread,
109
+ rentalState,
119
110
  fleet: address(fleet),
120
111
  gameId: address(gameId),
121
112
  starbase: gameAccounts.starbase,
122
113
  starbasePlayer: gameAccounts.starbasePlayer,
123
- queuedThread,
124
114
  sageProgram,
125
- rentalSlot,
126
115
  }, { programAddress });
127
116
  return prepareInstructions(kitInstruction, {
128
117
  computeUnits: params.computeUnits,
@@ -1 +1 @@
1
- {"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAsC5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAyB,EACzB,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,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,6CAA6C;IAC7C,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IACzC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IACzC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;IAE3C,sCAAsC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,yBAAyB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3C,gEAAgE;IAChE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAE7C,0EAA0E;IAC1E,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,YAAY,EACZ,OAAO,EACP,MAAM,CACP,CAAC;IAEF,0CAA0C;IAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEtD,uFAAuF;IACvF,IAAI,QAA0B,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,IAAI,+BAA+B,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxD,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE1D,8CAA8C;IAC9C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEvE,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,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAe,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,mDAAmD;IACnD,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEhF,2CAA2C;IAC3C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEjD,oCAAoC;IACpC,iFAAiF;IACjF,MAAM,cAAc,GAAG,MAAM,8BAA8B,CACzD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,OAAO,CAAC,QAAmB,CAAC;QACtC,aAAa;QACb,UAAU;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC;QAC7C,WAAW,EAAE,MAAM;QACnB,YAAY;QACZ,KAAK,EAAE,OAAO,CAAC,KAAgB,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,MAAiB,CAAC;QAClC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,YAAY;QACZ,WAAW;QACX,UAAU;KACX,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":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @purpose Simplified createBorrower instruction wrapper
3
+ *
4
+ * Thin convenience wrapper around Codama-generated createBorrower instruction.
5
+ * Creates a BorrowerState PDA with managed token account for a borrower.
6
+ * Derives SAGE accounts (profileFaction, starbase, starbasePlayer) from
7
+ * borrowerProfile + faction automatically.
8
+ */
9
+ import { address } from '@solana/kit';
10
+ import { getCreateBorrowerInstructionAsync } from '../generated/codama/instructions';
11
+ import { mergeConfig, getAddresses } from '../utils/config';
12
+ import { toTransactionSigner } from '../utils/signer';
13
+ import { prepareInstructions } from '../utils/instructions';
14
+ import { fetchConfig } from '../accounts/config';
15
+ import { deriveGameAccounts } from '../pda/sage';
16
+ /**
17
+ * Create a borrower state account
18
+ *
19
+ * Creates a BorrowerState PDA and an associated managed token account.
20
+ * The managed token account holds ATLAS refunds from reservation knockoffs.
21
+ *
22
+ * Derives borrowerProfileFaction, starbase, and starbasePlayer PDAs
23
+ * automatically from the borrowerProfile and faction.
24
+ *
25
+ * @param params - Borrower creation parameters
26
+ * @param config - Optional SDK configuration overrides
27
+ * @returns Kit instruction (or web3.js if PublicKey in config)
28
+ */
29
+ export async function createBorrower(params, config) {
30
+ const finalConfig = mergeConfig(config);
31
+ if (!params.borrower) {
32
+ throw new Error('borrower is required');
33
+ }
34
+ if (!params.borrowerProfile) {
35
+ throw new Error('borrowerProfile is required');
36
+ }
37
+ if (params.faction === undefined || params.faction === null) {
38
+ throw new Error('faction is required (\'mud\' | \'oni\' | \'ustur\' or 1 | 2 | 3)');
39
+ }
40
+ const borrowerSigner = toTransactionSigner(params.borrower);
41
+ // Get atlasMint from on-chain config and gameId from addresses
42
+ const configAccount = await fetchConfig(finalConfig.rpcUrl);
43
+ const atlasMint = configAccount.data.atlasMint;
44
+ const addresses = getAddresses(config);
45
+ const programAddress = address(addresses.srsly);
46
+ // Derive all SAGE accounts from profile + faction
47
+ const gameAccounts = await deriveGameAccounts(address(params.borrowerProfile), params.faction, address(addresses.gameId));
48
+ const kitInstruction = await getCreateBorrowerInstructionAsync({
49
+ borrower: borrowerSigner,
50
+ mint: atlasMint,
51
+ borrowerProfile: address(params.borrowerProfile),
52
+ borrowerProfileFaction: gameAccounts.profileFaction,
53
+ starbase: gameAccounts.starbase,
54
+ starbasePlayer: gameAccounts.starbasePlayer,
55
+ }, { programAddress });
56
+ return prepareInstructions(kitInstruction, {
57
+ computeUnits: params.computeUnits,
58
+ PublicKey: finalConfig.PublicKey
59
+ });
60
+ }
61
+ //# sourceMappingURL=createBorrower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBorrower.js","sourceRoot":"","sources":["../../../src/instructions/createBorrower.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,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,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA4BjD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,+DAA+D;IAC/D,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,kDAAkD;IAClD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC,EAC1C,MAAM,CAAC,OAAO,EACd,OAAO,CAAC,SAAS,CAAC,MAAiB,CAAC,CACrC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,iCAAiC,CAC5D;QACE,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAA0B,CAAC;QAC3D,sBAAsB,EAAE,YAAY,CAAC,cAAc;QACnD,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,cAAc,EAAE,YAAY,CAAC,cAAc;KAC5C,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"}