@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,58 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Simplified closeBorrower instruction wrapper
4
+ *
5
+ * Thin convenience wrapper around Codama-generated closeBorrower instruction.
6
+ * Closes a borrower's managed token account and BorrowerState.
7
+ * Requires no active rentals and zero managed ATA balance (claim first).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.closeBorrower = closeBorrower;
11
+ const kit_1 = require("@solana/kit");
12
+ const instructions_1 = require("../generated/codama/instructions");
13
+ const config_1 = require("../utils/config");
14
+ const signer_1 = require("../utils/signer");
15
+ const instructions_2 = require("../utils/instructions");
16
+ const config_2 = require("../accounts/config");
17
+ /**
18
+ * Close a borrower's managed token account and BorrowerState
19
+ *
20
+ * Closes the managed ATA and BorrowerState PDA, returning lamports to the
21
+ * borrower wallet. Requires no active rentals and zero managed ATA balance.
22
+ * Call claimBorrower first to withdraw any remaining ATLAS.
23
+ *
24
+ * Permissionless — anyone can trigger since lamports always go to the borrower.
25
+ *
26
+ * @param params - Close borrower parameters
27
+ * @param config - Optional SDK configuration overrides
28
+ * @returns Kit instruction (or web3.js if PublicKey in config)
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const ix = await closeBorrower({ payer: borrowerWallet });
33
+ * ```
34
+ */
35
+ async function closeBorrower(params, config) {
36
+ const finalConfig = (0, config_1.mergeConfig)(config);
37
+ if (!params.payer) {
38
+ throw new Error('payer is required');
39
+ }
40
+ const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
41
+ const borrowerAddress = params.borrower
42
+ ? (0, kit_1.address)(params.borrower)
43
+ : (0, signer_1.getSignerAddress)(payerSigner);
44
+ const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
45
+ const atlasMint = configAccount.data.atlasMint;
46
+ const addresses = (0, config_1.getAddresses)(config);
47
+ const programAddress = (0, kit_1.address)(addresses.srsly);
48
+ const kitInstruction = await (0, instructions_1.getCloseBorrowerInstructionAsync)({
49
+ payer: payerSigner,
50
+ borrower: borrowerAddress,
51
+ mint: atlasMint,
52
+ }, { programAddress });
53
+ return (0, instructions_2.prepareInstructions)(kitInstruction, {
54
+ computeUnits: params.computeUnits,
55
+ PublicKey: finalConfig.PublicKey
56
+ });
57
+ }
58
+ //# sourceMappingURL=closeBorrower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeBorrower.js","sourceRoot":"","sources":["../../../src/instructions/closeBorrower.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAkDH,sCAkCC;AAlFD,qCAAoD;AACpD,mEAAoF;AACpF,4CAA4E;AAC5E,4CAA8F;AAC9F,wDAA4D;AAC5D,+CAAiD;AAyBjD;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;QACrC,CAAC,CAAC,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC;QACrC,CAAC,CAAC,IAAA,yBAAgB,EAAC,WAAW,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,MAAM,cAAc,GAAG,MAAM,IAAA,+CAAgC,EAC3D;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -13,6 +13,8 @@ const config_1 = require("../utils/config");
13
13
  const signer_1 = require("../utils/signer");
14
14
  const contract_1 = require("../accounts/contract");
15
15
  const config_2 = require("../accounts/config");
16
+ const token_1 = require("../pda/token");
17
+ const srsly_1 = require("../pda/srsly");
16
18
  const instructions_2 = require("../utils/instructions");
17
19
  /**
18
20
  * Close a rental contract
@@ -35,25 +37,19 @@ const instructions_2 = require("../utils/instructions");
35
37
  * const ix = await closeContract({
36
38
  * owner: wallet,
37
39
  * fleet: fleetAddress
38
- * // contract derived from fleet PDA
39
- * // Works even if contract doesn't exist (init_if_needed)
40
40
  * });
41
41
  *
42
42
  * // Option 2: Provide contract only (contract MUST exist)
43
43
  * const ix2 = await closeContract({
44
44
  * owner: wallet,
45
45
  * contract: contractAddress
46
- * // fleet fetched from contract.fleet
47
- * // REQUIRES contract to already exist
48
46
  * });
49
47
  *
50
48
  * // Option 3: Provide both (most explicit, no fetching)
51
49
  * const ix3 = await closeContract({
52
50
  * owner: wallet,
53
51
  * fleet: fleetAddress,
54
- * contract: contractAddress,
55
- * sageProgram: customSageProgram, // Optional
56
- * destinationTokenAccount: customTokenAccount // Optional
52
+ * contract: contractAddress
57
53
  * });
58
54
  * ```
59
55
  */
@@ -85,7 +81,7 @@ async function closeContract(params, config) {
85
81
  else if (params.fleet) {
86
82
  // Only fleet provided - derive contract from fleet PDA
87
83
  fleetAddress = (0, kit_1.address)(params.fleet);
88
- contractAddress = undefined; // Will be derived on-chain
84
+ contractAddress = await (0, srsly_1.deriveContract)(fleetAddress, programAddress);
89
85
  }
90
86
  else if (params.contract) {
91
87
  // Only contract provided - fetch contract to get fleet
@@ -101,16 +97,21 @@ async function closeContract(params, config) {
101
97
  const sageProgram = params.sageProgram
102
98
  ? (0, kit_1.address)(params.sageProgram)
103
99
  : (0, kit_1.address)(addresses.sage);
104
- // Optional destination token account
105
- const destinationTokenAccount = params.destinationTokenAccount
106
- ? (0, kit_1.address)(params.destinationTokenAccount)
107
- : undefined;
100
+ // Derive contract token account (ATA of contract PDA for ATLAS)
101
+ // For the codama call, we need to provide it since it's not optional in the async input
102
+ // We need contract address to derive it, which may need to be derived from fleet
103
+ // Let codama auto-derive it if we don't have a contract address
104
+ let contractTokenAccount;
105
+ if (contractAddress) {
106
+ contractTokenAccount = await (0, token_1.deriveAssociatedTokenAccount)(contractAddress, atlasMint);
107
+ }
108
108
  // Call Codama-generated instruction
109
109
  const kitInstruction = await (0, instructions_1.getCloseContractInstructionAsync)({
110
110
  owner: ownerSigner,
111
111
  contract: contractAddress,
112
112
  mint: atlasMint,
113
113
  fleet: fleetAddress,
114
+ contractTokenAccount: contractTokenAccount,
114
115
  sageProgram,
115
116
  }, { programAddress });
116
117
  return (0, instructions_2.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,66 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Simplified closeContractThread instruction wrapper
4
+ *
5
+ * Thin convenience wrapper around Codama-generated closeContractThread instruction.
6
+ * Closes a per-contract automation thread and reclaims rent.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.closeContractThread = closeContractThread;
10
+ const kit_1 = require("@solana/kit");
11
+ const instructions_1 = require("../generated/codama/instructions");
12
+ const thread_1 = require("../generated/codama/accounts/thread");
13
+ const config_1 = require("../utils/config");
14
+ const signer_1 = require("../utils/signer");
15
+ const instructions_2 = require("../utils/instructions");
16
+ const rpc_1 = require("../utils/rpc");
17
+ const thread_2 = require("../pda/thread");
18
+ const srsly_1 = require("../pda/srsly");
19
+ /**
20
+ * Close a per-contract automation thread
21
+ *
22
+ * Closes the Antegen thread and all fiber PDAs, reclaiming rent to the owner.
23
+ * Fetches the thread account to read `fiberIds`, then derives and passes only
24
+ * the fibers that actually exist as remaining accounts.
25
+ *
26
+ * @param params - Thread closing parameters
27
+ * @param config - Optional SDK configuration overrides
28
+ * @returns Kit instruction (or web3.js if PublicKey in config)
29
+ */
30
+ async function closeContractThread(params, config) {
31
+ const finalConfig = (0, config_1.mergeConfig)(config);
32
+ if (!params.owner) {
33
+ throw new Error('owner is required');
34
+ }
35
+ if (!params.contract) {
36
+ throw new Error('contract is required');
37
+ }
38
+ const ownerSigner = (0, signer_1.toTransactionSigner)(params.owner);
39
+ const addresses = (0, config_1.getAddresses)(config);
40
+ const programAddress = (0, kit_1.address)(addresses.srsly);
41
+ const contractAddress = (0, kit_1.address)(params.contract);
42
+ // Derive thread PDA
43
+ const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
44
+ const contractThread = await (0, thread_2.deriveContractThread)(contractAddress, rentalAuthority);
45
+ // Fetch thread account to read actual fiber_ids
46
+ const rpc = (0, rpc_1.createRpc)((0, config_1.getRpcUrl)(config));
47
+ const threadAccount = await (0, thread_1.fetchThread)(rpc, contractThread);
48
+ const fiberIds = Array.from(threadAccount.data.fiberIds);
49
+ // Derive fiber PDAs only for fibers that actually exist on the thread
50
+ const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
51
+ address: await (0, thread_2.deriveFiber)(contractThread, id),
52
+ role: kit_1.AccountRole.WRITABLE,
53
+ })));
54
+ const kitInstruction = await (0, instructions_1.getCloseContractThreadInstructionAsync)({
55
+ owner: ownerSigner,
56
+ contract: contractAddress,
57
+ thread: contractThread,
58
+ }, { programAddress });
59
+ // Add fiber PDAs as remaining accounts (writable, non-signer)
60
+ kitInstruction.accounts.push(...fiberAccounts);
61
+ return (0, instructions_2.prepareInstructions)(kitInstruction, {
62
+ computeUnits: params.computeUnits,
63
+ PublicKey: finalConfig.PublicKey
64
+ });
65
+ }
66
+ //# sourceMappingURL=closeContractThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeContractThread.js","sourceRoot":"","sources":["../../../src/instructions/closeContractThread.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA2CH,kDAmDC;AA5FD,qCAAiE;AACjE,mEAA0F;AAC1F,gEAAkE;AAClE,4CAAuF;AACvF,4CAA4E;AAC5E,wDAA4D;AAC5D,sCAAyC;AACzC,0CAAkE;AAClE,wCAAqD;AAsBrD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiC,EACjC,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,oBAAoB;IACpB,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAqB,GAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpF,gDAAgD;IAChD,MAAM,GAAG,GAAG,IAAA,eAAS,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,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,IAAA,oBAAW,EAAC,cAAc,EAAE,EAAE,CAAC;QAC9C,IAAI,EAAE,iBAAW,CAAC,QAAiB;KACpC,CAAC,CAAC,CACJ,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,IAAA,qDAAsC,EACjE;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,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -9,32 +9,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.closeRental = closeRental;
10
10
  const kit_1 = require("@solana/kit");
11
11
  const instructions_1 = require("../generated/codama/instructions");
12
- const accounts_1 = require("../generated/codama/accounts");
13
12
  const config_1 = require("../utils/config");
14
13
  const signer_1 = require("../utils/signer");
15
14
  const contract_1 = require("../accounts/contract");
16
15
  const config_2 = require("../accounts/config");
17
16
  const fleet_1 = require("../accounts/fleet");
17
+ const rental_1 = require("../accounts/rental");
18
+ const borrower_1 = require("../accounts/borrower");
18
19
  const sage_1 = require("../pda/sage");
19
20
  const srsly_1 = require("../pda/srsly");
20
- const thread_1 = require("../pda/thread");
21
21
  const instructions_2 = require("../utils/instructions");
22
- const rpc_1 = require("../utils/rpc");
23
- const rental_1 = require("../utils/rental");
24
22
  /**
25
23
  * Close a rental
26
24
  *
27
25
  * Closes a completed rental and transfers the fleet back to the owner.
28
- * Payments are sent to the owner's token account.
26
+ * Always targets the active rental PDA.
29
27
  *
30
28
  * This function automatically:
31
- * - Fetches contract to get owner, ownerTokenAccount, fleet, gameId
32
- * - Fetches fleet to get faction for SAGE account derivation
29
+ * - Fetches contract to get owner, fleet, gameId
30
+ * - Fetches the active rental to get borrower (if not provided)
31
+ * - Fetches the borrower's SAGE profile from borrower_state
33
32
  * - Derives required SAGE accounts (starbase, starbase player)
34
- * - Derives rental thread for automated payments
35
- * - Codama auto-derives contractTokenAccount as ATA
36
33
  *
37
- * @param params - Rental closure parameters (payer, rentalSlot, contract)
34
+ * @param params - Rental closure parameters (payer, contract)
38
35
  * @param config - Optional SDK configuration overrides
39
36
  * @returns Kit instruction (or web3.js if PublicKey in config)
40
37
  *
@@ -42,7 +39,6 @@ const rental_1 = require("../utils/rental");
42
39
  * ```typescript
43
40
  * const ix = await closeRental({
44
41
  * payer: ownerWallet,
45
- * rentalSlot: 0,
46
42
  * contract: contractAddress
47
43
  * });
48
44
  * ```
@@ -59,34 +55,21 @@ async function closeRental(params, config) {
59
55
  }
60
56
  // Fetch contract to get owner, fleet, gameId
61
57
  const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
62
- const owner = contractAccount.data.owner;
63
58
  const fleet = contractAccount.data.fleet;
64
59
  const gameId = contractAccount.data.gameId;
65
60
  // Convert payer to transaction signer
66
61
  const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
67
- // Auto-detect rental slot if not provided
68
- const rentalSlot = params.rentalSlot ?? (0, rental_1.requireExistingRentalSlot)(contractAccount.data);
69
- const otherSlot = rentalSlot === 0 ? 1 : 0;
70
- // Fetch fleet data to get faction (for SAGE account derivation)
71
- const fleetState = await (0, fleet_1.fetchFleet)(fleet, finalConfig.rpcUrl);
72
- const faction = fleetState.faction;
73
- const ownerProfile = fleetState.ownerProfile;
74
- // Derive SAGE game accounts (we need owner's profile for starbase player)
75
- const gameAccounts = await (0, sage_1.deriveGameAccounts)(ownerProfile, faction, gameId);
76
- // Derive rental and rental authority PDAs
77
- const rental = await (0, srsly_1.deriveRental)(params.contract, rentalSlot);
78
- const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
62
+ // Derive active rental PDA (no more slot logic)
63
+ const rentalState = await (0, srsly_1.deriveActiveRental)(params.contract);
79
64
  // Get borrower - use provided value, or fetch from rental state, or fall back to payer
80
65
  let borrower;
81
66
  if (params.borrower) {
82
- borrower = params.borrower;
67
+ borrower = (0, kit_1.address)(params.borrower);
83
68
  }
84
69
  else {
85
- // Try to fetch from rental state
86
70
  try {
87
- const rpc = (0, rpc_1.createRpc)(finalConfig.rpcUrl || 'https://api.devnet.solana.com');
88
- const rentalState = await (0, accounts_1.fetchRentalState)(rpc, rental);
89
- borrower = rentalState.data.borrower;
71
+ const rental = await (0, rental_1.fetchRental)(rentalState, finalConfig.rpcUrl);
72
+ borrower = rental.data.borrower;
90
73
  }
91
74
  catch {
92
75
  // Rental state doesn't exist, fall back to payer
@@ -95,37 +78,43 @@ async function closeRental(params, config) {
95
78
  }
96
79
  // Derive borrower state PDA
97
80
  const borrowerState = await (0, srsly_1.deriveBorrowerState)(borrower);
98
- // Derive rental thread for automated payments
99
- const rentalThread = await (0, thread_1.deriveRentalThread)(rental, rentalAuthority);
81
+ // Fetch borrower's SAGE profile from borrower_state to derive game accounts
82
+ let borrowerProfile;
83
+ let faction;
84
+ try {
85
+ const borrowerAccount = await (0, borrower_1.fetchBorrower)(borrower, finalConfig.rpcUrl);
86
+ borrowerProfile = borrowerAccount.data.borrowerProfile;
87
+ }
88
+ catch {
89
+ // Borrower state doesn't exist, fallback to fleet owner profile
90
+ const fleetState = await (0, fleet_1.fetchFleet)(fleet, finalConfig.rpcUrl);
91
+ borrowerProfile = fleetState.ownerProfile;
92
+ faction = fleetState.faction;
93
+ }
94
+ // Get faction from fleet if not set above
95
+ if (faction === undefined) {
96
+ const fleetState = await (0, fleet_1.fetchFleet)(fleet, finalConfig.rpcUrl);
97
+ faction = fleetState.faction;
98
+ }
99
+ // Derive SAGE game accounts using borrower's profile
100
+ const gameAccounts = await (0, sage_1.deriveGameAccounts)(borrowerProfile, faction, gameId);
100
101
  // Get atlasMint from on-chain config
101
102
  const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
102
- const atlasMint = configAccount.data.atlasMint;
103
103
  const addresses = (0, config_1.getAddresses)(config);
104
104
  const sageProgram = (0, kit_1.address)(addresses.sage);
105
105
  const programAddress = (0, kit_1.address)(addresses.srsly);
106
- // Derive queuedThread from the other slot's rental
107
- const otherSlotRental = await (0, srsly_1.deriveRental)(params.contract, otherSlot);
108
- const queuedThread = await (0, thread_1.deriveRentalThread)(otherSlotRental, rentalAuthority);
109
- // Derive ownerState PDA from owner address
110
- const ownerState = await (0, srsly_1.deriveOwnerState)(owner);
111
106
  // Call Codama-generated instruction
112
- // Note: ownerTokenAccount is auto-derived by Codama as ATA for ownerState + mint
113
107
  const kitInstruction = await (0, instructions_1.getCloseRentalInstructionAsync)({
114
108
  payer: payerSigner,
115
- mint: atlasMint,
116
- borrower: (0, kit_1.address)(borrower),
109
+ borrower,
117
110
  borrowerState,
118
- ownerState,
119
111
  contract: (0, kit_1.address)(params.contract),
120
- rentalState: rental,
121
- rentalThread,
112
+ rentalState,
122
113
  fleet: (0, kit_1.address)(fleet),
123
114
  gameId: (0, kit_1.address)(gameId),
124
115
  starbase: gameAccounts.starbase,
125
116
  starbasePlayer: gameAccounts.starbasePlayer,
126
- queuedThread,
127
117
  sageProgram,
128
- rentalSlot,
129
118
  }, { programAddress });
130
119
  return (0, instructions_2.prepareInstructions)(kitInstruction, {
131
120
  computeUnits: params.computeUnits,
@@ -1 +1 @@
1
- {"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+EH,kCA2GC;AAxLD,qCAAoD;AACpD,mEAAkF;AAClF,2DAAgE;AAChE,4CAA4E;AAC5E,4CAA4E;AAC5E,mDAAqD;AACrD,+CAAiD;AACjD,6CAA+C;AAC/C,sCAAiD;AACjD,wCAA0G;AAC1G,0CAAmD;AACnD,wDAA4D;AAC5D,sCAAyC;AACzC,4CAA4D;AAsC5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAyB,EACzB,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,wBAAa,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAA,kCAAyB,EAAC,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,IAAA,kBAAU,EAAC,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,IAAA,yBAAkB,EAC3C,YAAY,EACZ,OAAO,EACP,MAAM,CACP,CAAC;IAEF,0CAA0C;IAC1C,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAqB,GAAE,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,IAAA,eAAS,EAAC,WAAW,CAAC,MAAM,IAAI,+BAA+B,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAgB,EAAC,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,IAAA,2BAAmB,EAAC,QAAQ,CAAC,CAAC;IAE1D,8CAA8C;IAC9C,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAkB,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEvE,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,IAAe,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,mDAAmD;IACnD,MAAM,eAAe,GAAG,MAAM,IAAA,oBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAkB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEhF,2CAA2C;IAC3C,MAAM,UAAU,GAAG,MAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC;IAEjD,oCAAoC;IACpC,iFAAiF;IACjF,MAAM,cAAc,GAAG,MAAM,IAAA,6CAA8B,EACzD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAA,aAAO,EAAC,QAAmB,CAAC;QACtC,aAAa;QACb,UAAU;QACV,QAAQ,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC;QAC7C,WAAW,EAAE,MAAM;QACnB,YAAY;QACZ,KAAK,EAAE,IAAA,aAAO,EAAC,KAAgB,CAAC;QAChC,MAAM,EAAE,IAAA,aAAO,EAAC,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,IAAA,kCAAmB,EAAC,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,64 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Simplified createBorrower instruction wrapper
4
+ *
5
+ * Thin convenience wrapper around Codama-generated createBorrower instruction.
6
+ * Creates a BorrowerState PDA with managed token account for a borrower.
7
+ * Derives SAGE accounts (profileFaction, starbase, starbasePlayer) from
8
+ * borrowerProfile + faction automatically.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createBorrower = createBorrower;
12
+ const kit_1 = require("@solana/kit");
13
+ const instructions_1 = require("../generated/codama/instructions");
14
+ const config_1 = require("../utils/config");
15
+ const signer_1 = require("../utils/signer");
16
+ const instructions_2 = require("../utils/instructions");
17
+ const config_2 = require("../accounts/config");
18
+ const sage_1 = require("../pda/sage");
19
+ /**
20
+ * Create a borrower state account
21
+ *
22
+ * Creates a BorrowerState PDA and an associated managed token account.
23
+ * The managed token account holds ATLAS refunds from reservation knockoffs.
24
+ *
25
+ * Derives borrowerProfileFaction, starbase, and starbasePlayer PDAs
26
+ * automatically from the borrowerProfile and faction.
27
+ *
28
+ * @param params - Borrower creation parameters
29
+ * @param config - Optional SDK configuration overrides
30
+ * @returns Kit instruction (or web3.js if PublicKey in config)
31
+ */
32
+ async function createBorrower(params, config) {
33
+ const finalConfig = (0, config_1.mergeConfig)(config);
34
+ if (!params.borrower) {
35
+ throw new Error('borrower is required');
36
+ }
37
+ if (!params.borrowerProfile) {
38
+ throw new Error('borrowerProfile is required');
39
+ }
40
+ if (params.faction === undefined || params.faction === null) {
41
+ throw new Error('faction is required (\'mud\' | \'oni\' | \'ustur\' or 1 | 2 | 3)');
42
+ }
43
+ const borrowerSigner = (0, signer_1.toTransactionSigner)(params.borrower);
44
+ // Get atlasMint from on-chain config and gameId from addresses
45
+ const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
46
+ const atlasMint = configAccount.data.atlasMint;
47
+ const addresses = (0, config_1.getAddresses)(config);
48
+ const programAddress = (0, kit_1.address)(addresses.srsly);
49
+ // Derive all SAGE accounts from profile + faction
50
+ const gameAccounts = await (0, sage_1.deriveGameAccounts)((0, kit_1.address)(params.borrowerProfile), params.faction, (0, kit_1.address)(addresses.gameId));
51
+ const kitInstruction = await (0, instructions_1.getCreateBorrowerInstructionAsync)({
52
+ borrower: borrowerSigner,
53
+ mint: atlasMint,
54
+ borrowerProfile: (0, kit_1.address)(params.borrowerProfile),
55
+ borrowerProfileFaction: gameAccounts.profileFaction,
56
+ starbase: gameAccounts.starbase,
57
+ starbasePlayer: gameAccounts.starbasePlayer,
58
+ }, { programAddress });
59
+ return (0, instructions_2.prepareInstructions)(kitInstruction, {
60
+ computeUnits: params.computeUnits,
61
+ PublicKey: finalConfig.PublicKey
62
+ });
63
+ }
64
+ //# sourceMappingURL=createBorrower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBorrower.js","sourceRoot":"","sources":["../../../src/instructions/createBorrower.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAiDH,wCA+CC;AA9FD,qCAAoD;AACpD,mEAAqF;AACrF,4CAA4E;AAC5E,4CAA4E;AAC5E,wDAA4D;AAC5D,+CAAiD;AACjD,sCAAiD;AA4BjD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,cAAc,CAClC,MAA4B,EAC5B,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,+DAA+D;IAC/D,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,kDAAkD;IAClD,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAkB,EAC3C,IAAA,aAAO,EAAC,MAAM,CAAC,eAA0B,CAAC,EAC1C,MAAM,CAAC,OAAO,EACd,IAAA,aAAO,EAAC,SAAS,CAAC,MAAiB,CAAC,CACrC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,IAAA,gDAAiC,EAC5D;QACE,QAAQ,EAAE,cAAc;QACxB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,IAAA,aAAO,EAAC,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,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -13,7 +13,6 @@ const config_1 = require("../utils/config");
13
13
  const signer_1 = require("../utils/signer");
14
14
  const amount_1 = require("../params/amount");
15
15
  const duration_1 = require("../params/duration");
16
- const schedule_1 = require("../params/schedule");
17
16
  const fleet_1 = require("../accounts/fleet");
18
17
  const config_2 = require("../accounts/config");
19
18
  const instructions_2 = require("../utils/instructions");
@@ -31,34 +30,9 @@ const instructions_2 = require("../utils/instructions");
31
30
  * const ix = await createContract({
32
31
  * owner: wallet,
33
32
  * fleet: fleetAddress,
34
- * // ownerProfile and gameId fetched automatically from fleet
35
33
  * rate: 100,
36
- * durationMax: { days: 30 },
37
- * paymentsFreq: '@daily'
34
+ * durationMax: { days: 30 }
38
35
  * });
39
- *
40
- * // Explicit ownerProfile and gameId (skips fetch)
41
- * const ix2 = await createContract({
42
- * owner: wallet,
43
- * fleet: fleetAddress,
44
- * ownerProfile: profileAddress, // Explicitly provided
45
- * gameId: gameAddress, // Explicitly provided
46
- * rate: 100,
47
- * durationMax: { days: 30 },
48
- * paymentsFreq: '@daily'
49
- * });
50
- *
51
- * // With web3.js
52
- * import { PublicKey } from '@solana/web3.js';
53
- * setSdkConfig({ network: 'atlasnet', PublicKey });
54
- * const web3Ix = await createContract({
55
- * owner: keypair,
56
- * fleet: fleetPubkey,
57
- * rate: 100,
58
- * durationMax: { days: 30 },
59
- * paymentsFreq: '@daily'
60
- * });
61
- * // web3Ix.keys[0].pubkey is a PublicKey instance
62
36
  * ```
63
37
  */
64
38
  async function createContract(params, config) {
@@ -77,9 +51,6 @@ async function createContract(params, config) {
77
51
  if (!params.durationMax) {
78
52
  throw new Error('durationMax is required');
79
53
  }
80
- if (!params.paymentsFreq) {
81
- throw new Error('paymentsFreq is required');
82
- }
83
54
  // Convert owner to transaction signer
84
55
  const ownerSigner = (0, signer_1.toTransactionSigner)(params.owner);
85
56
  // Fetch fleet data (source of truth for ownerProfile and gameId)
@@ -98,7 +69,6 @@ async function createContract(params, config) {
98
69
  ? (0, duration_1.convertDuration)(params.durationMin)
99
70
  : 3600; // Default 1 hour
100
71
  const durationMaxSeconds = (0, duration_1.convertDuration)(params.durationMax);
101
- const normalizedSchedule = (0, schedule_1.normalizeSchedule)(params.paymentsFreq);
102
72
  // Validate duration logic
103
73
  if (durationMaxSeconds < durationMinSeconds) {
104
74
  throw new Error(`durationMax (${durationMaxSeconds}s) must be >= durationMin (${durationMinSeconds}s)`);
@@ -124,11 +94,9 @@ async function createContract(params, config) {
124
94
  rate: rateStardust,
125
95
  durationMin: BigInt(durationMinSeconds),
126
96
  durationMax: BigInt(durationMaxSeconds),
127
- paymentsFreq: normalizedSchedule,
128
97
  ownerKeyIndex: params.ownerKeyIndex ?? 0,
129
98
  cancelDelayMin: cancelDelayMinSeconds,
130
- reservationsDisabled: params.reservationsDisabled ?? true,
131
- automationRequired: params.automationRequired ?? true
99
+ reservationsDisabled: params.reservationsDisabled ?? true
132
100
  }, { programAddress });
133
101
  return (0, instructions_2.prepareInstructions)(kitInstruction, {
134
102
  computeUnits: params.computeUnits,
@@ -1 +1 @@
1
- {"version":3,"file":"createContract.js","sourceRoot":"","sources":["../../../src/instructions/createContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createContract.js","sourceRoot":"","sources":["../../../src/instructions/createContract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Simplified createContractThread instruction wrapper
4
+ *
5
+ * Thin convenience wrapper around Codama-generated createContractThread instruction.
6
+ * Creates a per-contract automation thread with fiber-based dispatch.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createContractThread = createContractThread;
10
+ const kit_1 = require("@solana/kit");
11
+ const instructions_1 = require("../generated/codama/instructions");
12
+ const config_1 = require("../utils/config");
13
+ const signer_1 = require("../utils/signer");
14
+ const instructions_2 = require("../utils/instructions");
15
+ const config_2 = require("../accounts/config");
16
+ const contract_1 = require("../accounts/contract");
17
+ const thread_1 = require("../pda/thread");
18
+ const srsly_1 = require("../pda/srsly");
19
+ const schedule_1 = require("../params/schedule");
20
+ const sol_1 = require("../params/sol");
21
+ // Minimum: 3 fiber rents (~0.01 each) + thread rent (~0.01) = 0.04 SOL
22
+ const MINIMUM_THREAD_FUNDING = 40000000n;
23
+ /**
24
+ * Create a per-contract automation thread
25
+ *
26
+ * Creates an Antegen thread with controller fiber (fiber 0, inline).
27
+ * Thread starts **paused** by default. Fiber 1 (rental_close) and
28
+ * fiber 2 (rental_activate) are created lazily when needed by
29
+ * rental_accept and rental_reserve respectively.
30
+ *
31
+ * @param params - Thread creation parameters
32
+ * @param config - Optional SDK configuration overrides
33
+ * @returns Kit instruction (or web3.js if PublicKey in config)
34
+ */
35
+ async function createContractThread(params, config) {
36
+ const finalConfig = (0, config_1.mergeConfig)(config);
37
+ if (!params.owner) {
38
+ throw new Error('owner is required');
39
+ }
40
+ if (!params.contract) {
41
+ throw new Error('contract is required');
42
+ }
43
+ const ownerSigner = (0, signer_1.toTransactionSigner)(params.owner);
44
+ const ownerAddress = (0, signer_1.getSignerAddress)(params.owner);
45
+ // Get atlasMint and sage program from config
46
+ const configAccount = await (0, config_2.fetchConfig)(finalConfig.rpcUrl);
47
+ const atlasMint = configAccount.data.atlasMint;
48
+ const addresses = (0, config_1.getAddresses)(config);
49
+ const programAddress = (0, kit_1.address)(addresses.srsly);
50
+ // Fetch contract to get managed_token_account
51
+ const contractAccount = await (0, contract_1.fetchContract)(params.contract, finalConfig.rpcUrl);
52
+ const contractAddress = (0, kit_1.address)(params.contract);
53
+ // Derive thread and fiber PDAs
54
+ const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
55
+ const contractThread = await (0, thread_1.deriveContractThread)(contractAddress, rentalAuthority);
56
+ const fiber0 = await (0, thread_1.deriveFiber)(contractThread, 0);
57
+ const closeRentalFiber = await (0, thread_1.deriveFiber)(contractThread, 1);
58
+ // Normalize schedule to cron string
59
+ const paymentsFreq = (0, schedule_1.normalizeSchedule)(params.paymentsFreq);
60
+ const kitInstruction = await (0, instructions_1.getCreateContractThreadInstructionAsync)({
61
+ payer: ownerSigner,
62
+ mint: atlasMint,
63
+ contract: contractAddress,
64
+ contractThread,
65
+ fiber0,
66
+ closeRentalFiber,
67
+ owner: ownerAddress,
68
+ contractTokenAccount: contractAccount.data.managedTokenAccount,
69
+ sageProgram: (0, kit_1.address)(addresses.sage),
70
+ lamports: MINIMUM_THREAD_FUNDING + (0, sol_1.convertSol)(params.lamports ?? 0),
71
+ paymentsFreq,
72
+ }, { programAddress });
73
+ return (0, instructions_2.prepareInstructions)(kitInstruction, {
74
+ computeUnits: params.computeUnits,
75
+ PublicKey: finalConfig.PublicKey
76
+ });
77
+ }
78
+ //# sourceMappingURL=createContractThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA2DH,oDAwDC;AAjHD,qCAAoD;AACpD,mEAA2F;AAC3F,4CAA4E;AAC5E,4CAA8F;AAC9F,wDAA4D;AAC5D,+CAAiD;AACjD,mDAAqD;AACrD,0CAAkE;AAClE,wCAAqD;AACrD,iDAA2E;AAC3E,uCAA0D;AAE1D,uEAAuE;AACvE,MAAM,sBAAsB,GAAG,SAAW,CAAC;AAgC3C;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAkC,EAClC,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,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,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpD,6CAA6C;IAC7C,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAW,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,8CAA8C;IAC9C,MAAM,eAAe,GAAG,MAAM,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,+BAA+B;IAC/B,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAqB,GAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,MAAM,IAAA,oBAAW,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAE9D,oCAAoC;IACpC,MAAM,YAAY,GAAG,IAAA,4BAAiB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,IAAA,sDAAuC,EAClE;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,cAAc;QACd,MAAM;QACN,gBAAgB;QAChB,KAAK,EAAE,YAAY;QACnB,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB;QAC9D,WAAW,EAAE,IAAA,aAAO,EAAC,SAAS,CAAC,IAAe,CAAC;QAC/C,QAAQ,EAAE,sBAAsB,GAAG,IAAA,gBAAU,EAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnE,YAAY;KACb,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}