@wuwei-labs/srsly 3.0.0-beta.19 → 3.0.0-beta.20

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 (300) hide show
  1. package/dist/cjs/accounts/member.js +2 -1
  2. package/dist/cjs/accounts/member.js.map +1 -1
  3. package/dist/cjs/accounts/owner.js +105 -0
  4. package/dist/cjs/accounts/owner.js.map +1 -0
  5. package/dist/cjs/demos.js +85 -9
  6. package/dist/cjs/demos.js.map +1 -1
  7. package/dist/cjs/generated/codama/accounts/borrowerState.js +0 -4
  8. package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
  9. package/dist/cjs/generated/codama/accounts/configState.js +0 -2
  10. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  11. package/dist/cjs/generated/codama/accounts/contractState.js +4 -2
  12. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  13. package/dist/cjs/generated/codama/accounts/index.js +1 -0
  14. package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
  15. package/dist/cjs/generated/codama/accounts/ownerState.js +86 -0
  16. package/dist/cjs/generated/codama/accounts/ownerState.js.map +1 -0
  17. package/dist/cjs/generated/codama/errors/srsly.js +26 -29
  18. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  19. package/dist/cjs/generated/codama/instructions/claimBorrower.js +24 -11
  20. package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
  21. package/dist/cjs/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +58 -44
  22. package/dist/cjs/generated/codama/instructions/claimOwner.js.map +1 -0
  23. package/dist/cjs/generated/codama/instructions/closeContract.js +10 -78
  24. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  25. package/dist/cjs/generated/codama/instructions/closeRental.js +15 -15
  26. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  27. package/dist/cjs/generated/codama/instructions/createContract.js +25 -11
  28. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  29. package/dist/cjs/generated/codama/instructions/index.js +2 -4
  30. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  31. package/dist/cjs/generated/codama/instructions/payRental.js +12 -12
  32. package/dist/cjs/generated/codama/instructions/payRental.js.map +1 -1
  33. package/dist/cjs/generated/codama/instructions/reserveRental.js +27 -8
  34. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  35. package/dist/cjs/generated/codama/instructions/updateConfig.js +0 -2
  36. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  37. package/dist/cjs/generated/codama/instructions/updateOwner.js +79 -0
  38. package/dist/cjs/generated/codama/instructions/updateOwner.js.map +1 -0
  39. package/dist/cjs/generated/codama/programs/srsly.js +29 -33
  40. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  41. package/dist/cjs/generated/codama/types/index.js +0 -1
  42. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  43. package/dist/cjs/index.js +17 -11
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/instructions/acceptRental.js +2 -2
  46. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  47. package/dist/cjs/instructions/cancelRental.js +4 -2
  48. package/dist/cjs/instructions/cancelRental.js.map +1 -1
  49. package/dist/cjs/instructions/claimBorrower.js +7 -3
  50. package/dist/cjs/instructions/claimBorrower.js.map +1 -1
  51. package/dist/cjs/instructions/claimRental.js +2 -2
  52. package/dist/cjs/instructions/claimRental.js.map +1 -1
  53. package/dist/cjs/instructions/closeContract.js +4 -3
  54. package/dist/cjs/instructions/closeContract.js.map +1 -1
  55. package/dist/cjs/instructions/closeRental.js +8 -4
  56. package/dist/cjs/instructions/closeRental.js.map +1 -1
  57. package/dist/cjs/instructions/createContract.js +4 -2
  58. package/dist/cjs/instructions/createContract.js.map +1 -1
  59. package/dist/cjs/instructions/deleteConfig.js +15 -4
  60. package/dist/cjs/instructions/deleteConfig.js.map +1 -1
  61. package/dist/cjs/instructions/index.js +5 -9
  62. package/dist/cjs/instructions/index.js.map +1 -1
  63. package/dist/cjs/instructions/ownerClaim.js +110 -0
  64. package/dist/cjs/instructions/ownerClaim.js.map +1 -0
  65. package/dist/cjs/instructions/ownerUpdate.js +68 -0
  66. package/dist/cjs/instructions/ownerUpdate.js.map +1 -0
  67. package/dist/cjs/instructions/reserveRental.js +6 -5
  68. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  69. package/dist/cjs/instructions/updateBorrower.js +4 -2
  70. package/dist/cjs/instructions/updateBorrower.js.map +1 -1
  71. package/dist/cjs/instructions/updateConfig.js +0 -1
  72. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  73. package/dist/cjs/legacy/index.js +6 -5
  74. package/dist/cjs/legacy/index.js.map +1 -1
  75. package/dist/cjs/package.json +3 -2
  76. package/dist/cjs/pda/constants.js +2 -1
  77. package/dist/cjs/pda/constants.js.map +1 -1
  78. package/dist/cjs/pda/index.js +3 -1
  79. package/dist/cjs/pda/index.js.map +1 -1
  80. package/dist/cjs/pda/srsly.js +21 -0
  81. package/dist/cjs/pda/srsly.js.map +1 -1
  82. package/dist/cjs/utils/addresses.js +1 -1
  83. package/dist/cjs/utils/addresses.js.map +1 -1
  84. package/dist/cjs/utils/signer.js +8 -8
  85. package/dist/cjs/utils/signer.js.map +1 -1
  86. package/dist/cjs/version.js +1 -1
  87. package/dist/esm/accounts/member.js +1 -1
  88. package/dist/esm/accounts/member.js.map +1 -1
  89. package/dist/esm/accounts/owner.js +101 -0
  90. package/dist/esm/accounts/owner.js.map +1 -0
  91. package/dist/esm/demos.js +84 -8
  92. package/dist/esm/demos.js.map +1 -1
  93. package/dist/esm/generated/codama/accounts/borrowerState.js +0 -4
  94. package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
  95. package/dist/esm/generated/codama/accounts/configState.js +0 -2
  96. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  97. package/dist/esm/generated/codama/accounts/contractState.js +4 -2
  98. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  99. package/dist/esm/generated/codama/accounts/index.js +1 -0
  100. package/dist/esm/generated/codama/accounts/index.js.map +1 -1
  101. package/dist/esm/generated/codama/accounts/ownerState.js +73 -0
  102. package/dist/esm/generated/codama/accounts/ownerState.js.map +1 -0
  103. package/dist/esm/generated/codama/errors/srsly.js +25 -28
  104. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  105. package/dist/esm/generated/codama/instructions/claimBorrower.js +25 -12
  106. package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
  107. package/dist/esm/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +51 -37
  108. package/dist/esm/generated/codama/instructions/claimOwner.js.map +1 -0
  109. package/dist/esm/generated/codama/instructions/closeContract.js +10 -78
  110. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  111. package/dist/esm/generated/codama/instructions/closeRental.js +15 -15
  112. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  113. package/dist/esm/generated/codama/instructions/createContract.js +25 -11
  114. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  115. package/dist/esm/generated/codama/instructions/index.js +2 -4
  116. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  117. package/dist/esm/generated/codama/instructions/payRental.js +12 -12
  118. package/dist/esm/generated/codama/instructions/payRental.js.map +1 -1
  119. package/dist/esm/generated/codama/instructions/reserveRental.js +27 -8
  120. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  121. package/dist/esm/generated/codama/instructions/updateConfig.js +0 -2
  122. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  123. package/dist/esm/generated/codama/instructions/updateOwner.js +70 -0
  124. package/dist/esm/generated/codama/instructions/updateOwner.js.map +1 -0
  125. package/dist/esm/generated/codama/programs/srsly.js +29 -33
  126. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  127. package/dist/esm/generated/codama/types/index.js +0 -1
  128. package/dist/esm/generated/codama/types/index.js.map +1 -1
  129. package/dist/esm/index.js +10 -8
  130. package/dist/esm/index.js.map +1 -1
  131. package/dist/esm/instructions/acceptRental.js +2 -2
  132. package/dist/esm/instructions/acceptRental.js.map +1 -1
  133. package/dist/esm/instructions/cancelRental.js +4 -2
  134. package/dist/esm/instructions/cancelRental.js.map +1 -1
  135. package/dist/esm/instructions/claimBorrower.js +8 -4
  136. package/dist/esm/instructions/claimBorrower.js.map +1 -1
  137. package/dist/esm/instructions/claimRental.js +2 -2
  138. package/dist/esm/instructions/claimRental.js.map +1 -1
  139. package/dist/esm/instructions/closeContract.js +4 -3
  140. package/dist/esm/instructions/closeContract.js.map +1 -1
  141. package/dist/esm/instructions/closeRental.js +9 -5
  142. package/dist/esm/instructions/closeRental.js.map +1 -1
  143. package/dist/esm/instructions/createContract.js +4 -2
  144. package/dist/esm/instructions/createContract.js.map +1 -1
  145. package/dist/esm/instructions/deleteConfig.js +15 -4
  146. package/dist/esm/instructions/deleteConfig.js.map +1 -1
  147. package/dist/esm/instructions/index.js +2 -4
  148. package/dist/esm/instructions/index.js.map +1 -1
  149. package/dist/esm/instructions/ownerClaim.js +107 -0
  150. package/dist/esm/instructions/ownerClaim.js.map +1 -0
  151. package/dist/esm/instructions/ownerUpdate.js +65 -0
  152. package/dist/esm/instructions/ownerUpdate.js.map +1 -0
  153. package/dist/esm/instructions/reserveRental.js +7 -6
  154. package/dist/esm/instructions/reserveRental.js.map +1 -1
  155. package/dist/esm/instructions/updateBorrower.js +4 -2
  156. package/dist/esm/instructions/updateBorrower.js.map +1 -1
  157. package/dist/esm/instructions/updateConfig.js +0 -1
  158. package/dist/esm/instructions/updateConfig.js.map +1 -1
  159. package/dist/esm/legacy/index.js +5 -4
  160. package/dist/esm/legacy/index.js.map +1 -1
  161. package/dist/esm/package.json +3 -2
  162. package/dist/esm/pda/constants.js +1 -0
  163. package/dist/esm/pda/constants.js.map +1 -1
  164. package/dist/esm/pda/index.js +2 -2
  165. package/dist/esm/pda/index.js.map +1 -1
  166. package/dist/esm/pda/srsly.js +21 -1
  167. package/dist/esm/pda/srsly.js.map +1 -1
  168. package/dist/esm/utils/addresses.js +1 -1
  169. package/dist/esm/utils/addresses.js.map +1 -1
  170. package/dist/esm/utils/signer.js +8 -8
  171. package/dist/esm/utils/signer.js.map +1 -1
  172. package/dist/esm/version.js +1 -1
  173. package/dist/idl/srsly.json +662 -806
  174. package/dist/types/accounts/member.d.ts +1 -1
  175. package/dist/types/accounts/member.d.ts.map +1 -1
  176. package/dist/types/accounts/owner.d.ts +52 -0
  177. package/dist/types/accounts/owner.d.ts.map +1 -0
  178. package/dist/types/demos.d.ts +14 -2
  179. package/dist/types/demos.d.ts.map +1 -1
  180. package/dist/types/generated/codama/accounts/borrowerState.d.ts +0 -8
  181. package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
  182. package/dist/types/generated/codama/accounts/configState.d.ts +0 -4
  183. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  184. package/dist/types/generated/codama/accounts/contractState.d.ts +8 -4
  185. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  186. package/dist/types/generated/codama/accounts/index.d.ts +1 -0
  187. package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
  188. package/dist/types/generated/codama/accounts/ownerState.d.ts +65 -0
  189. package/dist/types/generated/codama/accounts/ownerState.d.ts.map +1 -0
  190. package/dist/types/generated/codama/errors/srsly.d.ts +26 -28
  191. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  192. package/dist/types/generated/codama/instructions/claimBorrower.d.ts +31 -19
  193. package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
  194. package/dist/types/generated/codama/instructions/claimOwner.d.ts +91 -0
  195. package/dist/types/generated/codama/instructions/claimOwner.d.ts.map +1 -0
  196. package/dist/types/generated/codama/instructions/closeContract.d.ts +15 -27
  197. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  198. package/dist/types/generated/codama/instructions/closeRental.d.ts +18 -15
  199. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  200. package/dist/types/generated/codama/instructions/createContract.d.ts +20 -16
  201. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  202. package/dist/types/generated/codama/instructions/index.d.ts +2 -4
  203. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  204. package/dist/types/generated/codama/instructions/payRental.d.ts +22 -22
  205. package/dist/types/generated/codama/instructions/payRental.d.ts.map +1 -1
  206. package/dist/types/generated/codama/instructions/reserveRental.d.ts +21 -17
  207. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  208. package/dist/types/generated/codama/instructions/updateConfig.d.ts +0 -6
  209. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  210. package/dist/types/generated/codama/instructions/updateOwner.d.ts +44 -0
  211. package/dist/types/generated/codama/instructions/updateOwner.d.ts.map +1 -0
  212. package/dist/types/generated/codama/programs/srsly.d.ts +27 -32
  213. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  214. package/dist/types/generated/codama/types/index.d.ts +0 -1
  215. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  216. package/dist/types/index.d.ts +6 -7
  217. package/dist/types/index.d.ts.map +1 -1
  218. package/dist/types/instructions/cancelRental.d.ts.map +1 -1
  219. package/dist/types/instructions/claimBorrower.d.ts +6 -0
  220. package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
  221. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  222. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  223. package/dist/types/instructions/createContract.d.ts.map +1 -1
  224. package/dist/types/instructions/deleteConfig.d.ts +4 -2
  225. package/dist/types/instructions/deleteConfig.d.ts.map +1 -1
  226. package/dist/types/instructions/index.d.ts +2 -4
  227. package/dist/types/instructions/index.d.ts.map +1 -1
  228. package/dist/types/instructions/ownerClaim.d.ts +72 -0
  229. package/dist/types/instructions/ownerClaim.d.ts.map +1 -0
  230. package/dist/types/instructions/ownerUpdate.d.ts +57 -0
  231. package/dist/types/instructions/ownerUpdate.d.ts.map +1 -0
  232. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  233. package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
  234. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  235. package/dist/types/legacy/index.d.ts +7 -8
  236. package/dist/types/legacy/index.d.ts.map +1 -1
  237. package/dist/types/pda/constants.d.ts +1 -0
  238. package/dist/types/pda/constants.d.ts.map +1 -1
  239. package/dist/types/pda/index.d.ts +2 -2
  240. package/dist/types/pda/index.d.ts.map +1 -1
  241. package/dist/types/pda/srsly.d.ts +7 -0
  242. package/dist/types/pda/srsly.d.ts.map +1 -1
  243. package/dist/types/utils/addresses.d.ts +5 -1
  244. package/dist/types/utils/addresses.d.ts.map +1 -1
  245. package/dist/types/utils/signer.d.ts +2 -2
  246. package/dist/types/utils/signer.d.ts.map +1 -1
  247. package/dist/types/version.d.ts +1 -1
  248. package/package.json +25 -19
  249. package/dist/cjs/generated/codama/instructions/claimContractPayments.js.map +0 -1
  250. package/dist/cjs/generated/codama/instructions/closeBorrower.js +0 -84
  251. package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +0 -1
  252. package/dist/cjs/generated/codama/instructions/deleteBorrower.js +0 -126
  253. package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +0 -1
  254. package/dist/cjs/generated/codama/instructions/discountBorrower.js +0 -118
  255. package/dist/cjs/generated/codama/instructions/discountBorrower.js.map +0 -1
  256. package/dist/cjs/generated/codama/types/borrowerDiscountSet.js +0 -29
  257. package/dist/cjs/generated/codama/types/borrowerDiscountSet.js.map +0 -1
  258. package/dist/cjs/instructions/claimContractPayments.js +0 -79
  259. package/dist/cjs/instructions/claimContractPayments.js.map +0 -1
  260. package/dist/cjs/instructions/closeBorrower.js +0 -60
  261. package/dist/cjs/instructions/closeBorrower.js.map +0 -1
  262. package/dist/cjs/instructions/deleteBorrower.js +0 -60
  263. package/dist/cjs/instructions/deleteBorrower.js.map +0 -1
  264. package/dist/cjs/instructions/discountBorrower.js +0 -76
  265. package/dist/cjs/instructions/discountBorrower.js.map +0 -1
  266. package/dist/esm/generated/codama/instructions/claimContractPayments.js.map +0 -1
  267. package/dist/esm/generated/codama/instructions/closeBorrower.js +0 -75
  268. package/dist/esm/generated/codama/instructions/closeBorrower.js.map +0 -1
  269. package/dist/esm/generated/codama/instructions/deleteBorrower.js +0 -116
  270. package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +0 -1
  271. package/dist/esm/generated/codama/instructions/discountBorrower.js +0 -108
  272. package/dist/esm/generated/codama/instructions/discountBorrower.js.map +0 -1
  273. package/dist/esm/generated/codama/types/borrowerDiscountSet.js +0 -24
  274. package/dist/esm/generated/codama/types/borrowerDiscountSet.js.map +0 -1
  275. package/dist/esm/instructions/claimContractPayments.js +0 -76
  276. package/dist/esm/instructions/claimContractPayments.js.map +0 -1
  277. package/dist/esm/instructions/closeBorrower.js +0 -57
  278. package/dist/esm/instructions/closeBorrower.js.map +0 -1
  279. package/dist/esm/instructions/deleteBorrower.js +0 -57
  280. package/dist/esm/instructions/deleteBorrower.js.map +0 -1
  281. package/dist/esm/instructions/discountBorrower.js +0 -73
  282. package/dist/esm/instructions/discountBorrower.js.map +0 -1
  283. package/dist/types/generated/codama/instructions/claimContractPayments.d.ts +0 -98
  284. package/dist/types/generated/codama/instructions/claimContractPayments.d.ts.map +0 -1
  285. package/dist/types/generated/codama/instructions/closeBorrower.d.ts +0 -43
  286. package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +0 -1
  287. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +0 -55
  288. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +0 -1
  289. package/dist/types/generated/codama/instructions/discountBorrower.d.ts +0 -56
  290. package/dist/types/generated/codama/instructions/discountBorrower.d.ts.map +0 -1
  291. package/dist/types/generated/codama/types/borrowerDiscountSet.d.ts +0 -20
  292. package/dist/types/generated/codama/types/borrowerDiscountSet.d.ts.map +0 -1
  293. package/dist/types/instructions/claimContractPayments.d.ts +0 -78
  294. package/dist/types/instructions/claimContractPayments.d.ts.map +0 -1
  295. package/dist/types/instructions/closeBorrower.d.ts +0 -45
  296. package/dist/types/instructions/closeBorrower.d.ts.map +0 -1
  297. package/dist/types/instructions/deleteBorrower.d.ts +0 -53
  298. package/dist/types/instructions/deleteBorrower.d.ts.map +0 -1
  299. package/dist/types/instructions/discountBorrower.d.ts +0 -64
  300. package/dist/types/instructions/discountBorrower.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "address": "SRSLYuBDYCZDPXoinuNcYbGmi4PXQipY5mCm8uDCTQT",
2
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH",
3
3
  "metadata": {
4
4
  "name": "srsly",
5
5
  "version": "3.1.0",
@@ -12,7 +12,7 @@
12
12
  "docs": [
13
13
  "Accept a rental contract by providing payment and specifying duration.",
14
14
  "Used when no active rental exists. For queued rentals, use claim_rental.",
15
- "Optionally includes rebate authorization for referrer/share discounts."
15
+ "Optionally includes discount authorization for referrer/affiliate discounts."
16
16
  ],
17
17
  "discriminator": [
18
18
  192,
@@ -230,36 +230,7 @@
230
230
  },
231
231
  {
232
232
  "name": "rental_state",
233
- "writable": true,
234
- "pda": {
235
- "seeds": [
236
- {
237
- "kind": "const",
238
- "value": [
239
- 114,
240
- 101,
241
- 110,
242
- 116,
243
- 97,
244
- 108,
245
- 95,
246
- 115,
247
- 116,
248
- 97,
249
- 116,
250
- 101
251
- ]
252
- },
253
- {
254
- "kind": "account",
255
- "path": "contract"
256
- },
257
- {
258
- "kind": "account",
259
- "path": "borrower"
260
- }
261
- ]
262
- }
233
+ "writable": true
263
234
  },
264
235
  {
265
236
  "name": "rental_authority",
@@ -395,40 +366,6 @@
395
366
  "writable": true,
396
367
  "optional": true
397
368
  },
398
- {
399
- "name": "rebate",
400
- "docs": [
401
- "Rebate account for the borrower (auto-created by slyvault if needed)"
402
- ],
403
- "writable": true,
404
- "pda": {
405
- "seeds": [
406
- {
407
- "kind": "const",
408
- "value": [
409
- 114,
410
- 101,
411
- 98,
412
- 97,
413
- 116,
414
- 101
415
- ]
416
- },
417
- {
418
- "kind": "account",
419
- "path": "vault"
420
- },
421
- {
422
- "kind": "account",
423
- "path": "borrower"
424
- }
425
- ],
426
- "program": {
427
- "kind": "account",
428
- "path": "slyvault_program"
429
- }
430
- }
431
- },
432
369
  {
433
370
  "name": "instructions_sysvar",
434
371
  "address": "Sysvar1nstructions1111111111111111111111111"
@@ -438,7 +375,7 @@
438
375
  },
439
376
  {
440
377
  "name": "slyvault_program",
441
- "address": "VLTm3X1xUXhMYjjEgvwhb6p1ekBvrnYTdVcbHR9Vask"
378
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
442
379
  },
443
380
  {
444
381
  "name": "token_program",
@@ -459,11 +396,11 @@
459
396
  "type": "u64"
460
397
  },
461
398
  {
462
- "name": "rebate_auth",
399
+ "name": "discount_auth",
463
400
  "type": {
464
401
  "option": {
465
402
  "defined": {
466
- "name": "RebateAuthorization"
403
+ "name": "DiscountAuthorization"
467
404
  }
468
405
  }
469
406
  }
@@ -770,36 +707,7 @@
770
707
  },
771
708
  {
772
709
  "name": "rental_state",
773
- "writable": true,
774
- "pda": {
775
- "seeds": [
776
- {
777
- "kind": "const",
778
- "value": [
779
- 114,
780
- 101,
781
- 110,
782
- 116,
783
- 97,
784
- 108,
785
- 95,
786
- 115,
787
- 116,
788
- 97,
789
- 116,
790
- 101
791
- ]
792
- },
793
- {
794
- "kind": "account",
795
- "path": "contract"
796
- },
797
- {
798
- "kind": "account",
799
- "path": "borrower"
800
- }
801
- ]
802
- }
710
+ "writable": true
803
711
  },
804
712
  {
805
713
  "name": "rental_token_account",
@@ -927,12 +835,24 @@
927
835
  {
928
836
  "name": "token_program",
929
837
  "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
838
+ },
839
+ {
840
+ "name": "associated_token_program",
841
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
842
+ },
843
+ {
844
+ "name": "system_program",
845
+ "address": "11111111111111111111111111111111"
930
846
  }
931
847
  ],
932
848
  "args": [
933
849
  {
934
850
  "name": "cancel_delay",
935
851
  "type": "u64"
852
+ },
853
+ {
854
+ "name": "rental_slot",
855
+ "type": "u8"
936
856
  }
937
857
  ]
938
858
  },
@@ -940,9 +860,8 @@
940
860
  "name": "claim_borrower",
941
861
  "docs": [
942
862
  "Borrower claims accumulated ATLAS from their managed token account.",
943
- "",
944
- "When knocked off a reservation, ATLAS refunds + bonus go to the borrower's",
945
- "managed token account. This instruction withdraws to their personal wallet."
863
+ "Optionally closes managed ATA + BorrowerState (requires no active rentals).",
864
+ "Callable by borrower or admin (config.admin) as escape hatch."
946
865
  ],
947
866
  "discriminator": [
948
867
  110,
@@ -956,12 +875,12 @@
956
875
  ],
957
876
  "accounts": [
958
877
  {
959
- "name": "borrower",
878
+ "name": "payer",
879
+ "docs": [
880
+ "Payer/signer — must be borrower OR config.admin"
881
+ ],
960
882
  "writable": true,
961
- "signer": true,
962
- "relations": [
963
- "borrower_state"
964
- ]
883
+ "signer": true
965
884
  },
966
885
  {
967
886
  "name": "config",
@@ -984,8 +903,16 @@
984
903
  {
985
904
  "name": "mint"
986
905
  },
906
+ {
907
+ "name": "borrower",
908
+ "writable": true,
909
+ "relations": [
910
+ "borrower_state"
911
+ ]
912
+ },
987
913
  {
988
914
  "name": "borrower_state",
915
+ "writable": true,
989
916
  "pda": {
990
917
  "seeds": [
991
918
  {
@@ -1214,30 +1141,33 @@
1214
1141
  "address": "11111111111111111111111111111111"
1215
1142
  }
1216
1143
  ],
1217
- "args": []
1144
+ "args": [
1145
+ {
1146
+ "name": "close",
1147
+ "type": "bool"
1148
+ }
1149
+ ]
1218
1150
  },
1219
1151
  {
1220
- "name": "claim_contract_payments",
1152
+ "name": "claim_owner",
1221
1153
  "docs": [
1222
- "Owner claims accumulated payments from contract's fallback buffer",
1223
- "Sweeps funds to destination token account (without closing)"
1154
+ "Owner claims accumulated ATLAS from their managed token account.",
1155
+ "Iterates remaining_accounts to protect reserved_atlas across all contracts.",
1156
+ "Optionally closes OwnerState + ATA when no active contracts remain."
1224
1157
  ],
1225
1158
  "discriminator": [
1226
- 48,
1227
- 195,
1228
- 152,
1229
- 211,
1230
- 16,
1231
- 244,
1232
- 92,
1233
- 169
1159
+ 121,
1160
+ 114,
1161
+ 151,
1162
+ 165,
1163
+ 8,
1164
+ 32,
1165
+ 220,
1166
+ 239
1234
1167
  ],
1235
1168
  "accounts": [
1236
1169
  {
1237
1170
  "name": "payer",
1238
- "docs": [
1239
- "Payer for any account initialization"
1240
- ],
1241
1171
  "writable": true,
1242
1172
  "signer": true
1243
1173
  },
@@ -1263,24 +1193,44 @@
1263
1193
  "name": "mint"
1264
1194
  },
1265
1195
  {
1266
- "name": "owner",
1196
+ "name": "owner_state",
1267
1197
  "writable": true,
1268
- "relations": [
1269
- "contract"
1270
- ]
1198
+ "pda": {
1199
+ "seeds": [
1200
+ {
1201
+ "kind": "const",
1202
+ "value": [
1203
+ 111,
1204
+ 119,
1205
+ 110,
1206
+ 101,
1207
+ 114,
1208
+ 95,
1209
+ 115,
1210
+ 116,
1211
+ 97,
1212
+ 116,
1213
+ 101
1214
+ ]
1215
+ },
1216
+ {
1217
+ "kind": "account",
1218
+ "path": "owner"
1219
+ }
1220
+ ]
1221
+ }
1271
1222
  },
1272
1223
  {
1273
- "name": "contract",
1274
- "writable": true
1224
+ "name": "owner"
1275
1225
  },
1276
1226
  {
1277
- "name": "contract_token_account",
1227
+ "name": "owner_token_account",
1278
1228
  "writable": true,
1279
1229
  "pda": {
1280
1230
  "seeds": [
1281
1231
  {
1282
1232
  "kind": "account",
1283
- "path": "contract"
1233
+ "path": "owner_state"
1284
1234
  },
1285
1235
  {
1286
1236
  "kind": "const",
@@ -1456,8 +1406,7 @@
1456
1406
  {
1457
1407
  "name": "claim_thread",
1458
1408
  "docs": [
1459
- "Optional: Thread account for automated claims",
1460
- "When provided, validates thread.authority == contract.owner"
1409
+ "Optional: Thread for automated claims"
1461
1410
  ],
1462
1411
  "optional": true
1463
1412
  },
@@ -1474,7 +1423,12 @@
1474
1423
  "address": "11111111111111111111111111111111"
1475
1424
  }
1476
1425
  ],
1477
- "args": []
1426
+ "args": [
1427
+ {
1428
+ "name": "close",
1429
+ "type": "bool"
1430
+ }
1431
+ ]
1478
1432
  },
1479
1433
  {
1480
1434
  "name": "claim_rental",
@@ -1692,36 +1646,7 @@
1692
1646
  },
1693
1647
  {
1694
1648
  "name": "rental_state",
1695
- "writable": true,
1696
- "pda": {
1697
- "seeds": [
1698
- {
1699
- "kind": "const",
1700
- "value": [
1701
- 114,
1702
- 101,
1703
- 110,
1704
- 116,
1705
- 97,
1706
- 108,
1707
- 95,
1708
- 115,
1709
- 116,
1710
- 97,
1711
- 116,
1712
- 101
1713
- ]
1714
- },
1715
- {
1716
- "kind": "account",
1717
- "path": "contract"
1718
- },
1719
- {
1720
- "kind": "account",
1721
- "path": "borrower"
1722
- }
1723
- ]
1724
- }
1649
+ "writable": true
1725
1650
  },
1726
1651
  {
1727
1652
  "name": "rental_token_account",
@@ -1826,47 +1751,13 @@
1826
1751
  "writable": true,
1827
1752
  "optional": true
1828
1753
  },
1829
- {
1830
- "name": "rebate",
1831
- "docs": [
1832
- "Rebate account for the borrower (auto-created by slyvault if needed)"
1833
- ],
1834
- "writable": true,
1835
- "pda": {
1836
- "seeds": [
1837
- {
1838
- "kind": "const",
1839
- "value": [
1840
- 114,
1841
- 101,
1842
- 98,
1843
- 97,
1844
- 116,
1845
- 101
1846
- ]
1847
- },
1848
- {
1849
- "kind": "account",
1850
- "path": "vault"
1851
- },
1852
- {
1853
- "kind": "account",
1854
- "path": "borrower"
1855
- }
1856
- ],
1857
- "program": {
1858
- "kind": "account",
1859
- "path": "slyvault_program"
1860
- }
1861
- }
1862
- },
1863
1754
  {
1864
1755
  "name": "instructions_sysvar",
1865
1756
  "address": "Sysvar1nstructions1111111111111111111111111"
1866
1757
  },
1867
1758
  {
1868
1759
  "name": "slyvault_program",
1869
- "address": "VLTm3X1xUXhMYjjEgvwhb6p1ekBvrnYTdVcbHR9Vask"
1760
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
1870
1761
  },
1871
1762
  {
1872
1763
  "name": "token_program",
@@ -1887,11 +1778,15 @@
1887
1778
  "type": "u64"
1888
1779
  },
1889
1780
  {
1890
- "name": "rebate_auth",
1781
+ "name": "rental_slot",
1782
+ "type": "u8"
1783
+ },
1784
+ {
1785
+ "name": "discount_auth",
1891
1786
  "type": {
1892
1787
  "option": {
1893
1788
  "defined": {
1894
- "name": "RebateAuthorization"
1789
+ "name": "DiscountAuthorization"
1895
1790
  }
1896
1791
  }
1897
1792
  }
@@ -1899,61 +1794,25 @@
1899
1794
  ]
1900
1795
  },
1901
1796
  {
1902
- "name": "close_borrower",
1797
+ "name": "close_contract",
1903
1798
  "docs": [
1904
- "Borrower closes their account and reclaims rent lamports",
1905
- "Requires no active rentals"
1799
+ "Closes a rental contract. Contract must have no active rentals.",
1800
+ "Owner closes contract and claims all remaining payments",
1801
+ "Requires no active rental, reclaims all rent"
1906
1802
  ],
1907
1803
  "discriminator": [
1908
- 136,
1909
- 79,
1910
- 95,
1911
- 44,
1912
- 18,
1913
- 151,
1914
- 73,
1915
- 199
1804
+ 37,
1805
+ 244,
1806
+ 34,
1807
+ 168,
1808
+ 92,
1809
+ 202,
1810
+ 80,
1811
+ 106
1916
1812
  ],
1917
1813
  "accounts": [
1918
1814
  {
1919
- "name": "borrower",
1920
- "writable": true,
1921
- "signer": true,
1922
- "relations": [
1923
- "borrower_state"
1924
- ]
1925
- },
1926
- {
1927
- "name": "borrower_state",
1928
- "writable": true
1929
- },
1930
- {
1931
- "name": "system_program",
1932
- "address": "11111111111111111111111111111111"
1933
- }
1934
- ],
1935
- "args": []
1936
- },
1937
- {
1938
- "name": "close_contract",
1939
- "docs": [
1940
- "Closes a rental contract. Contract must have no active rentals.",
1941
- "Owner closes contract and claims all remaining payments",
1942
- "Requires no active rental, reclaims all rent"
1943
- ],
1944
- "discriminator": [
1945
- 37,
1946
- 244,
1947
- 34,
1948
- 168,
1949
- 92,
1950
- 202,
1951
- 80,
1952
- 106
1953
- ],
1954
- "accounts": [
1955
- {
1956
- "name": "owner",
1815
+ "name": "owner",
1957
1816
  "writable": true,
1958
1817
  "signer": true
1959
1818
  },
@@ -2011,183 +1870,31 @@
2011
1870
  }
2012
1871
  },
2013
1872
  {
2014
- "name": "contract_token_account",
1873
+ "name": "owner_state",
2015
1874
  "writable": true,
2016
1875
  "pda": {
2017
1876
  "seeds": [
2018
- {
2019
- "kind": "account",
2020
- "path": "contract"
2021
- },
2022
1877
  {
2023
1878
  "kind": "const",
2024
1879
  "value": [
2025
- 6,
2026
- 221,
2027
- 246,
2028
- 225,
2029
- 215,
1880
+ 111,
1881
+ 119,
1882
+ 110,
2030
1883
  101,
2031
- 161,
2032
- 147,
2033
- 217,
2034
- 203,
2035
- 225,
2036
- 70,
2037
- 206,
2038
- 235,
2039
- 121,
2040
- 172,
2041
- 28,
2042
- 180,
2043
- 133,
2044
- 237,
1884
+ 114,
2045
1885
  95,
2046
- 91,
2047
- 55,
2048
- 145,
2049
- 58,
2050
- 140,
2051
- 245,
2052
- 133,
2053
- 126,
2054
- 255,
2055
- 0,
2056
- 169
1886
+ 115,
1887
+ 116,
1888
+ 97,
1889
+ 116,
1890
+ 101
2057
1891
  ]
2058
1892
  },
2059
- {
2060
- "kind": "account",
2061
- "path": "mint"
2062
- }
2063
- ],
2064
- "program": {
2065
- "kind": "const",
2066
- "value": [
2067
- 140,
2068
- 151,
2069
- 37,
2070
- 143,
2071
- 78,
2072
- 36,
2073
- 137,
2074
- 241,
2075
- 187,
2076
- 61,
2077
- 16,
2078
- 41,
2079
- 20,
2080
- 142,
2081
- 13,
2082
- 131,
2083
- 11,
2084
- 90,
2085
- 19,
2086
- 153,
2087
- 218,
2088
- 255,
2089
- 16,
2090
- 132,
2091
- 4,
2092
- 142,
2093
- 123,
2094
- 216,
2095
- 219,
2096
- 233,
2097
- 248,
2098
- 89
2099
- ]
2100
- }
2101
- }
2102
- },
2103
- {
2104
- "name": "destination_token_account",
2105
- "writable": true,
2106
- "pda": {
2107
- "seeds": [
2108
1893
  {
2109
1894
  "kind": "account",
2110
1895
  "path": "owner"
2111
- },
2112
- {
2113
- "kind": "const",
2114
- "value": [
2115
- 6,
2116
- 221,
2117
- 246,
2118
- 225,
2119
- 215,
2120
- 101,
2121
- 161,
2122
- 147,
2123
- 217,
2124
- 203,
2125
- 225,
2126
- 70,
2127
- 206,
2128
- 235,
2129
- 121,
2130
- 172,
2131
- 28,
2132
- 180,
2133
- 133,
2134
- 237,
2135
- 95,
2136
- 91,
2137
- 55,
2138
- 145,
2139
- 58,
2140
- 140,
2141
- 245,
2142
- 133,
2143
- 126,
2144
- 255,
2145
- 0,
2146
- 169
2147
- ]
2148
- },
2149
- {
2150
- "kind": "account",
2151
- "path": "mint"
2152
1896
  }
2153
- ],
2154
- "program": {
2155
- "kind": "const",
2156
- "value": [
2157
- 140,
2158
- 151,
2159
- 37,
2160
- 143,
2161
- 78,
2162
- 36,
2163
- 137,
2164
- 241,
2165
- 187,
2166
- 61,
2167
- 16,
2168
- 41,
2169
- 20,
2170
- 142,
2171
- 13,
2172
- 131,
2173
- 11,
2174
- 90,
2175
- 19,
2176
- 153,
2177
- 218,
2178
- 255,
2179
- 16,
2180
- 132,
2181
- 4,
2182
- 142,
2183
- 123,
2184
- 216,
2185
- 219,
2186
- 233,
2187
- 248,
2188
- 89
2189
- ]
2190
- }
1897
+ ]
2191
1898
  }
2192
1899
  },
2193
1900
  {
@@ -2228,14 +1935,6 @@
2228
1935
  {
2229
1936
  "name": "sage_program"
2230
1937
  },
2231
- {
2232
- "name": "token_program",
2233
- "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2234
- },
2235
- {
2236
- "name": "associated_token_program",
2237
- "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
2238
- },
2239
1938
  {
2240
1939
  "name": "system_program",
2241
1940
  "address": "11111111111111111111111111111111"
@@ -2325,17 +2024,19 @@
2325
2024
  }
2326
2025
  },
2327
2026
  {
2328
- "name": "owner",
2329
- "writable": true
2027
+ "name": "owner_state"
2330
2028
  },
2331
2029
  {
2332
- "name": "contract_token_account",
2030
+ "name": "owner_token_account",
2031
+ "docs": [
2032
+ "Owner's managed token account - receives remaining rental escrow"
2033
+ ],
2333
2034
  "writable": true,
2334
2035
  "pda": {
2335
2036
  "seeds": [
2336
2037
  {
2337
2038
  "kind": "account",
2338
- "path": "contract"
2039
+ "path": "owner_state"
2339
2040
  },
2340
2041
  {
2341
2042
  "kind": "const",
@@ -2424,36 +2125,7 @@
2424
2125
  },
2425
2126
  {
2426
2127
  "name": "rental_state",
2427
- "writable": true,
2428
- "pda": {
2429
- "seeds": [
2430
- {
2431
- "kind": "const",
2432
- "value": [
2433
- 114,
2434
- 101,
2435
- 110,
2436
- 116,
2437
- 97,
2438
- 108,
2439
- 95,
2440
- 115,
2441
- 116,
2442
- 97,
2443
- 116,
2444
- 101
2445
- ]
2446
- },
2447
- {
2448
- "kind": "account",
2449
- "path": "contract"
2450
- },
2451
- {
2452
- "kind": "account",
2453
- "path": "borrower"
2454
- }
2455
- ]
2456
- }
2128
+ "writable": true
2457
2129
  },
2458
2130
  {
2459
2131
  "name": "rental_token_account",
@@ -2624,7 +2296,12 @@
2624
2296
  "address": "11111111111111111111111111111111"
2625
2297
  }
2626
2298
  ],
2627
- "args": []
2299
+ "args": [
2300
+ {
2301
+ "name": "rental_slot",
2302
+ "type": "u8"
2303
+ }
2304
+ ]
2628
2305
  },
2629
2306
  {
2630
2307
  "name": "create_config",
@@ -2698,11 +2375,11 @@
2698
2375
  },
2699
2376
  {
2700
2377
  "name": "srsly_program",
2701
- "address": "SRSLYuBDYCZDPXoinuNcYbGmi4PXQipY5mCm8uDCTQT"
2378
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH"
2702
2379
  },
2703
2380
  {
2704
2381
  "name": "slyvault_program",
2705
- "address": "VLTm3X1xUXhMYjjEgvwhb6p1ekBvrnYTdVcbHR9Vask"
2382
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
2706
2383
  },
2707
2384
  {
2708
2385
  "name": "token_program",
@@ -2812,13 +2489,41 @@
2812
2489
  }
2813
2490
  },
2814
2491
  {
2815
- "name": "contract_token_account",
2492
+ "name": "owner_state",
2493
+ "writable": true,
2494
+ "pda": {
2495
+ "seeds": [
2496
+ {
2497
+ "kind": "const",
2498
+ "value": [
2499
+ 111,
2500
+ 119,
2501
+ 110,
2502
+ 101,
2503
+ 114,
2504
+ 95,
2505
+ 115,
2506
+ 116,
2507
+ 97,
2508
+ 116,
2509
+ 101
2510
+ ]
2511
+ },
2512
+ {
2513
+ "kind": "account",
2514
+ "path": "owner"
2515
+ }
2516
+ ]
2517
+ }
2518
+ },
2519
+ {
2520
+ "name": "owner_token_account",
2816
2521
  "writable": true,
2817
2522
  "pda": {
2818
2523
  "seeds": [
2819
2524
  {
2820
2525
  "kind": "account",
2821
- "path": "contract"
2526
+ "path": "owner_state"
2822
2527
  },
2823
2528
  {
2824
2529
  "kind": "const",
@@ -2980,84 +2685,6 @@
2980
2685
  }
2981
2686
  ]
2982
2687
  },
2983
- {
2984
- "name": "delete_borrower",
2985
- "docs": [
2986
- "Delete borrower state (admin or borrower can call for schema migrations)",
2987
- "Returns lamports to the borrower. Next rental will lazy-init fresh state."
2988
- ],
2989
- "discriminator": [
2990
- 89,
2991
- 147,
2992
- 185,
2993
- 127,
2994
- 231,
2995
- 56,
2996
- 190,
2997
- 45
2998
- ],
2999
- "accounts": [
3000
- {
3001
- "name": "admin",
3002
- "writable": true,
3003
- "signer": true
3004
- },
3005
- {
3006
- "name": "config",
3007
- "pda": {
3008
- "seeds": [
3009
- {
3010
- "kind": "const",
3011
- "value": [
3012
- 99,
3013
- 111,
3014
- 110,
3015
- 102,
3016
- 105,
3017
- 103
3018
- ]
3019
- }
3020
- ]
3021
- }
3022
- },
3023
- {
3024
- "name": "borrower",
3025
- "writable": true
3026
- },
3027
- {
3028
- "name": "borrower_state",
3029
- "writable": true,
3030
- "pda": {
3031
- "seeds": [
3032
- {
3033
- "kind": "const",
3034
- "value": [
3035
- 98,
3036
- 111,
3037
- 114,
3038
- 114,
3039
- 111,
3040
- 119,
3041
- 101,
3042
- 114,
3043
- 95,
3044
- 115,
3045
- 116,
3046
- 97,
3047
- 116,
3048
- 101
3049
- ]
3050
- },
3051
- {
3052
- "kind": "account",
3053
- "path": "borrower"
3054
- }
3055
- ]
3056
- }
3057
- }
3058
- ],
3059
- "args": []
3060
- },
3061
2688
  {
3062
2689
  "name": "delete_config",
3063
2690
  "docs": [
@@ -3114,11 +2741,11 @@
3114
2741
  },
3115
2742
  {
3116
2743
  "name": "srsly_program",
3117
- "address": "SRSLYuBDYCZDPXoinuNcYbGmi4PXQipY5mCm8uDCTQT"
2744
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH"
3118
2745
  },
3119
2746
  {
3120
2747
  "name": "slyvault_program",
3121
- "address": "VLTm3X1xUXhMYjjEgvwhb6p1ekBvrnYTdVcbHR9Vask"
2748
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
3122
2749
  },
3123
2750
  {
3124
2751
  "name": "token_program",
@@ -3232,87 +2859,6 @@
3232
2859
  ],
3233
2860
  "args": []
3234
2861
  },
3235
- {
3236
- "name": "discount_borrower",
3237
- "docs": [
3238
- "Update borrower state with a discount bps"
3239
- ],
3240
- "discriminator": [
3241
- 110,
3242
- 191,
3243
- 200,
3244
- 109,
3245
- 103,
3246
- 39,
3247
- 185,
3248
- 141
3249
- ],
3250
- "accounts": [
3251
- {
3252
- "name": "admin",
3253
- "writable": true,
3254
- "signer": true
3255
- },
3256
- {
3257
- "name": "config",
3258
- "pda": {
3259
- "seeds": [
3260
- {
3261
- "kind": "const",
3262
- "value": [
3263
- 99,
3264
- 111,
3265
- 110,
3266
- 102,
3267
- 105,
3268
- 103
3269
- ]
3270
- }
3271
- ]
3272
- }
3273
- },
3274
- {
3275
- "name": "borrower_state",
3276
- "writable": true,
3277
- "pda": {
3278
- "seeds": [
3279
- {
3280
- "kind": "const",
3281
- "value": [
3282
- 98,
3283
- 111,
3284
- 114,
3285
- 114,
3286
- 111,
3287
- 119,
3288
- 101,
3289
- 114,
3290
- 95,
3291
- 115,
3292
- 116,
3293
- 97,
3294
- 116,
3295
- 101
3296
- ]
3297
- },
3298
- {
3299
- "kind": "account",
3300
- "path": "borrower_state.borrower",
3301
- "account": "BorrowerState"
3302
- }
3303
- ]
3304
- }
3305
- }
3306
- ],
3307
- "args": [
3308
- {
3309
- "name": "discount_bps",
3310
- "type": {
3311
- "option": "u16"
3312
- }
3313
- }
3314
- ]
3315
- },
3316
2862
  {
3317
2863
  "name": "invalidate_rental",
3318
2864
  "docs": [
@@ -3525,13 +3071,103 @@
3525
3071
  ]
3526
3072
  }
3527
3073
  },
3528
- {
3529
- "name": "contract_token_account",
3530
- "docs": [
3531
- "Contract's token account - receives all owner payments"
3532
- ],
3533
- "writable": true
3534
- },
3074
+ {
3075
+ "name": "owner_state"
3076
+ },
3077
+ {
3078
+ "name": "owner_token_account",
3079
+ "docs": [
3080
+ "Owner's managed token account - receives all owner payments"
3081
+ ],
3082
+ "writable": true,
3083
+ "pda": {
3084
+ "seeds": [
3085
+ {
3086
+ "kind": "account",
3087
+ "path": "owner_state"
3088
+ },
3089
+ {
3090
+ "kind": "const",
3091
+ "value": [
3092
+ 6,
3093
+ 221,
3094
+ 246,
3095
+ 225,
3096
+ 215,
3097
+ 101,
3098
+ 161,
3099
+ 147,
3100
+ 217,
3101
+ 203,
3102
+ 225,
3103
+ 70,
3104
+ 206,
3105
+ 235,
3106
+ 121,
3107
+ 172,
3108
+ 28,
3109
+ 180,
3110
+ 133,
3111
+ 237,
3112
+ 95,
3113
+ 91,
3114
+ 55,
3115
+ 145,
3116
+ 58,
3117
+ 140,
3118
+ 245,
3119
+ 133,
3120
+ 126,
3121
+ 255,
3122
+ 0,
3123
+ 169
3124
+ ]
3125
+ },
3126
+ {
3127
+ "kind": "account",
3128
+ "path": "config.atlas_mint",
3129
+ "account": "ConfigState"
3130
+ }
3131
+ ],
3132
+ "program": {
3133
+ "kind": "const",
3134
+ "value": [
3135
+ 140,
3136
+ 151,
3137
+ 37,
3138
+ 143,
3139
+ 78,
3140
+ 36,
3141
+ 137,
3142
+ 241,
3143
+ 187,
3144
+ 61,
3145
+ 16,
3146
+ 41,
3147
+ 20,
3148
+ 142,
3149
+ 13,
3150
+ 131,
3151
+ 11,
3152
+ 90,
3153
+ 19,
3154
+ 153,
3155
+ 218,
3156
+ 255,
3157
+ 16,
3158
+ 132,
3159
+ 4,
3160
+ 142,
3161
+ 123,
3162
+ 216,
3163
+ 219,
3164
+ 233,
3165
+ 248,
3166
+ 89
3167
+ ]
3168
+ }
3169
+ }
3170
+ },
3535
3171
  {
3536
3172
  "name": "rental_state",
3537
3173
  "writable": true
@@ -3663,10 +3299,6 @@
3663
3299
  ]
3664
3300
  }
3665
3301
  },
3666
- {
3667
- "name": "owner",
3668
- "writable": true
3669
- },
3670
3302
  {
3671
3303
  "name": "fleet",
3672
3304
  "docs": [
@@ -4094,11 +3726,126 @@
4094
3726
  "optional": true
4095
3727
  },
4096
3728
  {
4097
- "name": "contract_token_account",
3729
+ "name": "owner_state",
3730
+ "writable": true,
3731
+ "pda": {
3732
+ "seeds": [
3733
+ {
3734
+ "kind": "const",
3735
+ "value": [
3736
+ 111,
3737
+ 119,
3738
+ 110,
3739
+ 101,
3740
+ 114,
3741
+ 95,
3742
+ 115,
3743
+ 116,
3744
+ 97,
3745
+ 116,
3746
+ 101
3747
+ ]
3748
+ },
3749
+ {
3750
+ "kind": "account",
3751
+ "path": "contract.owner",
3752
+ "account": "ContractState"
3753
+ }
3754
+ ]
3755
+ }
3756
+ },
3757
+ {
3758
+ "name": "owner_token_account",
4098
3759
  "docs": [
4099
- "Contract token account for ATLAS reservations"
3760
+ "Owner's managed token account for ATLAS reservations"
4100
3761
  ],
4101
- "writable": true
3762
+ "writable": true,
3763
+ "pda": {
3764
+ "seeds": [
3765
+ {
3766
+ "kind": "account",
3767
+ "path": "owner_state"
3768
+ },
3769
+ {
3770
+ "kind": "const",
3771
+ "value": [
3772
+ 6,
3773
+ 221,
3774
+ 246,
3775
+ 225,
3776
+ 215,
3777
+ 101,
3778
+ 161,
3779
+ 147,
3780
+ 217,
3781
+ 203,
3782
+ 225,
3783
+ 70,
3784
+ 206,
3785
+ 235,
3786
+ 121,
3787
+ 172,
3788
+ 28,
3789
+ 180,
3790
+ 133,
3791
+ 237,
3792
+ 95,
3793
+ 91,
3794
+ 55,
3795
+ 145,
3796
+ 58,
3797
+ 140,
3798
+ 245,
3799
+ 133,
3800
+ 126,
3801
+ 255,
3802
+ 0,
3803
+ 169
3804
+ ]
3805
+ },
3806
+ {
3807
+ "kind": "account",
3808
+ "path": "mint"
3809
+ }
3810
+ ],
3811
+ "program": {
3812
+ "kind": "const",
3813
+ "value": [
3814
+ 140,
3815
+ 151,
3816
+ 37,
3817
+ 143,
3818
+ 78,
3819
+ 36,
3820
+ 137,
3821
+ 241,
3822
+ 187,
3823
+ 61,
3824
+ 16,
3825
+ 41,
3826
+ 20,
3827
+ 142,
3828
+ 13,
3829
+ 131,
3830
+ 11,
3831
+ 90,
3832
+ 19,
3833
+ 153,
3834
+ 218,
3835
+ 255,
3836
+ 16,
3837
+ 132,
3838
+ 4,
3839
+ 142,
3840
+ 123,
3841
+ 216,
3842
+ 219,
3843
+ 233,
3844
+ 248,
3845
+ 89
3846
+ ]
3847
+ }
3848
+ }
4102
3849
  },
4103
3850
  {
4104
3851
  "name": "token_program",
@@ -4207,37 +3954,7 @@
4207
3954
  },
4208
3955
  {
4209
3956
  "name": "rental_state",
4210
- "writable": true,
4211
- "pda": {
4212
- "seeds": [
4213
- {
4214
- "kind": "const",
4215
- "value": [
4216
- 114,
4217
- 101,
4218
- 110,
4219
- 116,
4220
- 97,
4221
- 108,
4222
- 95,
4223
- 115,
4224
- 116,
4225
- 97,
4226
- 116,
4227
- 101
4228
- ]
4229
- },
4230
- {
4231
- "kind": "account",
4232
- "path": "contract"
4233
- },
4234
- {
4235
- "kind": "account",
4236
- "path": "rental_state.borrower",
4237
- "account": "RentalState"
4238
- }
4239
- ]
4240
- }
3957
+ "writable": true
4241
3958
  },
4242
3959
  {
4243
3960
  "name": "borrower_profile_faction"
@@ -4363,6 +4080,12 @@
4363
4080
  "name": "rental_thread",
4364
4081
  "writable": true
4365
4082
  },
4083
+ {
4084
+ "name": "queued_thread",
4085
+ "docs": [
4086
+ "May be empty if no queued rental exists - we check data_is_empty() in rental_pay."
4087
+ ]
4088
+ },
4366
4089
  {
4367
4090
  "name": "sage_program"
4368
4091
  },
@@ -4383,7 +4106,12 @@
4383
4106
  "address": "11111111111111111111111111111111"
4384
4107
  }
4385
4108
  ],
4386
- "args": []
4109
+ "args": [
4110
+ {
4111
+ "name": "rental_slot",
4112
+ "type": "u8"
4113
+ }
4114
+ ]
4387
4115
  },
4388
4116
  {
4389
4117
  "name": "set_delegate",
@@ -4595,6 +4323,66 @@
4595
4323
  }
4596
4324
  }
4597
4325
  ]
4326
+ },
4327
+ {
4328
+ "name": "update_owner",
4329
+ "docs": [
4330
+ "Update OwnerState authority (owner/operator transfer)."
4331
+ ],
4332
+ "discriminator": [
4333
+ 164,
4334
+ 188,
4335
+ 124,
4336
+ 254,
4337
+ 132,
4338
+ 26,
4339
+ 198,
4340
+ 178
4341
+ ],
4342
+ "accounts": [
4343
+ {
4344
+ "name": "authority",
4345
+ "signer": true,
4346
+ "relations": [
4347
+ "owner_state"
4348
+ ]
4349
+ },
4350
+ {
4351
+ "name": "owner_state",
4352
+ "writable": true,
4353
+ "pda": {
4354
+ "seeds": [
4355
+ {
4356
+ "kind": "const",
4357
+ "value": [
4358
+ 111,
4359
+ 119,
4360
+ 110,
4361
+ 101,
4362
+ 114,
4363
+ 95,
4364
+ 115,
4365
+ 116,
4366
+ 97,
4367
+ 116,
4368
+ 101
4369
+ ]
4370
+ },
4371
+ {
4372
+ "kind": "account",
4373
+ "path": "owner_state.owner",
4374
+ "account": "OwnerState"
4375
+ }
4376
+ ]
4377
+ }
4378
+ }
4379
+ ],
4380
+ "args": [
4381
+ {
4382
+ "name": "new_authority",
4383
+ "type": "pubkey"
4384
+ }
4385
+ ]
4598
4386
  }
4599
4387
  ],
4600
4388
  "accounts": [
@@ -4650,6 +4438,19 @@
4650
4438
  163
4651
4439
  ]
4652
4440
  },
4441
+ {
4442
+ "name": "OwnerState",
4443
+ "discriminator": [
4444
+ 234,
4445
+ 56,
4446
+ 107,
4447
+ 216,
4448
+ 144,
4449
+ 52,
4450
+ 54,
4451
+ 244
4452
+ ]
4453
+ },
4653
4454
  {
4654
4455
  "name": "RentalState",
4655
4456
  "discriminator": [
@@ -4691,19 +4492,6 @@
4691
4492
  114
4692
4493
  ]
4693
4494
  },
4694
- {
4695
- "name": "BorrowerDiscountSet",
4696
- "discriminator": [
4697
- 28,
4698
- 63,
4699
- 195,
4700
- 54,
4701
- 159,
4702
- 22,
4703
- 164,
4704
- 22
4705
- ]
4706
- },
4707
4495
  {
4708
4496
  "name": "BorrowerInitialized",
4709
4497
  "discriminator": [
@@ -4756,6 +4544,19 @@
4756
4544
  158
4757
4545
  ]
4758
4546
  },
4547
+ {
4548
+ "name": "ContractPendingClose",
4549
+ "discriminator": [
4550
+ 56,
4551
+ 53,
4552
+ 238,
4553
+ 111,
4554
+ 4,
4555
+ 246,
4556
+ 124,
4557
+ 221
4558
+ ]
4559
+ },
4759
4560
  {
4760
4561
  "name": "ContractUpdated",
4761
4562
  "discriminator": [
@@ -5185,99 +4986,99 @@
5185
4986
  },
5186
4987
  {
5187
4988
  "code": 6059,
5188
- "name": "InvalidDiscountRate",
5189
- "msg": "Invalid discount rate configuration"
5190
- },
5191
- {
5192
- "code": 6060,
5193
4989
  "name": "ReferralNotEnabled",
5194
4990
  "msg": "Referrals are not enabled for this split"
5195
4991
  },
5196
4992
  {
5197
- "code": 6061,
4993
+ "code": 6060,
5198
4994
  "name": "NoFeesToClaim",
5199
4995
  "msg": "No fees available to claim"
5200
4996
  },
5201
4997
  {
5202
- "code": 6062,
4998
+ "code": 6061,
5203
4999
  "name": "ActiveRentalExist",
5204
5000
  "msg": "Cannot close account while active rental(s) exist"
5205
5001
  },
5206
5002
  {
5207
- "code": 6063,
5003
+ "code": 6062,
5208
5004
  "name": "CannotReleaseActiveRental",
5209
5005
  "msg": "Cannot release an active rental. Either rental state must be closed or contract must show no active rental."
5210
5006
  },
5211
5007
  {
5212
- "code": 6064,
5008
+ "code": 6063,
5213
5009
  "name": "CloseRentalBeforeContract",
5214
5010
  "msg": "Cannot close contract while rental is active. Close the rental first using rental_close."
5215
5011
  },
5216
5012
  {
5217
- "code": 6065,
5013
+ "code": 6064,
5218
5014
  "name": "InstantCancelNotAllowed",
5219
5015
  "msg": "Instant cancellation not allowed for this contract. Owner must enable allow_instant_cancel."
5220
5016
  },
5221
5017
  {
5222
- "code": 6066,
5018
+ "code": 6065,
5223
5019
  "name": "ContractReservationsDisabled",
5224
5020
  "msg": "Reservations disabled for this contract. Owner has opted out of reservation system."
5225
5021
  },
5226
5022
  {
5227
- "code": 6067,
5023
+ "code": 6066,
5228
5024
  "name": "AtlasReservationRequiresTokenAccounts",
5229
5025
  "msg": "ATLAS reservation requires token accounts"
5230
5026
  },
5231
5027
  {
5232
- "code": 6068,
5028
+ "code": 6067,
5233
5029
  "name": "InvalidAtlasAmount",
5234
5030
  "msg": "Invalid ATLAS amount for reservation (must be > 0)"
5235
5031
  },
5236
5032
  {
5237
- "code": 6069,
5033
+ "code": 6068,
5238
5034
  "name": "ContractExists",
5239
5035
  "msg": "Contract exists for this fleet. Use rental_release instead of rental_invalidate."
5240
5036
  },
5241
5037
  {
5242
- "code": 6070,
5038
+ "code": 6069,
5243
5039
  "name": "FleetNotRented",
5244
5040
  "msg": "Fleet is not currently rented (sub_profile is empty)."
5245
5041
  },
5246
5042
  {
5247
- "code": 6071,
5043
+ "code": 6070,
5248
5044
  "name": "NotCrownedWinner",
5249
5045
  "msg": "Not the crowned winner. Only the winner from reservation can claim during the claim window."
5250
5046
  },
5251
5047
  {
5252
- "code": 6072,
5048
+ "code": 6071,
5253
5049
  "name": "ClaimWindowExpired",
5254
5050
  "msg": "Claim window has expired. Fleet is now available for anyone via rental_accept."
5255
5051
  },
5256
5052
  {
5257
- "code": 6073,
5053
+ "code": 6072,
5258
5054
  "name": "QueueFull",
5259
5055
  "msg": "Queue is full. Both rental slots are occupied. Wait for current rental to close."
5260
5056
  },
5261
5057
  {
5262
- "code": 6074,
5058
+ "code": 6073,
5263
5059
  "name": "AlreadyScheduled",
5264
5060
  "msg": "Thread already scheduled for this rental. Cannot schedule again."
5265
5061
  },
5266
5062
  {
5267
- "code": 6075,
5063
+ "code": 6074,
5268
5064
  "name": "NoActiveRental",
5269
5065
  "msg": "No active rental exists. Use rental_accept instead of rental_claim."
5270
5066
  },
5271
5067
  {
5272
- "code": 6076,
5068
+ "code": 6075,
5273
5069
  "name": "ThreadNotScheduled",
5274
5070
  "msg": "Thread not scheduled. Call rental_schedule first or use manual payment mode."
5275
5071
  },
5276
5072
  {
5277
- "code": 6077,
5073
+ "code": 6076,
5278
5074
  "name": "InvalidRentalState",
5279
5075
  "msg": "Invalid rental state. The provided rental is not tracked by this contract."
5280
5076
  },
5077
+ {
5078
+ "code": 6077,
5079
+ "name": "InvalidRentalSlot",
5080
+ "msg": "Invalid rental slot. Passed slot does not match expected free slot."
5081
+ },
5281
5082
  {
5282
5083
  "code": 6078,
5283
5084
  "name": "ScheduleRequired",
@@ -5297,6 +5098,16 @@
5297
5098
  "code": 6081,
5298
5099
  "name": "InvalidVault",
5299
5100
  "msg": "Invalid vault address. Does not match config.slyvault."
5101
+ },
5102
+ {
5103
+ "code": 6082,
5104
+ "name": "InsufficientAtlasForRefund",
5105
+ "msg": "Insufficient ATLAS in contract to refund reservation. Owner must fund contract first."
5106
+ },
5107
+ {
5108
+ "code": 6083,
5109
+ "name": "ContractPendingClose",
5110
+ "msg": "Contract is pending close. No new rentals or reservations allowed."
5300
5111
  }
5301
5112
  ],
5302
5113
  "types": [
@@ -5324,24 +5135,6 @@
5324
5135
  ]
5325
5136
  }
5326
5137
  },
5327
- {
5328
- "name": "BorrowerDiscountSet",
5329
- "type": {
5330
- "kind": "struct",
5331
- "fields": [
5332
- {
5333
- "name": "borrower_state",
5334
- "type": "pubkey"
5335
- },
5336
- {
5337
- "name": "discount_bps",
5338
- "type": {
5339
- "option": "u16"
5340
- }
5341
- }
5342
- ]
5343
- }
5344
- },
5345
5138
  {
5346
5139
  "name": "BorrowerInitialized",
5347
5140
  "type": {
@@ -5397,24 +5190,6 @@
5397
5190
  "option": "pubkey"
5398
5191
  }
5399
5192
  },
5400
- {
5401
- "name": "referrer_state",
5402
- "docs": [
5403
- "ReferrerState PDA address (if borrower has chosen a referrer)"
5404
- ],
5405
- "type": {
5406
- "option": "pubkey"
5407
- }
5408
- },
5409
- {
5410
- "name": "discount_bps",
5411
- "docs": [
5412
- "Discount rate applied to this borrower's fees (set by admin only)"
5413
- ],
5414
- "type": {
5415
- "option": "u16"
5416
- }
5417
- },
5418
5193
  {
5419
5194
  "name": "active_rentals",
5420
5195
  "docs": [
@@ -5700,13 +5475,6 @@
5700
5475
  ],
5701
5476
  "type": "u64"
5702
5477
  },
5703
- {
5704
- "name": "max_discount_bps",
5705
- "docs": [
5706
- "Maximum discount rate for borrowers (applied globally)"
5707
- ],
5708
- "type": "u16"
5709
- },
5710
5478
  {
5711
5479
  "name": "atlas_per_point",
5712
5480
  "docs": [
@@ -5920,15 +5688,6 @@
5920
5688
  "option": "u64"
5921
5689
  }
5922
5690
  },
5923
- {
5924
- "name": "max_discount_bps",
5925
- "docs": [
5926
- "Maximum discount rate for Restricted referrers (global)"
5927
- ],
5928
- "type": {
5929
- "option": "u16"
5930
- }
5931
- },
5932
5691
  {
5933
5692
  "name": "atlas_per_point",
5934
5693
  "docs": [
@@ -6007,6 +5766,26 @@
6007
5766
  ]
6008
5767
  }
6009
5768
  },
5769
+ {
5770
+ "name": "ContractPendingClose",
5771
+ "type": {
5772
+ "kind": "struct",
5773
+ "fields": [
5774
+ {
5775
+ "name": "contract",
5776
+ "type": "pubkey"
5777
+ },
5778
+ {
5779
+ "name": "fleet",
5780
+ "type": "pubkey"
5781
+ },
5782
+ {
5783
+ "name": "owner",
5784
+ "type": "pubkey"
5785
+ }
5786
+ ]
5787
+ }
5788
+ },
6010
5789
  {
6011
5790
  "name": "ContractState",
6012
5791
  "docs": [
@@ -6035,7 +5814,7 @@
6035
5814
  {
6036
5815
  "name": "to_close",
6037
5816
  "docs": [
6038
- "Whether contract is scheduled for closure"
5817
+ "Whether contract is flagged for closure (owner wants to close but rental active)"
6039
5818
  ],
6040
5819
  "type": "bool"
6041
5820
  },
@@ -6089,9 +5868,9 @@
6089
5868
  "type": "pubkey"
6090
5869
  },
6091
5870
  {
6092
- "name": "contract_token_account",
5871
+ "name": "owner_state",
6093
5872
  "docs": [
6094
- "Contract's token account for all rental payments"
5873
+ "OwnerState PDA for this owner (cached for hot-path lookups)"
6095
5874
  ],
6096
5875
  "type": "pubkey"
6097
5876
  },
@@ -6102,6 +5881,13 @@
6102
5881
  ],
6103
5882
  "type": "pubkey"
6104
5883
  },
5884
+ {
5885
+ "name": "total_earned",
5886
+ "docs": [
5887
+ "Per-contract ATLAS earned (consolidated to OwnerState on close)"
5888
+ ],
5889
+ "type": "u64"
5890
+ },
6105
5891
  {
6106
5892
  "name": "reservation_holder",
6107
5893
  "docs": [
@@ -6319,6 +6105,51 @@
6319
6105
  ]
6320
6106
  }
6321
6107
  },
6108
+ {
6109
+ "name": "DiscountAuthorization",
6110
+ "docs": [
6111
+ "Discount authorization signed by a member or affiliate",
6112
+ "Discount recipient is always the depositor (derived from context)"
6113
+ ],
6114
+ "type": {
6115
+ "kind": "struct",
6116
+ "fields": [
6117
+ {
6118
+ "name": "member_nonce",
6119
+ "docs": [
6120
+ "Member or Affiliate nonce (signer)"
6121
+ ],
6122
+ "type": "u32"
6123
+ },
6124
+ {
6125
+ "name": "discount_bps",
6126
+ "docs": [
6127
+ "Discount percentage in basis points (10000 = 100% of signer's allocation)"
6128
+ ],
6129
+ "type": "u16"
6130
+ },
6131
+ {
6132
+ "name": "expiry_slot",
6133
+ "docs": [
6134
+ "Slot after which this authorization expires"
6135
+ ],
6136
+ "type": "u64"
6137
+ },
6138
+ {
6139
+ "name": "signature",
6140
+ "docs": [
6141
+ "Ed25519 signature of the authorization message"
6142
+ ],
6143
+ "type": {
6144
+ "array": [
6145
+ "u8",
6146
+ 64
6147
+ ]
6148
+ }
6149
+ }
6150
+ ]
6151
+ }
6152
+ },
6322
6153
  {
6323
6154
  "name": "FieldUpdate",
6324
6155
  "docs": [
@@ -6550,88 +6381,113 @@
6550
6381
  }
6551
6382
  },
6552
6383
  {
6553
- "name": "PaymentFrequency",
6384
+ "name": "OwnerState",
6554
6385
  "docs": [
6555
- "Payment frequencies for rental payments."
6386
+ "Owner state tracking lifetime stats across all contracts.",
6387
+ "",
6388
+ "PDA: [OWNER_STATE_SEED, owner.key()]",
6389
+ "ATA: standard Associated Token Account with OwnerState PDA as authority, ATLAS mint"
6556
6390
  ],
6557
6391
  "type": {
6558
- "kind": "enum",
6559
- "variants": [
6392
+ "kind": "struct",
6393
+ "fields": [
6560
6394
  {
6561
- "name": "Hourly"
6395
+ "name": "version",
6396
+ "docs": [
6397
+ "Account version for future migrations"
6398
+ ],
6399
+ "type": "u32"
6562
6400
  },
6563
6401
  {
6564
- "name": "Daily"
6402
+ "name": "bump",
6403
+ "docs": [
6404
+ "PDA bump seed"
6405
+ ],
6406
+ "type": "u8"
6565
6407
  },
6566
6408
  {
6567
- "name": "DailyOld"
6409
+ "name": "owner",
6410
+ "docs": [
6411
+ "Immutable owner wallet (in PDA seeds)"
6412
+ ],
6413
+ "type": "pubkey"
6568
6414
  },
6569
6415
  {
6570
- "name": "Weekly"
6416
+ "name": "authority",
6417
+ "docs": [
6418
+ "Updatable authority — who can claim/update (defaults to owner)"
6419
+ ],
6420
+ "type": "pubkey"
6571
6421
  },
6572
6422
  {
6573
- "name": "Monthly"
6423
+ "name": "total_atlas_earned",
6424
+ "docs": [
6425
+ "Lifetime ATLAS earned from all rentals"
6426
+ ],
6427
+ "type": "u64"
6574
6428
  },
6575
6429
  {
6576
- "name": "Decasecond"
6430
+ "name": "total_rentals_completed",
6431
+ "docs": [
6432
+ "Lifetime rental completions"
6433
+ ],
6434
+ "type": "u32"
6577
6435
  },
6578
6436
  {
6579
- "name": "Minute"
6437
+ "name": "active_contracts",
6438
+ "docs": [
6439
+ "Current active contract count"
6440
+ ],
6441
+ "type": "u16"
6580
6442
  },
6581
6443
  {
6582
- "name": "Custom"
6444
+ "name": "created_at",
6445
+ "docs": [
6446
+ "Timestamp when owner state was created"
6447
+ ],
6448
+ "type": "i64"
6449
+ },
6450
+ {
6451
+ "name": "updated_at",
6452
+ "docs": [
6453
+ "Timestamp when owner state was last updated"
6454
+ ],
6455
+ "type": "i64"
6583
6456
  }
6584
6457
  ]
6585
6458
  }
6586
6459
  },
6587
6460
  {
6588
- "name": "RebateAuthorization",
6461
+ "name": "PaymentFrequency",
6589
6462
  "docs": [
6590
- "Rebate authorization signed by a member or share",
6591
- "Rebate recipient is always the depositor (derived from context)"
6463
+ "Payment frequencies for rental payments."
6592
6464
  ],
6593
6465
  "type": {
6594
- "kind": "struct",
6595
- "fields": [
6466
+ "kind": "enum",
6467
+ "variants": [
6596
6468
  {
6597
- "name": "vault",
6598
- "docs": [
6599
- "Vault this rebate is for"
6600
- ],
6601
- "type": "pubkey"
6469
+ "name": "Hourly"
6602
6470
  },
6603
6471
  {
6604
- "name": "member_nonce",
6605
- "docs": [
6606
- "Member or Share nonce (signer)"
6607
- ],
6608
- "type": "u32"
6472
+ "name": "Daily"
6609
6473
  },
6610
6474
  {
6611
- "name": "rebate_bps",
6612
- "docs": [
6613
- "Rebate percentage in basis points (10000 = 100% of signer's allocation)"
6614
- ],
6615
- "type": "u16"
6475
+ "name": "DailyOld"
6616
6476
  },
6617
6477
  {
6618
- "name": "expiry_slot",
6619
- "docs": [
6620
- "Slot after which this authorization expires"
6621
- ],
6622
- "type": "u64"
6478
+ "name": "Weekly"
6623
6479
  },
6624
6480
  {
6625
- "name": "signature",
6626
- "docs": [
6627
- "Ed25519 signature of the authorization message"
6628
- ],
6629
- "type": {
6630
- "array": [
6631
- "u8",
6632
- 64
6633
- ]
6634
- }
6481
+ "name": "Monthly"
6482
+ },
6483
+ {
6484
+ "name": "Decasecond"
6485
+ },
6486
+ {
6487
+ "name": "Minute"
6488
+ },
6489
+ {
6490
+ "name": "Custom"
6635
6491
  }
6636
6492
  ]
6637
6493
  }
@@ -6762,7 +6618,7 @@
6762
6618
  "type": "u64"
6763
6619
  },
6764
6620
  {
6765
- "name": "thread_slot",
6621
+ "name": "rental_slot",
6766
6622
  "type": "u8"
6767
6623
  }
6768
6624
  ]
@@ -6834,7 +6690,7 @@
6834
6690
  "type": "pubkey"
6835
6691
  },
6836
6692
  {
6837
- "name": "thread_slot",
6693
+ "name": "rental_slot",
6838
6694
  "type": "u8"
6839
6695
  },
6840
6696
  {
@@ -6969,7 +6825,7 @@
6969
6825
  }
6970
6826
  },
6971
6827
  {
6972
- "name": "thread_slot",
6828
+ "name": "rental_slot",
6973
6829
  "docs": [
6974
6830
  "Thread slot assignment (0 or 1), determines thread PDA"
6975
6831
  ],