@wuwei-labs/srsly 4.3.1 → 6.0.0

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 (815) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/api.json +50992 -0
  4. package/dist/cjs/accounts/borrower.js +4 -2
  5. package/dist/cjs/accounts/borrower.js.map +1 -1
  6. package/dist/cjs/accounts/config.js +4 -2
  7. package/dist/cjs/accounts/config.js.map +1 -1
  8. package/dist/cjs/accounts/contract.js +4 -2
  9. package/dist/cjs/accounts/contract.js.map +1 -1
  10. package/dist/cjs/accounts/fleet.js.map +1 -1
  11. package/dist/cjs/accounts/member.js.map +1 -1
  12. package/dist/cjs/accounts/rental.js +4 -2
  13. package/dist/cjs/accounts/rental.js.map +1 -1
  14. package/dist/cjs/accounts/thread.js +7 -2
  15. package/dist/cjs/accounts/thread.js.map +1 -1
  16. package/dist/cjs/audit/audit.js +398 -0
  17. package/dist/cjs/audit/audit.js.map +1 -0
  18. package/dist/cjs/audit/events.js +273 -0
  19. package/dist/cjs/audit/events.js.map +1 -0
  20. package/dist/cjs/audit/index.js +8 -0
  21. package/dist/cjs/audit/index.js.map +1 -0
  22. package/dist/cjs/audit/types.js +3 -0
  23. package/dist/cjs/audit/types.js.map +1 -0
  24. package/dist/cjs/cost/estimate.js +4 -9
  25. package/dist/cjs/cost/estimate.js.map +1 -1
  26. package/dist/cjs/cost/estimate.test.js +1 -1
  27. package/dist/cjs/cost/estimate.test.js.map +1 -1
  28. package/dist/cjs/generated/codama/accounts/borrowerState.js +23 -25
  29. package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
  30. package/dist/cjs/generated/codama/accounts/configState.js +53 -55
  31. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  32. package/dist/cjs/generated/codama/accounts/contractState.js +57 -59
  33. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  34. package/dist/cjs/generated/codama/accounts/rentalState.js +47 -49
  35. package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
  36. package/dist/cjs/generated/codama/errors/srsly.js +3 -3
  37. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  38. package/dist/cjs/generated/codama/instructions/acceptRental.js +33 -52
  39. package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
  40. package/dist/cjs/generated/codama/instructions/cancelRental.js +24 -34
  41. package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
  42. package/dist/cjs/generated/codama/instructions/claimBorrower.js +20 -30
  43. package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
  44. package/dist/cjs/generated/codama/instructions/claimContract.js +16 -23
  45. package/dist/cjs/generated/codama/instructions/claimContract.js.map +1 -1
  46. package/dist/cjs/generated/codama/instructions/closeBorrower.js +21 -35
  47. package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +1 -1
  48. package/dist/cjs/generated/codama/instructions/closeContract.js +21 -38
  49. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  50. package/dist/cjs/generated/codama/instructions/closeContractThread.js +12 -15
  51. package/dist/cjs/generated/codama/instructions/closeContractThread.js.map +1 -1
  52. package/dist/cjs/generated/codama/instructions/closeRental.js +20 -31
  53. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  54. package/dist/cjs/generated/codama/instructions/createBorrower.js +17 -26
  55. package/dist/cjs/generated/codama/instructions/createBorrower.js.map +1 -1
  56. package/dist/cjs/generated/codama/instructions/createConfig.js +22 -26
  57. package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -1
  58. package/dist/cjs/generated/codama/instructions/createContract.js +35 -48
  59. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  60. package/dist/cjs/generated/codama/instructions/createContractThread.js +27 -35
  61. package/dist/cjs/generated/codama/instructions/createContractThread.js.map +1 -1
  62. package/dist/cjs/generated/codama/instructions/deleteBorrower.js +7 -13
  63. package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -1
  64. package/dist/cjs/generated/codama/instructions/deleteConfig.js +17 -23
  65. package/dist/cjs/generated/codama/instructions/deleteConfig.js.map +1 -1
  66. package/dist/cjs/generated/codama/instructions/deleteContract.js +7 -13
  67. package/dist/cjs/generated/codama/instructions/deleteContract.js.map +1 -1
  68. package/dist/cjs/generated/codama/instructions/deleteContractThread.js +13 -18
  69. package/dist/cjs/generated/codama/instructions/deleteContractThread.js.map +1 -1
  70. package/dist/cjs/generated/codama/instructions/deleteRental.js +7 -13
  71. package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
  72. package/dist/cjs/generated/codama/instructions/invalidateRental.js +7 -13
  73. package/dist/cjs/generated/codama/instructions/invalidateRental.js.map +1 -1
  74. package/dist/cjs/generated/codama/instructions/processContract.js +14 -25
  75. package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -1
  76. package/dist/cjs/generated/codama/instructions/releaseRental.js +8 -16
  77. package/dist/cjs/generated/codama/instructions/releaseRental.js.map +1 -1
  78. package/dist/cjs/generated/codama/instructions/reserveRental.js +29 -42
  79. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  80. package/dist/cjs/generated/codama/instructions/setDelegate.js +9 -14
  81. package/dist/cjs/generated/codama/instructions/setDelegate.js.map +1 -1
  82. package/dist/cjs/generated/codama/instructions/updateConfig.js +42 -46
  83. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  84. package/dist/cjs/generated/codama/instructions/updateContract.js +22 -26
  85. package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
  86. package/dist/cjs/generated/codama/instructions/updateContractThread.js +16 -25
  87. package/dist/cjs/generated/codama/instructions/updateContractThread.js.map +1 -1
  88. package/dist/cjs/generated/codama/programs/srsly.js +5 -5
  89. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  90. package/dist/cjs/generated/codama/shared/index.js +9 -16
  91. package/dist/cjs/generated/codama/shared/index.js.map +1 -1
  92. package/dist/cjs/generated/codama/types/cargoStats.js +18 -18
  93. package/dist/cjs/generated/codama/types/cargoStats.js.map +1 -1
  94. package/dist/cjs/generated/codama/types/combatStats.js +24 -24
  95. package/dist/cjs/generated/codama/types/combatStats.js.map +1 -1
  96. package/dist/cjs/generated/codama/types/feesPaid.js +33 -0
  97. package/dist/cjs/generated/codama/types/feesPaid.js.map +1 -0
  98. package/dist/cjs/generated/codama/types/fleet.js +48 -48
  99. package/dist/cjs/generated/codama/types/index.js +3 -17
  100. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  101. package/dist/cjs/generated/codama/types/miscStats.js +22 -22
  102. package/dist/cjs/generated/codama/types/movementStats.js +14 -14
  103. package/dist/cjs/generated/codama/types/movementStats.js.map +1 -1
  104. package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js +2 -2
  105. package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js.map +1 -1
  106. package/dist/cjs/generated/codama/types/ownerPaid.js +31 -0
  107. package/dist/cjs/generated/codama/types/ownerPaid.js.map +1 -0
  108. package/dist/cjs/generated/codama/types/rentalAccepted.js +18 -10
  109. package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -1
  110. package/dist/cjs/generated/codama/types/rentalCancelled.js +14 -10
  111. package/dist/cjs/generated/codama/types/rentalCancelled.js.map +1 -1
  112. package/dist/cjs/generated/codama/types/rentalClosed.js +12 -10
  113. package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -1
  114. package/dist/cjs/generated/codama/types/rentalSettled.js +35 -0
  115. package/dist/cjs/generated/codama/types/rentalSettled.js.map +1 -0
  116. package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -1
  117. package/dist/cjs/generated/codama/types/schedule.js +15 -17
  118. package/dist/cjs/generated/codama/types/schedule.js.map +1 -1
  119. package/dist/cjs/generated/codama/types/shipCounts.js +20 -20
  120. package/dist/cjs/generated/codama/types/shipCounts.js.map +1 -1
  121. package/dist/cjs/generated/codama/types/shipStats.js +8 -8
  122. package/dist/cjs/generated/codama/types/signal.js +19 -21
  123. package/dist/cjs/generated/codama/types/signal.js.map +1 -1
  124. package/dist/cjs/generated/codama/types/thread.js +36 -36
  125. package/dist/cjs/generated/codama/types/trigger.js +37 -39
  126. package/dist/cjs/generated/codama/types/trigger.js.map +1 -1
  127. package/dist/cjs/idl/srsly.json +4747 -0
  128. package/dist/cjs/instructions/acceptRental.js +20 -14
  129. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  130. package/dist/cjs/instructions/approveAffiliate.js.map +1 -1
  131. package/dist/cjs/instructions/cancelRental.js +3 -11
  132. package/dist/cjs/instructions/cancelRental.js.map +1 -1
  133. package/dist/cjs/instructions/claimBorrower.js +12 -16
  134. package/dist/cjs/instructions/claimBorrower.js.map +1 -1
  135. package/dist/cjs/instructions/claimContract.js +3 -5
  136. package/dist/cjs/instructions/claimContract.js.map +1 -1
  137. package/dist/cjs/instructions/closeBorrower.js +11 -18
  138. package/dist/cjs/instructions/closeBorrower.js.map +1 -1
  139. package/dist/cjs/instructions/closeContract.js +4 -14
  140. package/dist/cjs/instructions/closeContract.js.map +1 -1
  141. package/dist/cjs/instructions/closeContractThread.js +3 -6
  142. package/dist/cjs/instructions/closeContractThread.js.map +1 -1
  143. package/dist/cjs/instructions/closeRental.js +5 -12
  144. package/dist/cjs/instructions/closeRental.js.map +1 -1
  145. package/dist/cjs/instructions/createAffiliate.js +2 -7
  146. package/dist/cjs/instructions/createAffiliate.js.map +1 -1
  147. package/dist/cjs/instructions/createBorrower.js +3 -5
  148. package/dist/cjs/instructions/createBorrower.js.map +1 -1
  149. package/dist/cjs/instructions/createConfig.js +3 -5
  150. package/dist/cjs/instructions/createConfig.js.map +1 -1
  151. package/dist/cjs/instructions/createContract.js +12 -9
  152. package/dist/cjs/instructions/createContract.js.map +1 -1
  153. package/dist/cjs/instructions/createContractThread.js +6 -8
  154. package/dist/cjs/instructions/createContractThread.js.map +1 -1
  155. package/dist/cjs/instructions/deleteBorrower.js +3 -6
  156. package/dist/cjs/instructions/deleteBorrower.js.map +1 -1
  157. package/dist/cjs/instructions/deleteConfig.js +5 -18
  158. package/dist/cjs/instructions/deleteConfig.js.map +1 -1
  159. package/dist/cjs/instructions/deleteContract.js +4 -7
  160. package/dist/cjs/instructions/deleteContract.js.map +1 -1
  161. package/dist/cjs/instructions/deleteContractThread.js +4 -7
  162. package/dist/cjs/instructions/deleteContractThread.js.map +1 -1
  163. package/dist/cjs/instructions/deleteRental.js +5 -7
  164. package/dist/cjs/instructions/deleteRental.js.map +1 -1
  165. package/dist/cjs/instructions/invalidateRental.js +3 -20
  166. package/dist/cjs/instructions/invalidateRental.js.map +1 -1
  167. package/dist/cjs/instructions/releaseRental.js +3 -18
  168. package/dist/cjs/instructions/releaseRental.js.map +1 -1
  169. package/dist/cjs/instructions/removeAffiliate.js.map +1 -1
  170. package/dist/cjs/instructions/reserveRental.js +9 -11
  171. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  172. package/dist/cjs/instructions/setDelegate.js +3 -8
  173. package/dist/cjs/instructions/setDelegate.js.map +1 -1
  174. package/dist/cjs/instructions/updateAffiliate.js +2 -4
  175. package/dist/cjs/instructions/updateAffiliate.js.map +1 -1
  176. package/dist/cjs/instructions/updateConfig.js +5 -11
  177. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  178. package/dist/cjs/instructions/updateContract.js +4 -8
  179. package/dist/cjs/instructions/updateContract.js.map +1 -1
  180. package/dist/cjs/instructions/updateContractThread.js +4 -8
  181. package/dist/cjs/instructions/updateContractThread.js.map +1 -1
  182. package/dist/cjs/kit/index.js +2 -1
  183. package/dist/cjs/kit/index.js.map +1 -1
  184. package/dist/cjs/legacy/index.js.map +1 -1
  185. package/dist/cjs/package.json +19 -7
  186. package/dist/cjs/params/amount.js +44 -43
  187. package/dist/cjs/params/amount.js.map +1 -1
  188. package/dist/cjs/params/schedule.js +9 -9
  189. package/dist/cjs/params/schedule.js.map +1 -1
  190. package/dist/cjs/params/sol.js +43 -38
  191. package/dist/cjs/params/sol.js.map +1 -1
  192. package/dist/cjs/pda/constants.js.map +1 -1
  193. package/dist/cjs/pda/lookupTable.js +1 -3
  194. package/dist/cjs/pda/lookupTable.js.map +1 -1
  195. package/dist/cjs/pda/sage.js +5 -21
  196. package/dist/cjs/pda/sage.js.map +1 -1
  197. package/dist/cjs/pda/srsly.js +5 -15
  198. package/dist/cjs/pda/srsly.js.map +1 -1
  199. package/dist/cjs/pda/thread.js.map +1 -1
  200. package/dist/cjs/utils/addresses.js +6 -6
  201. package/dist/cjs/utils/addresses.js.map +1 -1
  202. package/dist/cjs/utils/bidMath.js +3 -7
  203. package/dist/cjs/utils/bidMath.js.map +1 -1
  204. package/dist/cjs/utils/config.js +10 -10
  205. package/dist/cjs/utils/config.js.map +1 -1
  206. package/dist/cjs/utils/discountAuth.js +3 -7
  207. package/dist/cjs/utils/discountAuth.js.map +1 -1
  208. package/dist/cjs/utils/index.js.map +1 -1
  209. package/dist/cjs/utils/instructionResult.js +2 -2
  210. package/dist/cjs/utils/instructionResult.js.map +1 -1
  211. package/dist/cjs/utils/instructions.js +1 -1
  212. package/dist/cjs/utils/lookupTable.js +2 -4
  213. package/dist/cjs/utils/lookupTable.js.map +1 -1
  214. package/dist/cjs/utils/rpc.js +1 -1
  215. package/dist/cjs/utils/rpc.js.map +1 -1
  216. package/dist/cjs/utils/signer.js +3 -1
  217. package/dist/cjs/utils/signer.js.map +1 -1
  218. package/dist/cjs/utils/web3js.js +4 -4
  219. package/dist/cjs/utils/web3js.js.map +1 -1
  220. package/dist/cjs/version.js +1 -1
  221. package/dist/esm/accounts/borrower.js +5 -3
  222. package/dist/esm/accounts/borrower.js.map +1 -1
  223. package/dist/esm/accounts/config.js +5 -3
  224. package/dist/esm/accounts/config.js.map +1 -1
  225. package/dist/esm/accounts/contract.js +5 -3
  226. package/dist/esm/accounts/contract.js.map +1 -1
  227. package/dist/esm/accounts/fleet.js.map +1 -1
  228. package/dist/esm/accounts/member.js +3 -3
  229. package/dist/esm/accounts/member.js.map +1 -1
  230. package/dist/esm/accounts/rental.js +5 -3
  231. package/dist/esm/accounts/rental.js.map +1 -1
  232. package/dist/esm/accounts/thread.js +7 -2
  233. package/dist/esm/accounts/thread.js.map +1 -1
  234. package/dist/esm/audit/audit.js +395 -0
  235. package/dist/esm/audit/audit.js.map +1 -0
  236. package/dist/esm/audit/events.js +267 -0
  237. package/dist/esm/audit/events.js.map +1 -0
  238. package/dist/esm/audit/index.js +3 -0
  239. package/dist/esm/audit/index.js.map +1 -0
  240. package/dist/esm/audit/types.js +2 -0
  241. package/dist/esm/audit/types.js.map +1 -0
  242. package/dist/esm/cost/estimate.js +5 -10
  243. package/dist/esm/cost/estimate.js.map +1 -1
  244. package/dist/esm/cost/estimate.test.js +2 -2
  245. package/dist/esm/cost/estimate.test.js.map +1 -1
  246. package/dist/esm/generated/codama/accounts/borrowerState.js +24 -26
  247. package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
  248. package/dist/esm/generated/codama/accounts/configState.js +54 -56
  249. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  250. package/dist/esm/generated/codama/accounts/contractState.js +59 -61
  251. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  252. package/dist/esm/generated/codama/accounts/index.js +4 -4
  253. package/dist/esm/generated/codama/accounts/rentalState.js +49 -51
  254. package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
  255. package/dist/esm/generated/codama/errors/index.js +1 -1
  256. package/dist/esm/generated/codama/errors/srsly.js +5 -5
  257. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  258. package/dist/esm/generated/codama/index.js +5 -5
  259. package/dist/esm/generated/codama/instructions/acceptRental.js +36 -55
  260. package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
  261. package/dist/esm/generated/codama/instructions/cancelRental.js +27 -37
  262. package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
  263. package/dist/esm/generated/codama/instructions/claimBorrower.js +23 -33
  264. package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
  265. package/dist/esm/generated/codama/instructions/claimContract.js +19 -26
  266. package/dist/esm/generated/codama/instructions/claimContract.js.map +1 -1
  267. package/dist/esm/generated/codama/instructions/closeBorrower.js +24 -38
  268. package/dist/esm/generated/codama/instructions/closeBorrower.js.map +1 -1
  269. package/dist/esm/generated/codama/instructions/closeContract.js +24 -41
  270. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  271. package/dist/esm/generated/codama/instructions/closeContractThread.js +15 -18
  272. package/dist/esm/generated/codama/instructions/closeContractThread.js.map +1 -1
  273. package/dist/esm/generated/codama/instructions/closeRental.js +23 -34
  274. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  275. package/dist/esm/generated/codama/instructions/createBorrower.js +20 -29
  276. package/dist/esm/generated/codama/instructions/createBorrower.js.map +1 -1
  277. package/dist/esm/generated/codama/instructions/createConfig.js +25 -29
  278. package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -1
  279. package/dist/esm/generated/codama/instructions/createContract.js +38 -51
  280. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  281. package/dist/esm/generated/codama/instructions/createContractThread.js +30 -38
  282. package/dist/esm/generated/codama/instructions/createContractThread.js.map +1 -1
  283. package/dist/esm/generated/codama/instructions/deleteBorrower.js +10 -16
  284. package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -1
  285. package/dist/esm/generated/codama/instructions/deleteConfig.js +20 -26
  286. package/dist/esm/generated/codama/instructions/deleteConfig.js.map +1 -1
  287. package/dist/esm/generated/codama/instructions/deleteContract.js +10 -16
  288. package/dist/esm/generated/codama/instructions/deleteContract.js.map +1 -1
  289. package/dist/esm/generated/codama/instructions/deleteContractThread.js +16 -21
  290. package/dist/esm/generated/codama/instructions/deleteContractThread.js.map +1 -1
  291. package/dist/esm/generated/codama/instructions/deleteRental.js +10 -16
  292. package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
  293. package/dist/esm/generated/codama/instructions/index.js +25 -25
  294. package/dist/esm/generated/codama/instructions/invalidateRental.js +10 -16
  295. package/dist/esm/generated/codama/instructions/invalidateRental.js.map +1 -1
  296. package/dist/esm/generated/codama/instructions/processContract.js +17 -28
  297. package/dist/esm/generated/codama/instructions/processContract.js.map +1 -1
  298. package/dist/esm/generated/codama/instructions/releaseRental.js +11 -19
  299. package/dist/esm/generated/codama/instructions/releaseRental.js.map +1 -1
  300. package/dist/esm/generated/codama/instructions/reserveRental.js +32 -45
  301. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  302. package/dist/esm/generated/codama/instructions/setDelegate.js +12 -17
  303. package/dist/esm/generated/codama/instructions/setDelegate.js.map +1 -1
  304. package/dist/esm/generated/codama/instructions/updateConfig.js +45 -49
  305. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  306. package/dist/esm/generated/codama/instructions/updateContract.js +25 -29
  307. package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
  308. package/dist/esm/generated/codama/instructions/updateContractThread.js +19 -28
  309. package/dist/esm/generated/codama/instructions/updateContractThread.js.map +1 -1
  310. package/dist/esm/generated/codama/programs/index.js +1 -1
  311. package/dist/esm/generated/codama/programs/srsly.js +6 -6
  312. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  313. package/dist/esm/generated/codama/shared/index.js +10 -17
  314. package/dist/esm/generated/codama/shared/index.js.map +1 -1
  315. package/dist/esm/generated/codama/types/cargoStats.js +19 -19
  316. package/dist/esm/generated/codama/types/cargoStats.js.map +1 -1
  317. package/dist/esm/generated/codama/types/combatStats.js +25 -25
  318. package/dist/esm/generated/codama/types/combatStats.js.map +1 -1
  319. package/dist/esm/generated/codama/types/feesPaid.js +28 -0
  320. package/dist/esm/generated/codama/types/feesPaid.js.map +1 -0
  321. package/dist/esm/generated/codama/types/fleet.js +50 -50
  322. package/dist/esm/generated/codama/types/index.js +19 -33
  323. package/dist/esm/generated/codama/types/index.js.map +1 -1
  324. package/dist/esm/generated/codama/types/miscStats.js +23 -23
  325. package/dist/esm/generated/codama/types/movementStats.js +15 -15
  326. package/dist/esm/generated/codama/types/movementStats.js.map +1 -1
  327. package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js +3 -3
  328. package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js.map +1 -1
  329. package/dist/esm/generated/codama/types/ownerPaid.js +26 -0
  330. package/dist/esm/generated/codama/types/ownerPaid.js.map +1 -0
  331. package/dist/esm/generated/codama/types/rentalAccepted.js +19 -11
  332. package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -1
  333. package/dist/esm/generated/codama/types/rentalCancelled.js +15 -11
  334. package/dist/esm/generated/codama/types/rentalCancelled.js.map +1 -1
  335. package/dist/esm/generated/codama/types/rentalClosed.js +13 -11
  336. package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -1
  337. package/dist/esm/generated/codama/types/rentalSettled.js +30 -0
  338. package/dist/esm/generated/codama/types/rentalSettled.js.map +1 -0
  339. package/dist/esm/generated/codama/types/rentalStatus.js +1 -1
  340. package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -1
  341. package/dist/esm/generated/codama/types/schedule.js +16 -18
  342. package/dist/esm/generated/codama/types/schedule.js.map +1 -1
  343. package/dist/esm/generated/codama/types/shipCounts.js +21 -21
  344. package/dist/esm/generated/codama/types/shipCounts.js.map +1 -1
  345. package/dist/esm/generated/codama/types/shipStats.js +10 -10
  346. package/dist/esm/generated/codama/types/signal.js +21 -23
  347. package/dist/esm/generated/codama/types/signal.js.map +1 -1
  348. package/dist/esm/generated/codama/types/thread.js +38 -38
  349. package/dist/esm/generated/codama/types/trigger.js +38 -40
  350. package/dist/esm/generated/codama/types/trigger.js.map +1 -1
  351. package/dist/esm/idl/srsly.json +4747 -0
  352. package/dist/esm/instructions/acceptRental.js +21 -15
  353. package/dist/esm/instructions/acceptRental.js.map +1 -1
  354. package/dist/esm/instructions/approveAffiliate.js +1 -1
  355. package/dist/esm/instructions/approveAffiliate.js.map +1 -1
  356. package/dist/esm/instructions/cancelRental.js +3 -11
  357. package/dist/esm/instructions/cancelRental.js.map +1 -1
  358. package/dist/esm/instructions/claimBorrower.js +13 -17
  359. package/dist/esm/instructions/claimBorrower.js.map +1 -1
  360. package/dist/esm/instructions/claimContract.js +3 -5
  361. package/dist/esm/instructions/claimContract.js.map +1 -1
  362. package/dist/esm/instructions/closeBorrower.js +12 -19
  363. package/dist/esm/instructions/closeBorrower.js.map +1 -1
  364. package/dist/esm/instructions/closeContract.js +5 -15
  365. package/dist/esm/instructions/closeContract.js.map +1 -1
  366. package/dist/esm/instructions/closeContractThread.js +3 -6
  367. package/dist/esm/instructions/closeContractThread.js.map +1 -1
  368. package/dist/esm/instructions/closeRental.js +6 -13
  369. package/dist/esm/instructions/closeRental.js.map +1 -1
  370. package/dist/esm/instructions/createAffiliate.js +3 -8
  371. package/dist/esm/instructions/createAffiliate.js.map +1 -1
  372. package/dist/esm/instructions/createBorrower.js +3 -5
  373. package/dist/esm/instructions/createBorrower.js.map +1 -1
  374. package/dist/esm/instructions/createConfig.js +3 -5
  375. package/dist/esm/instructions/createConfig.js.map +1 -1
  376. package/dist/esm/instructions/createContract.js +13 -10
  377. package/dist/esm/instructions/createContract.js.map +1 -1
  378. package/dist/esm/instructions/createContractThread.js +6 -8
  379. package/dist/esm/instructions/createContractThread.js.map +1 -1
  380. package/dist/esm/instructions/deleteBorrower.js +3 -6
  381. package/dist/esm/instructions/deleteBorrower.js.map +1 -1
  382. package/dist/esm/instructions/deleteConfig.js +5 -18
  383. package/dist/esm/instructions/deleteConfig.js.map +1 -1
  384. package/dist/esm/instructions/deleteContract.js +4 -7
  385. package/dist/esm/instructions/deleteContract.js.map +1 -1
  386. package/dist/esm/instructions/deleteContractThread.js +4 -7
  387. package/dist/esm/instructions/deleteContractThread.js.map +1 -1
  388. package/dist/esm/instructions/deleteRental.js +5 -7
  389. package/dist/esm/instructions/deleteRental.js.map +1 -1
  390. package/dist/esm/instructions/invalidateRental.js +3 -20
  391. package/dist/esm/instructions/invalidateRental.js.map +1 -1
  392. package/dist/esm/instructions/releaseRental.js +3 -18
  393. package/dist/esm/instructions/releaseRental.js.map +1 -1
  394. package/dist/esm/instructions/removeAffiliate.js +1 -1
  395. package/dist/esm/instructions/removeAffiliate.js.map +1 -1
  396. package/dist/esm/instructions/reserveRental.js +10 -12
  397. package/dist/esm/instructions/reserveRental.js.map +1 -1
  398. package/dist/esm/instructions/setDelegate.js +3 -8
  399. package/dist/esm/instructions/setDelegate.js.map +1 -1
  400. package/dist/esm/instructions/updateAffiliate.js +3 -5
  401. package/dist/esm/instructions/updateAffiliate.js.map +1 -1
  402. package/dist/esm/instructions/updateConfig.js +6 -12
  403. package/dist/esm/instructions/updateConfig.js.map +1 -1
  404. package/dist/esm/instructions/updateContract.js +4 -8
  405. package/dist/esm/instructions/updateContract.js.map +1 -1
  406. package/dist/esm/instructions/updateContractThread.js +4 -8
  407. package/dist/esm/instructions/updateContractThread.js.map +1 -1
  408. package/dist/esm/kit/index.js +1 -0
  409. package/dist/esm/kit/index.js.map +1 -1
  410. package/dist/esm/legacy/index.js.map +1 -1
  411. package/dist/esm/package.json +19 -7
  412. package/dist/esm/params/amount.js +44 -43
  413. package/dist/esm/params/amount.js.map +1 -1
  414. package/dist/esm/params/schedule.js +9 -9
  415. package/dist/esm/params/schedule.js.map +1 -1
  416. package/dist/esm/params/sol.js +43 -38
  417. package/dist/esm/params/sol.js.map +1 -1
  418. package/dist/esm/pda/constants.js.map +1 -1
  419. package/dist/esm/pda/lookupTable.js +1 -3
  420. package/dist/esm/pda/lookupTable.js.map +1 -1
  421. package/dist/esm/pda/sage.js +5 -21
  422. package/dist/esm/pda/sage.js.map +1 -1
  423. package/dist/esm/pda/srsly.js +5 -15
  424. package/dist/esm/pda/srsly.js.map +1 -1
  425. package/dist/esm/pda/thread.js +1 -1
  426. package/dist/esm/pda/thread.js.map +1 -1
  427. package/dist/esm/utils/addresses.js +6 -6
  428. package/dist/esm/utils/addresses.js.map +1 -1
  429. package/dist/esm/utils/bidMath.js +3 -7
  430. package/dist/esm/utils/bidMath.js.map +1 -1
  431. package/dist/esm/utils/config.js +11 -11
  432. package/dist/esm/utils/config.js.map +1 -1
  433. package/dist/esm/utils/discountAuth.js +3 -7
  434. package/dist/esm/utils/discountAuth.js.map +1 -1
  435. package/dist/esm/utils/index.js +7 -7
  436. package/dist/esm/utils/index.js.map +1 -1
  437. package/dist/esm/utils/instructionResult.js +2 -2
  438. package/dist/esm/utils/instructionResult.js.map +1 -1
  439. package/dist/esm/utils/instructions.js +1 -1
  440. package/dist/esm/utils/lookupTable.js +2 -4
  441. package/dist/esm/utils/lookupTable.js.map +1 -1
  442. package/dist/esm/utils/rpc.js +1 -1
  443. package/dist/esm/utils/rpc.js.map +1 -1
  444. package/dist/esm/utils/signer.js +3 -1
  445. package/dist/esm/utils/signer.js.map +1 -1
  446. package/dist/esm/utils/web3js.js +4 -4
  447. package/dist/esm/utils/web3js.js.map +1 -1
  448. package/dist/esm/version.js +1 -1
  449. package/dist/idl/srsly.json +393 -2959
  450. package/dist/types/accounts/borrower.d.ts.map +1 -1
  451. package/dist/types/accounts/config.d.ts.map +1 -1
  452. package/dist/types/accounts/contract.d.ts.map +1 -1
  453. package/dist/types/accounts/fleet.d.ts.map +1 -1
  454. package/dist/types/accounts/member.d.ts +3 -3
  455. package/dist/types/accounts/member.d.ts.map +1 -1
  456. package/dist/types/accounts/rental.d.ts.map +1 -1
  457. package/dist/types/accounts/thread.d.ts.map +1 -1
  458. package/dist/types/audit/audit.d.ts +10 -0
  459. package/dist/types/audit/audit.d.ts.map +1 -0
  460. package/dist/types/audit/events.d.ts +17 -0
  461. package/dist/types/audit/events.d.ts.map +1 -0
  462. package/dist/types/audit/index.d.ts +4 -0
  463. package/dist/types/audit/index.d.ts.map +1 -0
  464. package/dist/types/audit/types.d.ts +132 -0
  465. package/dist/types/audit/types.d.ts.map +1 -0
  466. package/dist/types/cost/estimate.d.ts +2 -3
  467. package/dist/types/cost/estimate.d.ts.map +1 -1
  468. package/dist/types/generated/codama/accounts/borrowerState.d.ts +1 -1
  469. package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
  470. package/dist/types/generated/codama/accounts/configState.d.ts +1 -1
  471. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  472. package/dist/types/generated/codama/accounts/contractState.d.ts +2 -2
  473. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  474. package/dist/types/generated/codama/accounts/index.d.ts +4 -4
  475. package/dist/types/generated/codama/accounts/rentalState.d.ts +2 -2
  476. package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
  477. package/dist/types/generated/codama/errors/index.d.ts +1 -1
  478. package/dist/types/generated/codama/errors/srsly.d.ts +1 -1
  479. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  480. package/dist/types/generated/codama/index.d.ts +5 -5
  481. package/dist/types/generated/codama/instructions/acceptRental.d.ts +13 -13
  482. package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
  483. package/dist/types/generated/codama/instructions/cancelRental.d.ts +5 -5
  484. package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
  485. package/dist/types/generated/codama/instructions/claimBorrower.d.ts +3 -3
  486. package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
  487. package/dist/types/generated/codama/instructions/claimContract.d.ts +3 -3
  488. package/dist/types/generated/codama/instructions/claimContract.d.ts.map +1 -1
  489. package/dist/types/generated/codama/instructions/closeBorrower.d.ts +17 -21
  490. package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +1 -1
  491. package/dist/types/generated/codama/instructions/closeContract.d.ts +3 -3
  492. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  493. package/dist/types/generated/codama/instructions/closeContractThread.d.ts +3 -3
  494. package/dist/types/generated/codama/instructions/closeContractThread.d.ts.map +1 -1
  495. package/dist/types/generated/codama/instructions/closeRental.d.ts +3 -3
  496. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  497. package/dist/types/generated/codama/instructions/createBorrower.d.ts +3 -3
  498. package/dist/types/generated/codama/instructions/createBorrower.d.ts.map +1 -1
  499. package/dist/types/generated/codama/instructions/createConfig.d.ts +5 -5
  500. package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -1
  501. package/dist/types/generated/codama/instructions/createContract.d.ts +17 -17
  502. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  503. package/dist/types/generated/codama/instructions/createContractThread.d.ts +7 -7
  504. package/dist/types/generated/codama/instructions/createContractThread.d.ts.map +1 -1
  505. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +2 -2
  506. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -1
  507. package/dist/types/generated/codama/instructions/deleteConfig.d.ts +3 -3
  508. package/dist/types/generated/codama/instructions/deleteConfig.d.ts.map +1 -1
  509. package/dist/types/generated/codama/instructions/deleteContract.d.ts +2 -2
  510. package/dist/types/generated/codama/instructions/deleteContract.d.ts.map +1 -1
  511. package/dist/types/generated/codama/instructions/deleteContractThread.d.ts +3 -3
  512. package/dist/types/generated/codama/instructions/deleteContractThread.d.ts.map +1 -1
  513. package/dist/types/generated/codama/instructions/deleteRental.d.ts +2 -2
  514. package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
  515. package/dist/types/generated/codama/instructions/index.d.ts +25 -25
  516. package/dist/types/generated/codama/instructions/invalidateRental.d.ts +2 -2
  517. package/dist/types/generated/codama/instructions/invalidateRental.d.ts.map +1 -1
  518. package/dist/types/generated/codama/instructions/processContract.d.ts +3 -3
  519. package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -1
  520. package/dist/types/generated/codama/instructions/releaseRental.d.ts +2 -2
  521. package/dist/types/generated/codama/instructions/releaseRental.d.ts.map +1 -1
  522. package/dist/types/generated/codama/instructions/reserveRental.d.ts +9 -9
  523. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  524. package/dist/types/generated/codama/instructions/setDelegate.d.ts +3 -3
  525. package/dist/types/generated/codama/instructions/setDelegate.d.ts.map +1 -1
  526. package/dist/types/generated/codama/instructions/updateConfig.d.ts +36 -36
  527. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  528. package/dist/types/generated/codama/instructions/updateContract.d.ts +16 -16
  529. package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
  530. package/dist/types/generated/codama/instructions/updateContractThread.d.ts +7 -7
  531. package/dist/types/generated/codama/instructions/updateContractThread.d.ts.map +1 -1
  532. package/dist/types/generated/codama/programs/index.d.ts +1 -1
  533. package/dist/types/generated/codama/programs/srsly.d.ts +3 -3
  534. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  535. package/dist/types/generated/codama/shared/index.d.ts +2 -2
  536. package/dist/types/generated/codama/shared/index.d.ts.map +1 -1
  537. package/dist/types/generated/codama/types/cargoStats.d.ts +1 -1
  538. package/dist/types/generated/codama/types/cargoStats.d.ts.map +1 -1
  539. package/dist/types/generated/codama/types/combatStats.d.ts +1 -1
  540. package/dist/types/generated/codama/types/combatStats.d.ts.map +1 -1
  541. package/dist/types/generated/codama/types/feesPaid.d.ts +28 -0
  542. package/dist/types/generated/codama/types/feesPaid.d.ts.map +1 -0
  543. package/dist/types/generated/codama/types/fleet.d.ts +2 -2
  544. package/dist/types/generated/codama/types/index.d.ts +19 -33
  545. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  546. package/dist/types/generated/codama/types/miscStats.d.ts +1 -1
  547. package/dist/types/generated/codama/types/movementStats.d.ts +1 -1
  548. package/dist/types/generated/codama/types/movementStats.d.ts.map +1 -1
  549. package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts +1 -1
  550. package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts.map +1 -1
  551. package/dist/types/generated/codama/types/ownerPaid.d.ts +26 -0
  552. package/dist/types/generated/codama/types/ownerPaid.d.ts.map +1 -0
  553. package/dist/types/generated/codama/types/rentalAccepted.d.ts +13 -1
  554. package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -1
  555. package/dist/types/generated/codama/types/rentalCancelled.d.ts +11 -3
  556. package/dist/types/generated/codama/types/rentalCancelled.d.ts.map +1 -1
  557. package/dist/types/generated/codama/types/rentalClosed.d.ts +9 -3
  558. package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -1
  559. package/dist/types/generated/codama/types/rentalSettled.d.ts +30 -0
  560. package/dist/types/generated/codama/types/rentalSettled.d.ts.map +1 -0
  561. package/dist/types/generated/codama/types/rentalStatus.d.ts +1 -1
  562. package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -1
  563. package/dist/types/generated/codama/types/schedule.d.ts +11 -11
  564. package/dist/types/generated/codama/types/schedule.d.ts.map +1 -1
  565. package/dist/types/generated/codama/types/shipCounts.d.ts +1 -1
  566. package/dist/types/generated/codama/types/shipCounts.d.ts.map +1 -1
  567. package/dist/types/generated/codama/types/shipStats.d.ts +2 -2
  568. package/dist/types/generated/codama/types/signal.d.ts +21 -21
  569. package/dist/types/generated/codama/types/signal.d.ts.map +1 -1
  570. package/dist/types/generated/codama/types/thread.d.ts +2 -2
  571. package/dist/types/generated/codama/types/trigger.d.ts +23 -23
  572. package/dist/types/generated/codama/types/trigger.d.ts.map +1 -1
  573. package/dist/types/instructions/acceptRental.d.ts +9 -15
  574. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  575. package/dist/types/instructions/approveAffiliate.d.ts +1 -1
  576. package/dist/types/instructions/approveAffiliate.d.ts.map +1 -1
  577. package/dist/types/instructions/cancelRental.d.ts +3 -11
  578. package/dist/types/instructions/cancelRental.d.ts.map +1 -1
  579. package/dist/types/instructions/claimBorrower.d.ts +6 -13
  580. package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
  581. package/dist/types/instructions/claimContract.d.ts +3 -5
  582. package/dist/types/instructions/claimContract.d.ts.map +1 -1
  583. package/dist/types/instructions/closeBorrower.d.ts +11 -19
  584. package/dist/types/instructions/closeBorrower.d.ts.map +1 -1
  585. package/dist/types/instructions/closeContract.d.ts +4 -14
  586. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  587. package/dist/types/instructions/closeContractThread.d.ts +3 -6
  588. package/dist/types/instructions/closeContractThread.d.ts.map +1 -1
  589. package/dist/types/instructions/closeRental.d.ts +2 -11
  590. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  591. package/dist/types/instructions/createAffiliate.d.ts +3 -8
  592. package/dist/types/instructions/createAffiliate.d.ts.map +1 -1
  593. package/dist/types/instructions/createBorrower.d.ts +3 -5
  594. package/dist/types/instructions/createBorrower.d.ts.map +1 -1
  595. package/dist/types/instructions/createConfig.d.ts +3 -5
  596. package/dist/types/instructions/createConfig.d.ts.map +1 -1
  597. package/dist/types/instructions/createContract.d.ts +28 -12
  598. package/dist/types/instructions/createContract.d.ts.map +1 -1
  599. package/dist/types/instructions/createContractThread.d.ts +14 -9
  600. package/dist/types/instructions/createContractThread.d.ts.map +1 -1
  601. package/dist/types/instructions/deleteBorrower.d.ts +3 -6
  602. package/dist/types/instructions/deleteBorrower.d.ts.map +1 -1
  603. package/dist/types/instructions/deleteConfig.d.ts +4 -15
  604. package/dist/types/instructions/deleteConfig.d.ts.map +1 -1
  605. package/dist/types/instructions/deleteContract.d.ts +3 -6
  606. package/dist/types/instructions/deleteContract.d.ts.map +1 -1
  607. package/dist/types/instructions/deleteContractThread.d.ts +4 -7
  608. package/dist/types/instructions/deleteContractThread.d.ts.map +1 -1
  609. package/dist/types/instructions/deleteRental.d.ts +4 -6
  610. package/dist/types/instructions/deleteRental.d.ts.map +1 -1
  611. package/dist/types/instructions/invalidateRental.d.ts +7 -24
  612. package/dist/types/instructions/invalidateRental.d.ts.map +1 -1
  613. package/dist/types/instructions/releaseRental.d.ts +7 -22
  614. package/dist/types/instructions/releaseRental.d.ts.map +1 -1
  615. package/dist/types/instructions/removeAffiliate.d.ts +1 -1
  616. package/dist/types/instructions/removeAffiliate.d.ts.map +1 -1
  617. package/dist/types/instructions/reserveRental.d.ts +3 -9
  618. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  619. package/dist/types/instructions/setDelegate.d.ts +2 -5
  620. package/dist/types/instructions/setDelegate.d.ts.map +1 -1
  621. package/dist/types/instructions/updateAffiliate.d.ts +3 -5
  622. package/dist/types/instructions/updateAffiliate.d.ts.map +1 -1
  623. package/dist/types/instructions/updateConfig.d.ts +3 -5
  624. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  625. package/dist/types/instructions/updateContract.d.ts +8 -8
  626. package/dist/types/instructions/updateContract.d.ts.map +1 -1
  627. package/dist/types/instructions/updateContractThread.d.ts +12 -7
  628. package/dist/types/instructions/updateContractThread.d.ts.map +1 -1
  629. package/dist/types/kit/index.d.ts +1 -0
  630. package/dist/types/kit/index.d.ts.map +1 -1
  631. package/dist/types/legacy/index.d.ts.map +1 -1
  632. package/dist/types/params/amount.d.ts +13 -8
  633. package/dist/types/params/amount.d.ts.map +1 -1
  634. package/dist/types/params/schedule.d.ts.map +1 -1
  635. package/dist/types/params/sol.d.ts +12 -7
  636. package/dist/types/params/sol.d.ts.map +1 -1
  637. package/dist/types/pda/constants.d.ts.map +1 -1
  638. package/dist/types/pda/lookupTable.d.ts.map +1 -1
  639. package/dist/types/pda/sage.d.ts.map +1 -1
  640. package/dist/types/pda/srsly.d.ts.map +1 -1
  641. package/dist/types/pda/thread.d.ts.map +1 -1
  642. package/dist/types/utils/addresses.d.ts.map +1 -1
  643. package/dist/types/utils/bidMath.d.ts.map +1 -1
  644. package/dist/types/utils/config.d.ts.map +1 -1
  645. package/dist/types/utils/discountAuth.d.ts +3 -7
  646. package/dist/types/utils/discountAuth.d.ts.map +1 -1
  647. package/dist/types/utils/index.d.ts +7 -7
  648. package/dist/types/utils/index.d.ts.map +1 -1
  649. package/dist/types/utils/lookupTable.d.ts.map +1 -1
  650. package/dist/types/utils/rpc.d.ts.map +1 -1
  651. package/dist/types/utils/signer.d.ts.map +1 -1
  652. package/dist/types/version.d.ts +1 -1
  653. package/package.json +27 -14
  654. package/dist/cjs/demos.js +0 -569
  655. package/dist/cjs/demos.js.map +0 -1
  656. package/dist/cjs/generated/codama/accounts/fleet.js +0 -103
  657. package/dist/cjs/generated/codama/accounts/fleet.js.map +0 -1
  658. package/dist/cjs/generated/codama/accounts/thread.js +0 -101
  659. package/dist/cjs/generated/codama/accounts/thread.js.map +0 -1
  660. package/dist/cjs/generated/codama/instructions/activateRental.js +0 -259
  661. package/dist/cjs/generated/codama/instructions/activateRental.js.map +0 -1
  662. package/dist/cjs/generated/codama/instructions/updateBorrower.js +0 -96
  663. package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +0 -1
  664. package/dist/cjs/generated/codama/types/atlasClaimed.js +0 -33
  665. package/dist/cjs/generated/codama/types/atlasClaimed.js.map +0 -1
  666. package/dist/cjs/generated/codama/types/borrowerInitialized.js +0 -29
  667. package/dist/cjs/generated/codama/types/borrowerInitialized.js.map +0 -1
  668. package/dist/cjs/generated/codama/types/contractClosed.js +0 -31
  669. package/dist/cjs/generated/codama/types/contractClosed.js.map +0 -1
  670. package/dist/cjs/generated/codama/types/contractCreated.js +0 -33
  671. package/dist/cjs/generated/codama/types/contractCreated.js.map +0 -1
  672. package/dist/cjs/generated/codama/types/contractDelegateSet.js +0 -31
  673. package/dist/cjs/generated/codama/types/contractDelegateSet.js.map +0 -1
  674. package/dist/cjs/generated/codama/types/contractPendingClose.js +0 -31
  675. package/dist/cjs/generated/codama/types/contractPendingClose.js.map +0 -1
  676. package/dist/cjs/generated/codama/types/contractProcessed.js +0 -33
  677. package/dist/cjs/generated/codama/types/contractProcessed.js.map +0 -1
  678. package/dist/cjs/generated/codama/types/contractThreadClosed.js +0 -29
  679. package/dist/cjs/generated/codama/types/contractThreadClosed.js.map +0 -1
  680. package/dist/cjs/generated/codama/types/contractThreadCreated.js +0 -29
  681. package/dist/cjs/generated/codama/types/contractThreadCreated.js.map +0 -1
  682. package/dist/cjs/generated/codama/types/contractThreadUpdated.js +0 -39
  683. package/dist/cjs/generated/codama/types/contractThreadUpdated.js.map +0 -1
  684. package/dist/cjs/generated/codama/types/contractUpdated.js +0 -34
  685. package/dist/cjs/generated/codama/types/contractUpdated.js.map +0 -1
  686. package/dist/cjs/generated/codama/types/discount.js +0 -45
  687. package/dist/cjs/generated/codama/types/discount.js.map +0 -1
  688. package/dist/cjs/generated/codama/types/discountAuthorization.js +0 -35
  689. package/dist/cjs/generated/codama/types/discountAuthorization.js.map +0 -1
  690. package/dist/cjs/generated/codama/types/fieldUpdate.js +0 -29
  691. package/dist/cjs/generated/codama/types/fieldUpdate.js.map +0 -1
  692. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js +0 -33
  693. package/dist/cjs/generated/codama/types/queuedRentalRefunded.js.map +0 -1
  694. package/dist/cjs/generated/codama/types/rentalActivated.js +0 -33
  695. package/dist/cjs/generated/codama/types/rentalActivated.js.map +0 -1
  696. package/dist/cjs/generated/codama/types/rentalExpired.js +0 -31
  697. package/dist/cjs/generated/codama/types/rentalExpired.js.map +0 -1
  698. package/dist/cjs/generated/codama/types/reservationContested.js +0 -41
  699. package/dist/cjs/generated/codama/types/reservationContested.js.map +0 -1
  700. package/dist/cjs/generated/codama/types/reservationCreated.js +0 -41
  701. package/dist/cjs/generated/codama/types/reservationCreated.js.map +0 -1
  702. package/dist/cjs/generated/codama/types/reservationKnockoff.js +0 -35
  703. package/dist/cjs/generated/codama/types/reservationKnockoff.js.map +0 -1
  704. package/dist/cjs/instructions/activateRental.js +0 -90
  705. package/dist/cjs/instructions/activateRental.js.map +0 -1
  706. package/dist/cjs/instructions/updateBorrower.js +0 -95
  707. package/dist/cjs/instructions/updateBorrower.js.map +0 -1
  708. package/dist/esm/demos.js +0 -566
  709. package/dist/esm/demos.js.map +0 -1
  710. package/dist/esm/generated/codama/accounts/fleet.js +0 -90
  711. package/dist/esm/generated/codama/accounts/fleet.js.map +0 -1
  712. package/dist/esm/generated/codama/accounts/thread.js +0 -89
  713. package/dist/esm/generated/codama/accounts/thread.js.map +0 -1
  714. package/dist/esm/generated/codama/instructions/activateRental.js +0 -249
  715. package/dist/esm/generated/codama/instructions/activateRental.js.map +0 -1
  716. package/dist/esm/generated/codama/instructions/updateBorrower.js +0 -87
  717. package/dist/esm/generated/codama/instructions/updateBorrower.js.map +0 -1
  718. package/dist/esm/generated/codama/types/atlasClaimed.js +0 -28
  719. package/dist/esm/generated/codama/types/atlasClaimed.js.map +0 -1
  720. package/dist/esm/generated/codama/types/borrowerInitialized.js +0 -24
  721. package/dist/esm/generated/codama/types/borrowerInitialized.js.map +0 -1
  722. package/dist/esm/generated/codama/types/contractClosed.js +0 -26
  723. package/dist/esm/generated/codama/types/contractClosed.js.map +0 -1
  724. package/dist/esm/generated/codama/types/contractCreated.js +0 -28
  725. package/dist/esm/generated/codama/types/contractCreated.js.map +0 -1
  726. package/dist/esm/generated/codama/types/contractDelegateSet.js +0 -26
  727. package/dist/esm/generated/codama/types/contractDelegateSet.js.map +0 -1
  728. package/dist/esm/generated/codama/types/contractPendingClose.js +0 -26
  729. package/dist/esm/generated/codama/types/contractPendingClose.js.map +0 -1
  730. package/dist/esm/generated/codama/types/contractProcessed.js +0 -28
  731. package/dist/esm/generated/codama/types/contractProcessed.js.map +0 -1
  732. package/dist/esm/generated/codama/types/contractThreadClosed.js +0 -24
  733. package/dist/esm/generated/codama/types/contractThreadClosed.js.map +0 -1
  734. package/dist/esm/generated/codama/types/contractThreadCreated.js +0 -24
  735. package/dist/esm/generated/codama/types/contractThreadCreated.js.map +0 -1
  736. package/dist/esm/generated/codama/types/contractThreadUpdated.js +0 -34
  737. package/dist/esm/generated/codama/types/contractThreadUpdated.js.map +0 -1
  738. package/dist/esm/generated/codama/types/contractUpdated.js +0 -29
  739. package/dist/esm/generated/codama/types/contractUpdated.js.map +0 -1
  740. package/dist/esm/generated/codama/types/discount.js +0 -40
  741. package/dist/esm/generated/codama/types/discount.js.map +0 -1
  742. package/dist/esm/generated/codama/types/discountAuthorization.js +0 -30
  743. package/dist/esm/generated/codama/types/discountAuthorization.js.map +0 -1
  744. package/dist/esm/generated/codama/types/fieldUpdate.js +0 -24
  745. package/dist/esm/generated/codama/types/fieldUpdate.js.map +0 -1
  746. package/dist/esm/generated/codama/types/queuedRentalRefunded.js +0 -28
  747. package/dist/esm/generated/codama/types/queuedRentalRefunded.js.map +0 -1
  748. package/dist/esm/generated/codama/types/rentalActivated.js +0 -28
  749. package/dist/esm/generated/codama/types/rentalActivated.js.map +0 -1
  750. package/dist/esm/generated/codama/types/rentalExpired.js +0 -26
  751. package/dist/esm/generated/codama/types/rentalExpired.js.map +0 -1
  752. package/dist/esm/generated/codama/types/reservationContested.js +0 -36
  753. package/dist/esm/generated/codama/types/reservationContested.js.map +0 -1
  754. package/dist/esm/generated/codama/types/reservationCreated.js +0 -36
  755. package/dist/esm/generated/codama/types/reservationCreated.js.map +0 -1
  756. package/dist/esm/generated/codama/types/reservationKnockoff.js +0 -30
  757. package/dist/esm/generated/codama/types/reservationKnockoff.js.map +0 -1
  758. package/dist/esm/instructions/activateRental.js +0 -87
  759. package/dist/esm/instructions/activateRental.js.map +0 -1
  760. package/dist/esm/instructions/updateBorrower.js +0 -92
  761. package/dist/esm/instructions/updateBorrower.js.map +0 -1
  762. package/dist/types/demos.d.ts +0 -99
  763. package/dist/types/demos.d.ts.map +0 -1
  764. package/dist/types/generated/codama/accounts/fleet.d.ts +0 -64
  765. package/dist/types/generated/codama/accounts/fleet.d.ts.map +0 -1
  766. package/dist/types/generated/codama/accounts/thread.d.ts +0 -65
  767. package/dist/types/generated/codama/accounts/thread.d.ts.map +0 -1
  768. package/dist/types/generated/codama/instructions/activateRental.d.ts +0 -103
  769. package/dist/types/generated/codama/instructions/activateRental.d.ts.map +0 -1
  770. package/dist/types/generated/codama/instructions/updateBorrower.d.ts +0 -64
  771. package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +0 -1
  772. package/dist/types/generated/codama/types/atlasClaimed.d.ts +0 -24
  773. package/dist/types/generated/codama/types/atlasClaimed.d.ts.map +0 -1
  774. package/dist/types/generated/codama/types/borrowerInitialized.d.ts +0 -17
  775. package/dist/types/generated/codama/types/borrowerInitialized.d.ts.map +0 -1
  776. package/dist/types/generated/codama/types/contractClosed.d.ts +0 -18
  777. package/dist/types/generated/codama/types/contractClosed.d.ts.map +0 -1
  778. package/dist/types/generated/codama/types/contractCreated.d.ts +0 -24
  779. package/dist/types/generated/codama/types/contractCreated.d.ts.map +0 -1
  780. package/dist/types/generated/codama/types/contractDelegateSet.d.ts +0 -22
  781. package/dist/types/generated/codama/types/contractDelegateSet.d.ts.map +0 -1
  782. package/dist/types/generated/codama/types/contractPendingClose.d.ts +0 -18
  783. package/dist/types/generated/codama/types/contractPendingClose.d.ts.map +0 -1
  784. package/dist/types/generated/codama/types/contractProcessed.d.ts +0 -24
  785. package/dist/types/generated/codama/types/contractProcessed.d.ts.map +0 -1
  786. package/dist/types/generated/codama/types/contractThreadClosed.d.ts +0 -17
  787. package/dist/types/generated/codama/types/contractThreadClosed.d.ts.map +0 -1
  788. package/dist/types/generated/codama/types/contractThreadCreated.d.ts +0 -17
  789. package/dist/types/generated/codama/types/contractThreadCreated.d.ts.map +0 -1
  790. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts +0 -24
  791. package/dist/types/generated/codama/types/contractThreadUpdated.d.ts.map +0 -1
  792. package/dist/types/generated/codama/types/contractUpdated.d.ts +0 -27
  793. package/dist/types/generated/codama/types/contractUpdated.d.ts.map +0 -1
  794. package/dist/types/generated/codama/types/discount.d.ts +0 -65
  795. package/dist/types/generated/codama/types/discount.d.ts.map +0 -1
  796. package/dist/types/generated/codama/types/discountAuthorization.d.ts +0 -40
  797. package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +0 -1
  798. package/dist/types/generated/codama/types/fieldUpdate.d.ts +0 -20
  799. package/dist/types/generated/codama/types/fieldUpdate.d.ts.map +0 -1
  800. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts +0 -24
  801. package/dist/types/generated/codama/types/queuedRentalRefunded.d.ts.map +0 -1
  802. package/dist/types/generated/codama/types/rentalActivated.d.ts +0 -24
  803. package/dist/types/generated/codama/types/rentalActivated.d.ts.map +0 -1
  804. package/dist/types/generated/codama/types/rentalExpired.d.ts +0 -18
  805. package/dist/types/generated/codama/types/rentalExpired.d.ts.map +0 -1
  806. package/dist/types/generated/codama/types/reservationContested.d.ts +0 -50
  807. package/dist/types/generated/codama/types/reservationContested.d.ts.map +0 -1
  808. package/dist/types/generated/codama/types/reservationCreated.d.ts +0 -32
  809. package/dist/types/generated/codama/types/reservationCreated.d.ts.map +0 -1
  810. package/dist/types/generated/codama/types/reservationKnockoff.d.ts +0 -26
  811. package/dist/types/generated/codama/types/reservationKnockoff.d.ts.map +0 -1
  812. package/dist/types/instructions/activateRental.d.ts +0 -46
  813. package/dist/types/instructions/activateRental.d.ts.map +0 -1
  814. package/dist/types/instructions/updateBorrower.d.ts +0 -75
  815. package/dist/types/instructions/updateBorrower.d.ts.map +0 -1
@@ -0,0 +1,4747 @@
1
+ {
2
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH",
3
+ "metadata": {
4
+ "name": "srsly",
5
+ "version": "5.2.1",
6
+ "spec": "0.1.0",
7
+ "description": "Space Rental from SLY",
8
+ "repository": "https://github.com/wuwei-labs/srsly"
9
+ },
10
+ "instructions": [
11
+ {
12
+ "name": "accept_rental",
13
+ "docs": [
14
+ "Accept a rental contract by providing payment and specifying duration.",
15
+ "Used when no active rental exists. For queued rentals, use reserve_rental.",
16
+ "Optionally verifies an ed25519 discount signature via slyvault CPI."
17
+ ],
18
+ "discriminator": [192, 221, 241, 212, 141, 161, 36, 146],
19
+ "accounts": [
20
+ {
21
+ "name": "borrower",
22
+ "writable": true,
23
+ "signer": true
24
+ },
25
+ {
26
+ "name": "config",
27
+ "writable": true,
28
+ "pda": {
29
+ "seeds": [
30
+ {
31
+ "kind": "const",
32
+ "value": [99, 111, 110, 102, 105, 103]
33
+ }
34
+ ]
35
+ }
36
+ },
37
+ {
38
+ "name": "borrower_state",
39
+ "writable": true,
40
+ "pda": {
41
+ "seeds": [
42
+ {
43
+ "kind": "const",
44
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
45
+ },
46
+ {
47
+ "kind": "account",
48
+ "path": "borrower"
49
+ }
50
+ ]
51
+ }
52
+ },
53
+ {
54
+ "name": "borrower_token_account",
55
+ "writable": true
56
+ },
57
+ {
58
+ "name": "fleet",
59
+ "docs": ["Fleet validated by contract"],
60
+ "writable": true
61
+ },
62
+ {
63
+ "name": "expired_borrower_state",
64
+ "docs": [
65
+ "BorrowerState for the expired rental's borrower (required when inline replacement fires)"
66
+ ],
67
+ "writable": true,
68
+ "optional": true
69
+ },
70
+ {
71
+ "name": "contract",
72
+ "writable": true,
73
+ "pda": {
74
+ "seeds": [
75
+ {
76
+ "kind": "const",
77
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
78
+ },
79
+ {
80
+ "kind": "account",
81
+ "path": "contract.fleet",
82
+ "account": "ContractState"
83
+ }
84
+ ]
85
+ }
86
+ },
87
+ {
88
+ "name": "active_rental",
89
+ "docs": ["Active rental slot"],
90
+ "writable": true,
91
+ "pda": {
92
+ "seeds": [
93
+ {
94
+ "kind": "const",
95
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
96
+ },
97
+ {
98
+ "kind": "account",
99
+ "path": "contract"
100
+ },
101
+ {
102
+ "kind": "const",
103
+ "value": [97, 99, 116, 105, 118, 101]
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ {
109
+ "name": "queued_rental",
110
+ "docs": ["Queued rental slot"],
111
+ "writable": true,
112
+ "pda": {
113
+ "seeds": [
114
+ {
115
+ "kind": "const",
116
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
117
+ },
118
+ {
119
+ "kind": "account",
120
+ "path": "contract"
121
+ },
122
+ {
123
+ "kind": "const",
124
+ "value": [113, 117, 101, 117, 101, 100]
125
+ }
126
+ ]
127
+ }
128
+ },
129
+ {
130
+ "name": "rental_authority",
131
+ "writable": true,
132
+ "pda": {
133
+ "seeds": [
134
+ {
135
+ "kind": "const",
136
+ "value": [
137
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
138
+ ]
139
+ }
140
+ ]
141
+ }
142
+ },
143
+ {
144
+ "name": "contract_token_account",
145
+ "writable": true
146
+ },
147
+ {
148
+ "name": "vault",
149
+ "writable": true
150
+ },
151
+ {
152
+ "name": "vault_token_account",
153
+ "writable": true
154
+ },
155
+ {
156
+ "name": "referrer",
157
+ "writable": true,
158
+ "optional": true
159
+ },
160
+ {
161
+ "name": "expired_referrer",
162
+ "writable": true,
163
+ "optional": true
164
+ },
165
+ {
166
+ "name": "expired_borrower_token_account",
167
+ "writable": true,
168
+ "optional": true
169
+ },
170
+ {
171
+ "name": "queued_borrower_profile",
172
+ "optional": true
173
+ },
174
+ {
175
+ "name": "queued_borrower_profile_faction",
176
+ "optional": true
177
+ },
178
+ {
179
+ "name": "contract_thread",
180
+ "writable": true,
181
+ "optional": true
182
+ },
183
+ {
184
+ "name": "close_rental_fiber",
185
+ "writable": true,
186
+ "optional": true
187
+ },
188
+ {
189
+ "name": "sage_program"
190
+ },
191
+ {
192
+ "name": "slyvault_program",
193
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
194
+ },
195
+ {
196
+ "name": "antegen_program",
197
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
198
+ },
199
+ {
200
+ "name": "fiber_program",
201
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
202
+ },
203
+ {
204
+ "name": "token_program",
205
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
206
+ },
207
+ {
208
+ "name": "system_program",
209
+ "address": "11111111111111111111111111111111"
210
+ }
211
+ ],
212
+ "args": [
213
+ {
214
+ "name": "duration",
215
+ "type": "i64"
216
+ },
217
+ {
218
+ "name": "discount_signature",
219
+ "type": {
220
+ "option": {
221
+ "array": ["u8", 64]
222
+ }
223
+ }
224
+ },
225
+ {
226
+ "name": "discount_member_nonce",
227
+ "type": {
228
+ "option": "u32"
229
+ }
230
+ },
231
+ {
232
+ "name": "discount_bps",
233
+ "type": {
234
+ "option": "u16"
235
+ }
236
+ },
237
+ {
238
+ "name": "discount_expires_at",
239
+ "type": {
240
+ "option": "i64"
241
+ }
242
+ }
243
+ ]
244
+ },
245
+ {
246
+ "name": "cancel_rental",
247
+ "docs": [
248
+ "Cancel an active rental with flexible timing.",
249
+ "- cancel_delay = 0: Instant cancellation (fleet returned immediately)",
250
+ "- cancel_delay > 0: Deferred cancellation (fleet stays with borrower until delay expires)"
251
+ ],
252
+ "discriminator": [97, 204, 63, 8, 84, 34, 28, 43],
253
+ "accounts": [
254
+ {
255
+ "name": "borrower",
256
+ "writable": true,
257
+ "signer": true
258
+ },
259
+ {
260
+ "name": "config",
261
+ "pda": {
262
+ "seeds": [
263
+ {
264
+ "kind": "const",
265
+ "value": [99, 111, 110, 102, 105, 103]
266
+ }
267
+ ]
268
+ }
269
+ },
270
+ {
271
+ "name": "mint"
272
+ },
273
+ {
274
+ "name": "borrower_state",
275
+ "writable": true,
276
+ "pda": {
277
+ "seeds": [
278
+ {
279
+ "kind": "const",
280
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
281
+ },
282
+ {
283
+ "kind": "account",
284
+ "path": "borrower"
285
+ }
286
+ ]
287
+ }
288
+ },
289
+ {
290
+ "name": "borrower_token_account",
291
+ "writable": true,
292
+ "pda": {
293
+ "seeds": [
294
+ {
295
+ "kind": "account",
296
+ "path": "borrower"
297
+ },
298
+ {
299
+ "kind": "const",
300
+ "value": [
301
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
302
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
303
+ ]
304
+ },
305
+ {
306
+ "kind": "account",
307
+ "path": "mint"
308
+ }
309
+ ],
310
+ "program": {
311
+ "kind": "const",
312
+ "value": [
313
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
314
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
315
+ ]
316
+ }
317
+ }
318
+ },
319
+ {
320
+ "name": "contract",
321
+ "writable": true,
322
+ "pda": {
323
+ "seeds": [
324
+ {
325
+ "kind": "const",
326
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
327
+ },
328
+ {
329
+ "kind": "account",
330
+ "path": "contract.fleet",
331
+ "account": "ContractState"
332
+ }
333
+ ]
334
+ }
335
+ },
336
+ {
337
+ "name": "rental_state",
338
+ "writable": true
339
+ },
340
+ {
341
+ "name": "contract_token_account",
342
+ "writable": true
343
+ },
344
+ {
345
+ "name": "fleet"
346
+ },
347
+ {
348
+ "name": "rental_authority",
349
+ "writable": true,
350
+ "pda": {
351
+ "seeds": [
352
+ {
353
+ "kind": "const",
354
+ "value": [
355
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
356
+ ]
357
+ }
358
+ ]
359
+ }
360
+ },
361
+ {
362
+ "name": "contract_thread",
363
+ "writable": true,
364
+ "optional": true
365
+ },
366
+ {
367
+ "name": "antegen_program",
368
+ "docs": ["Thread Program for trigger update"],
369
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
370
+ },
371
+ {
372
+ "name": "token_program",
373
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
374
+ },
375
+ {
376
+ "name": "associated_token_program",
377
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
378
+ },
379
+ {
380
+ "name": "system_program",
381
+ "address": "11111111111111111111111111111111"
382
+ }
383
+ ],
384
+ "args": [
385
+ {
386
+ "name": "cancel_delay",
387
+ "type": "i64"
388
+ }
389
+ ]
390
+ },
391
+ {
392
+ "name": "claim_borrower",
393
+ "docs": [
394
+ "Borrower claims accumulated ATLAS from their managed token account.",
395
+ "Callable by borrower or admin (config.admin) as escape hatch."
396
+ ],
397
+ "discriminator": [110, 181, 137, 36, 71, 243, 38, 219],
398
+ "accounts": [
399
+ {
400
+ "name": "payer",
401
+ "writable": true,
402
+ "signer": true
403
+ },
404
+ {
405
+ "name": "config",
406
+ "pda": {
407
+ "seeds": [
408
+ {
409
+ "kind": "const",
410
+ "value": [99, 111, 110, 102, 105, 103]
411
+ }
412
+ ]
413
+ }
414
+ },
415
+ {
416
+ "name": "mint"
417
+ },
418
+ {
419
+ "name": "borrower",
420
+ "writable": true
421
+ },
422
+ {
423
+ "name": "borrower_state",
424
+ "writable": true,
425
+ "pda": {
426
+ "seeds": [
427
+ {
428
+ "kind": "const",
429
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
430
+ },
431
+ {
432
+ "kind": "account",
433
+ "path": "borrower"
434
+ }
435
+ ]
436
+ }
437
+ },
438
+ {
439
+ "name": "borrower_managed_token_account",
440
+ "docs": ["Managed token account (ATA with borrower_state as authority)."],
441
+ "writable": true,
442
+ "pda": {
443
+ "seeds": [
444
+ {
445
+ "kind": "account",
446
+ "path": "borrower_state"
447
+ },
448
+ {
449
+ "kind": "const",
450
+ "value": [
451
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
452
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
453
+ ]
454
+ },
455
+ {
456
+ "kind": "account",
457
+ "path": "mint"
458
+ }
459
+ ],
460
+ "program": {
461
+ "kind": "const",
462
+ "value": [
463
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
464
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
465
+ ]
466
+ }
467
+ }
468
+ },
469
+ {
470
+ "name": "destination_token_account",
471
+ "writable": true,
472
+ "pda": {
473
+ "seeds": [
474
+ {
475
+ "kind": "account",
476
+ "path": "borrower"
477
+ },
478
+ {
479
+ "kind": "const",
480
+ "value": [
481
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
482
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
483
+ ]
484
+ },
485
+ {
486
+ "kind": "account",
487
+ "path": "mint"
488
+ }
489
+ ],
490
+ "program": {
491
+ "kind": "const",
492
+ "value": [
493
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
494
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
495
+ ]
496
+ }
497
+ }
498
+ },
499
+ {
500
+ "name": "token_program",
501
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
502
+ },
503
+ {
504
+ "name": "associated_token_program",
505
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
506
+ },
507
+ {
508
+ "name": "system_program",
509
+ "address": "11111111111111111111111111111111"
510
+ }
511
+ ],
512
+ "args": []
513
+ },
514
+ {
515
+ "name": "claim_contract",
516
+ "docs": [
517
+ "Claim accumulated ATLAS from a specific contract's token account.",
518
+ "Transfers owner_claimable amount from contract_token_account to owner's wallet."
519
+ ],
520
+ "discriminator": [159, 37, 59, 144, 75, 50, 2, 170],
521
+ "accounts": [
522
+ {
523
+ "name": "payer",
524
+ "writable": true,
525
+ "signer": true
526
+ },
527
+ {
528
+ "name": "owner"
529
+ },
530
+ {
531
+ "name": "config",
532
+ "pda": {
533
+ "seeds": [
534
+ {
535
+ "kind": "const",
536
+ "value": [99, 111, 110, 102, 105, 103]
537
+ }
538
+ ]
539
+ }
540
+ },
541
+ {
542
+ "name": "mint"
543
+ },
544
+ {
545
+ "name": "contract",
546
+ "writable": true,
547
+ "pda": {
548
+ "seeds": [
549
+ {
550
+ "kind": "const",
551
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
552
+ },
553
+ {
554
+ "kind": "account",
555
+ "path": "contract.fleet",
556
+ "account": "ContractState"
557
+ }
558
+ ]
559
+ }
560
+ },
561
+ {
562
+ "name": "contract_token_account",
563
+ "writable": true
564
+ },
565
+ {
566
+ "name": "destination_token_account",
567
+ "writable": true,
568
+ "pda": {
569
+ "seeds": [
570
+ {
571
+ "kind": "account",
572
+ "path": "owner"
573
+ },
574
+ {
575
+ "kind": "const",
576
+ "value": [
577
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
578
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
579
+ ]
580
+ },
581
+ {
582
+ "kind": "account",
583
+ "path": "mint"
584
+ }
585
+ ],
586
+ "program": {
587
+ "kind": "const",
588
+ "value": [
589
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
590
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
591
+ ]
592
+ }
593
+ }
594
+ },
595
+ {
596
+ "name": "token_program",
597
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
598
+ },
599
+ {
600
+ "name": "associated_token_program",
601
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
602
+ },
603
+ {
604
+ "name": "system_program",
605
+ "address": "11111111111111111111111111111111"
606
+ }
607
+ ],
608
+ "args": []
609
+ },
610
+ {
611
+ "name": "close_borrower",
612
+ "docs": [
613
+ "Close a borrower's managed token account and BorrowerState.",
614
+ "Requires no active rentals and zero managed ATA balance (claim first)."
615
+ ],
616
+ "discriminator": [136, 79, 95, 44, 18, 151, 73, 199],
617
+ "accounts": [
618
+ {
619
+ "name": "borrower",
620
+ "writable": true,
621
+ "signer": true
622
+ },
623
+ {
624
+ "name": "config",
625
+ "pda": {
626
+ "seeds": [
627
+ {
628
+ "kind": "const",
629
+ "value": [99, 111, 110, 102, 105, 103]
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ {
635
+ "name": "mint"
636
+ },
637
+ {
638
+ "name": "borrower_state",
639
+ "writable": true,
640
+ "pda": {
641
+ "seeds": [
642
+ {
643
+ "kind": "const",
644
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
645
+ },
646
+ {
647
+ "kind": "account",
648
+ "path": "borrower"
649
+ }
650
+ ]
651
+ }
652
+ },
653
+ {
654
+ "name": "borrower_managed_token_account",
655
+ "docs": [
656
+ "Managed token account (ATA with borrower_state as authority).",
657
+ "Must have zero balance (claim first)."
658
+ ],
659
+ "writable": true,
660
+ "pda": {
661
+ "seeds": [
662
+ {
663
+ "kind": "account",
664
+ "path": "borrower_state"
665
+ },
666
+ {
667
+ "kind": "const",
668
+ "value": [
669
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
670
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
671
+ ]
672
+ },
673
+ {
674
+ "kind": "account",
675
+ "path": "mint"
676
+ }
677
+ ],
678
+ "program": {
679
+ "kind": "const",
680
+ "value": [
681
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
682
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
683
+ ]
684
+ }
685
+ }
686
+ },
687
+ {
688
+ "name": "token_program",
689
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
690
+ },
691
+ {
692
+ "name": "system_program",
693
+ "address": "11111111111111111111111111111111"
694
+ }
695
+ ],
696
+ "args": []
697
+ },
698
+ {
699
+ "name": "close_contract",
700
+ "docs": [
701
+ "Closes a rental contract. Contract must have no active rentals.",
702
+ "Owner closes contract and claims all remaining payments",
703
+ "Requires no active rental, reclaims all rent"
704
+ ],
705
+ "discriminator": [37, 244, 34, 168, 92, 202, 80, 106],
706
+ "accounts": [
707
+ {
708
+ "name": "owner",
709
+ "writable": true,
710
+ "signer": true
711
+ },
712
+ {
713
+ "name": "config",
714
+ "pda": {
715
+ "seeds": [
716
+ {
717
+ "kind": "const",
718
+ "value": [99, 111, 110, 102, 105, 103]
719
+ }
720
+ ]
721
+ }
722
+ },
723
+ {
724
+ "name": "mint"
725
+ },
726
+ {
727
+ "name": "contract",
728
+ "writable": true,
729
+ "pda": {
730
+ "seeds": [
731
+ {
732
+ "kind": "const",
733
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
734
+ },
735
+ {
736
+ "kind": "account",
737
+ "path": "fleet"
738
+ }
739
+ ]
740
+ }
741
+ },
742
+ {
743
+ "name": "fleet",
744
+ "docs": ["Fleet to close rental contract for"],
745
+ "writable": true
746
+ },
747
+ {
748
+ "name": "active_rental",
749
+ "writable": true,
750
+ "pda": {
751
+ "seeds": [
752
+ {
753
+ "kind": "const",
754
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
755
+ },
756
+ {
757
+ "kind": "account",
758
+ "path": "contract"
759
+ },
760
+ {
761
+ "kind": "const",
762
+ "value": [97, 99, 116, 105, 118, 101]
763
+ }
764
+ ]
765
+ }
766
+ },
767
+ {
768
+ "name": "queued_rental",
769
+ "writable": true,
770
+ "pda": {
771
+ "seeds": [
772
+ {
773
+ "kind": "const",
774
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
775
+ },
776
+ {
777
+ "kind": "account",
778
+ "path": "contract"
779
+ },
780
+ {
781
+ "kind": "const",
782
+ "value": [113, 117, 101, 117, 101, 100]
783
+ }
784
+ ]
785
+ }
786
+ },
787
+ {
788
+ "name": "contract_token_account",
789
+ "writable": true
790
+ },
791
+ {
792
+ "name": "owner_destination",
793
+ "writable": true,
794
+ "pda": {
795
+ "seeds": [
796
+ {
797
+ "kind": "account",
798
+ "path": "owner"
799
+ },
800
+ {
801
+ "kind": "const",
802
+ "value": [
803
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
804
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
805
+ ]
806
+ },
807
+ {
808
+ "kind": "account",
809
+ "path": "mint"
810
+ }
811
+ ],
812
+ "program": {
813
+ "kind": "const",
814
+ "value": [
815
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
816
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
817
+ ]
818
+ }
819
+ }
820
+ },
821
+ {
822
+ "name": "queued_borrower_state",
823
+ "docs": [
824
+ "Queued borrower's state PDA for removing active rental tracking.",
825
+ "Required when queued rental exists (not Available)."
826
+ ],
827
+ "writable": true,
828
+ "optional": true
829
+ },
830
+ {
831
+ "name": "queued_borrower_token_account",
832
+ "docs": [
833
+ "Queued borrower's token account for refunding escrow + deferred fee.",
834
+ "Required when queued rental exists (not Available)."
835
+ ],
836
+ "writable": true,
837
+ "optional": true
838
+ },
839
+ {
840
+ "name": "rental_authority",
841
+ "pda": {
842
+ "seeds": [
843
+ {
844
+ "kind": "const",
845
+ "value": [
846
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
847
+ ]
848
+ }
849
+ ]
850
+ }
851
+ },
852
+ {
853
+ "name": "sage_program"
854
+ },
855
+ {
856
+ "name": "token_program",
857
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
858
+ },
859
+ {
860
+ "name": "associated_token_program",
861
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
862
+ },
863
+ {
864
+ "name": "system_program",
865
+ "address": "11111111111111111111111111111111"
866
+ }
867
+ ],
868
+ "args": []
869
+ },
870
+ {
871
+ "name": "close_contract_thread",
872
+ "docs": [
873
+ "Close a contract's automation thread independently.",
874
+ "Closes thread + fibers, returns SOL to owner. Contract continues in manual mode."
875
+ ],
876
+ "discriminator": [213, 35, 77, 150, 62, 109, 103, 248],
877
+ "accounts": [
878
+ {
879
+ "name": "owner",
880
+ "writable": true,
881
+ "signer": true
882
+ },
883
+ {
884
+ "name": "contract",
885
+ "writable": true,
886
+ "pda": {
887
+ "seeds": [
888
+ {
889
+ "kind": "const",
890
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
891
+ },
892
+ {
893
+ "kind": "account",
894
+ "path": "contract.fleet",
895
+ "account": "ContractState"
896
+ }
897
+ ]
898
+ }
899
+ },
900
+ {
901
+ "name": "rental_authority",
902
+ "pda": {
903
+ "seeds": [
904
+ {
905
+ "kind": "const",
906
+ "value": [
907
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
908
+ ]
909
+ }
910
+ ]
911
+ }
912
+ },
913
+ {
914
+ "name": "thread",
915
+ "docs": ["Validated by antegen's close_thread CPI (seeds check)."],
916
+ "writable": true
917
+ },
918
+ {
919
+ "name": "antegen_program",
920
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
921
+ },
922
+ {
923
+ "name": "fiber_program",
924
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
925
+ },
926
+ {
927
+ "name": "system_program",
928
+ "address": "11111111111111111111111111111111"
929
+ }
930
+ ],
931
+ "args": []
932
+ },
933
+ {
934
+ "name": "close_rental",
935
+ "docs": [
936
+ "Close a completed or expired rental, optionally activating a queued rental inline.",
937
+ "Serves both fiber 1 (automated) and manual fallback.",
938
+ "Returns Signal for fiber dispatch (manual callers ignore return_data)."
939
+ ],
940
+ "discriminator": [179, 188, 113, 211, 41, 232, 51, 51],
941
+ "accounts": [
942
+ {
943
+ "name": "payer",
944
+ "writable": true,
945
+ "signer": true
946
+ },
947
+ {
948
+ "name": "config",
949
+ "writable": true,
950
+ "pda": {
951
+ "seeds": [
952
+ {
953
+ "kind": "const",
954
+ "value": [99, 111, 110, 102, 105, 103]
955
+ }
956
+ ]
957
+ }
958
+ },
959
+ {
960
+ "name": "contract",
961
+ "writable": true,
962
+ "pda": {
963
+ "seeds": [
964
+ {
965
+ "kind": "const",
966
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
967
+ },
968
+ {
969
+ "kind": "account",
970
+ "path": "contract.fleet",
971
+ "account": "ContractState"
972
+ }
973
+ ]
974
+ }
975
+ },
976
+ {
977
+ "name": "rental_state",
978
+ "writable": true
979
+ },
980
+ {
981
+ "name": "borrower_state",
982
+ "writable": true
983
+ },
984
+ {
985
+ "name": "fleet",
986
+ "docs": ["Fleet validated by contract"],
987
+ "writable": true
988
+ },
989
+ {
990
+ "name": "game_id"
991
+ },
992
+ {
993
+ "name": "starbase"
994
+ },
995
+ {
996
+ "name": "starbase_player",
997
+ "writable": true
998
+ },
999
+ {
1000
+ "name": "contract_token_account",
1001
+ "docs": ["Contract's escrow token account (source for fee flush)"],
1002
+ "writable": true
1003
+ },
1004
+ {
1005
+ "name": "vault",
1006
+ "writable": true
1007
+ },
1008
+ {
1009
+ "name": "vault_token_account",
1010
+ "writable": true
1011
+ },
1012
+ {
1013
+ "name": "referrer",
1014
+ "writable": true,
1015
+ "optional": true
1016
+ },
1017
+ {
1018
+ "name": "borrower_token_account",
1019
+ "writable": true,
1020
+ "optional": true
1021
+ },
1022
+ {
1023
+ "name": "queued_rental",
1024
+ "writable": true,
1025
+ "optional": true,
1026
+ "pda": {
1027
+ "seeds": [
1028
+ {
1029
+ "kind": "const",
1030
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1031
+ },
1032
+ {
1033
+ "kind": "account",
1034
+ "path": "contract"
1035
+ },
1036
+ {
1037
+ "kind": "const",
1038
+ "value": [113, 117, 101, 117, 101, 100]
1039
+ }
1040
+ ]
1041
+ }
1042
+ },
1043
+ {
1044
+ "name": "queued_borrower_profile",
1045
+ "optional": true
1046
+ },
1047
+ {
1048
+ "name": "queued_borrower_profile_faction",
1049
+ "optional": true
1050
+ },
1051
+ {
1052
+ "name": "contract_thread",
1053
+ "writable": true,
1054
+ "optional": true
1055
+ },
1056
+ {
1057
+ "name": "close_rental_fiber",
1058
+ "writable": true,
1059
+ "optional": true
1060
+ },
1061
+ {
1062
+ "name": "rental_authority",
1063
+ "pda": {
1064
+ "seeds": [
1065
+ {
1066
+ "kind": "const",
1067
+ "value": [
1068
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
1069
+ ]
1070
+ }
1071
+ ]
1072
+ }
1073
+ },
1074
+ {
1075
+ "name": "sage_program"
1076
+ },
1077
+ {
1078
+ "name": "slyvault_program",
1079
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
1080
+ },
1081
+ {
1082
+ "name": "fiber_program",
1083
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
1084
+ },
1085
+ {
1086
+ "name": "antegen_program",
1087
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
1088
+ },
1089
+ {
1090
+ "name": "token_program",
1091
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1092
+ },
1093
+ {
1094
+ "name": "system_program",
1095
+ "address": "11111111111111111111111111111111"
1096
+ }
1097
+ ],
1098
+ "args": [],
1099
+ "returns": {
1100
+ "defined": {
1101
+ "name": "Signal"
1102
+ }
1103
+ }
1104
+ },
1105
+ {
1106
+ "name": "create_borrower",
1107
+ "docs": [
1108
+ "Create a new BorrowerState account.",
1109
+ "Must be called before any rental operations (rental_accept, rental_reserve)."
1110
+ ],
1111
+ "discriminator": [203, 62, 59, 250, 206, 172, 88, 214],
1112
+ "accounts": [
1113
+ {
1114
+ "name": "borrower",
1115
+ "writable": true,
1116
+ "signer": true
1117
+ },
1118
+ {
1119
+ "name": "config",
1120
+ "pda": {
1121
+ "seeds": [
1122
+ {
1123
+ "kind": "const",
1124
+ "value": [99, 111, 110, 102, 105, 103]
1125
+ }
1126
+ ]
1127
+ }
1128
+ },
1129
+ {
1130
+ "name": "mint"
1131
+ },
1132
+ {
1133
+ "name": "borrower_state",
1134
+ "writable": true,
1135
+ "pda": {
1136
+ "seeds": [
1137
+ {
1138
+ "kind": "const",
1139
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
1140
+ },
1141
+ {
1142
+ "kind": "account",
1143
+ "path": "borrower"
1144
+ }
1145
+ ]
1146
+ }
1147
+ },
1148
+ {
1149
+ "name": "managed_token_account",
1150
+ "writable": true,
1151
+ "pda": {
1152
+ "seeds": [
1153
+ {
1154
+ "kind": "account",
1155
+ "path": "borrower_state"
1156
+ },
1157
+ {
1158
+ "kind": "const",
1159
+ "value": [
1160
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
1161
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
1162
+ ]
1163
+ },
1164
+ {
1165
+ "kind": "account",
1166
+ "path": "mint"
1167
+ }
1168
+ ],
1169
+ "program": {
1170
+ "kind": "const",
1171
+ "value": [
1172
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
1173
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
1174
+ ]
1175
+ }
1176
+ }
1177
+ },
1178
+ {
1179
+ "name": "token_program",
1180
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1181
+ },
1182
+ {
1183
+ "name": "associated_token_program",
1184
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1185
+ },
1186
+ {
1187
+ "name": "system_program",
1188
+ "address": "11111111111111111111111111111111"
1189
+ }
1190
+ ],
1191
+ "args": []
1192
+ },
1193
+ {
1194
+ "name": "create_config",
1195
+ "docs": [
1196
+ "Create global program configuration. Called once during deployment.",
1197
+ "Note: Vault members must be added separately via slyvault member_init + member_add",
1198
+ "",
1199
+ "# Arguments",
1200
+ "- `recent_slot`: The slot used to derive the lookup table address"
1201
+ ],
1202
+ "discriminator": [201, 207, 243, 114, 75, 111, 47, 189],
1203
+ "accounts": [
1204
+ {
1205
+ "name": "authority",
1206
+ "writable": true,
1207
+ "signer": true
1208
+ },
1209
+ {
1210
+ "name": "config",
1211
+ "writable": true,
1212
+ "pda": {
1213
+ "seeds": [
1214
+ {
1215
+ "kind": "const",
1216
+ "value": [99, 111, 110, 102, 105, 103]
1217
+ }
1218
+ ]
1219
+ }
1220
+ },
1221
+ {
1222
+ "name": "mint"
1223
+ },
1224
+ {
1225
+ "name": "vault",
1226
+ "writable": true
1227
+ },
1228
+ {
1229
+ "name": "vault_token_account",
1230
+ "writable": true
1231
+ },
1232
+ {
1233
+ "name": "lookup_table",
1234
+ "writable": true
1235
+ },
1236
+ {
1237
+ "name": "sage_program"
1238
+ },
1239
+ {
1240
+ "name": "antegen_program"
1241
+ },
1242
+ {
1243
+ "name": "alt_program",
1244
+ "address": "AddressLookupTab1e1111111111111111111111111"
1245
+ },
1246
+ {
1247
+ "name": "srsly_program",
1248
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH"
1249
+ },
1250
+ {
1251
+ "name": "slyvault_program",
1252
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
1253
+ },
1254
+ {
1255
+ "name": "token_program",
1256
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1257
+ },
1258
+ {
1259
+ "name": "associated_token_program",
1260
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1261
+ },
1262
+ {
1263
+ "name": "system_program",
1264
+ "address": "11111111111111111111111111111111"
1265
+ }
1266
+ ],
1267
+ "args": [
1268
+ {
1269
+ "name": "recent_slot",
1270
+ "type": "u64"
1271
+ }
1272
+ ]
1273
+ },
1274
+ {
1275
+ "name": "create_contract",
1276
+ "docs": ["Create a new rental contract for a fleet with specified terms."],
1277
+ "discriminator": [244, 48, 244, 178, 216, 88, 122, 52],
1278
+ "accounts": [
1279
+ {
1280
+ "name": "owner",
1281
+ "writable": true,
1282
+ "signer": true
1283
+ },
1284
+ {
1285
+ "name": "config",
1286
+ "pda": {
1287
+ "seeds": [
1288
+ {
1289
+ "kind": "const",
1290
+ "value": [99, 111, 110, 102, 105, 103]
1291
+ }
1292
+ ]
1293
+ }
1294
+ },
1295
+ {
1296
+ "name": "mint"
1297
+ },
1298
+ {
1299
+ "name": "fleet",
1300
+ "docs": ["Fleet to create rental contract for"],
1301
+ "writable": true
1302
+ },
1303
+ {
1304
+ "name": "owner_profile"
1305
+ },
1306
+ {
1307
+ "name": "game_id"
1308
+ },
1309
+ {
1310
+ "name": "contract",
1311
+ "writable": true,
1312
+ "pda": {
1313
+ "seeds": [
1314
+ {
1315
+ "kind": "const",
1316
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
1317
+ },
1318
+ {
1319
+ "kind": "account",
1320
+ "path": "fleet"
1321
+ }
1322
+ ]
1323
+ }
1324
+ },
1325
+ {
1326
+ "name": "active_rental",
1327
+ "writable": true,
1328
+ "pda": {
1329
+ "seeds": [
1330
+ {
1331
+ "kind": "const",
1332
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1333
+ },
1334
+ {
1335
+ "kind": "account",
1336
+ "path": "contract"
1337
+ },
1338
+ {
1339
+ "kind": "const",
1340
+ "value": [97, 99, 116, 105, 118, 101]
1341
+ }
1342
+ ]
1343
+ }
1344
+ },
1345
+ {
1346
+ "name": "queued_rental",
1347
+ "writable": true,
1348
+ "pda": {
1349
+ "seeds": [
1350
+ {
1351
+ "kind": "const",
1352
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1353
+ },
1354
+ {
1355
+ "kind": "account",
1356
+ "path": "contract"
1357
+ },
1358
+ {
1359
+ "kind": "const",
1360
+ "value": [113, 117, 101, 117, 101, 100]
1361
+ }
1362
+ ]
1363
+ }
1364
+ },
1365
+ {
1366
+ "name": "contract_token_account",
1367
+ "writable": true,
1368
+ "pda": {
1369
+ "seeds": [
1370
+ {
1371
+ "kind": "account",
1372
+ "path": "contract"
1373
+ },
1374
+ {
1375
+ "kind": "const",
1376
+ "value": [
1377
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
1378
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
1379
+ ]
1380
+ },
1381
+ {
1382
+ "kind": "account",
1383
+ "path": "mint"
1384
+ }
1385
+ ],
1386
+ "program": {
1387
+ "kind": "const",
1388
+ "value": [
1389
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
1390
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
1391
+ ]
1392
+ }
1393
+ }
1394
+ },
1395
+ {
1396
+ "name": "rental_authority",
1397
+ "pda": {
1398
+ "seeds": [
1399
+ {
1400
+ "kind": "const",
1401
+ "value": [
1402
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
1403
+ ]
1404
+ }
1405
+ ]
1406
+ }
1407
+ },
1408
+ {
1409
+ "name": "sage_program"
1410
+ },
1411
+ {
1412
+ "name": "token_program",
1413
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1414
+ },
1415
+ {
1416
+ "name": "associated_token_program",
1417
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1418
+ },
1419
+ {
1420
+ "name": "system_program",
1421
+ "address": "11111111111111111111111111111111"
1422
+ }
1423
+ ],
1424
+ "args": [
1425
+ {
1426
+ "name": "rate",
1427
+ "type": "u64"
1428
+ },
1429
+ {
1430
+ "name": "duration_min",
1431
+ "type": "i64"
1432
+ },
1433
+ {
1434
+ "name": "duration_max",
1435
+ "type": "i64"
1436
+ },
1437
+ {
1438
+ "name": "owner_key_index",
1439
+ "type": "u16"
1440
+ },
1441
+ {
1442
+ "name": "cancel_delay_min",
1443
+ "type": "i64"
1444
+ },
1445
+ {
1446
+ "name": "reservations_disabled",
1447
+ "type": "bool"
1448
+ },
1449
+ {
1450
+ "name": "contested_threshold",
1451
+ "type": "u8"
1452
+ }
1453
+ ]
1454
+ },
1455
+ {
1456
+ "name": "create_contract_thread",
1457
+ "docs": [
1458
+ "Create per-contract automation thread with fiber-based dispatch.",
1459
+ "Creates thread (fiber 0: controller) + fiber 1 (rental_close).",
1460
+ "Activation is handled inline by rental_close. Owner-managed."
1461
+ ],
1462
+ "discriminator": [233, 57, 214, 37, 246, 233, 143, 139],
1463
+ "accounts": [
1464
+ {
1465
+ "name": "payer",
1466
+ "docs": ["Payer must be contract owner"],
1467
+ "writable": true,
1468
+ "signer": true
1469
+ },
1470
+ {
1471
+ "name": "config",
1472
+ "pda": {
1473
+ "seeds": [
1474
+ {
1475
+ "kind": "const",
1476
+ "value": [99, 111, 110, 102, 105, 103]
1477
+ }
1478
+ ]
1479
+ }
1480
+ },
1481
+ {
1482
+ "name": "mint"
1483
+ },
1484
+ {
1485
+ "name": "contract",
1486
+ "writable": true,
1487
+ "pda": {
1488
+ "seeds": [
1489
+ {
1490
+ "kind": "const",
1491
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
1492
+ },
1493
+ {
1494
+ "kind": "account",
1495
+ "path": "contract.fleet",
1496
+ "account": "ContractState"
1497
+ }
1498
+ ]
1499
+ }
1500
+ },
1501
+ {
1502
+ "name": "rental_authority",
1503
+ "writable": true,
1504
+ "pda": {
1505
+ "seeds": [
1506
+ {
1507
+ "kind": "const",
1508
+ "value": [
1509
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
1510
+ ]
1511
+ }
1512
+ ]
1513
+ }
1514
+ },
1515
+ {
1516
+ "name": "contract_thread",
1517
+ "writable": true
1518
+ },
1519
+ {
1520
+ "name": "fiber_0",
1521
+ "writable": true
1522
+ },
1523
+ {
1524
+ "name": "close_rental_fiber",
1525
+ "writable": true
1526
+ },
1527
+ {
1528
+ "name": "owner"
1529
+ },
1530
+ {
1531
+ "name": "contract_token_account",
1532
+ "docs": ["Contract's escrow token account (validated here, passed to contract_process)"],
1533
+ "writable": true
1534
+ },
1535
+ {
1536
+ "name": "owner_token_account",
1537
+ "docs": [
1538
+ "Owner's ATLAS destination (created here, used by contract_process for auto-transfer)"
1539
+ ],
1540
+ "writable": true,
1541
+ "pda": {
1542
+ "seeds": [
1543
+ {
1544
+ "kind": "account",
1545
+ "path": "owner"
1546
+ },
1547
+ {
1548
+ "kind": "const",
1549
+ "value": [
1550
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
1551
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
1552
+ ]
1553
+ },
1554
+ {
1555
+ "kind": "account",
1556
+ "path": "mint"
1557
+ }
1558
+ ],
1559
+ "program": {
1560
+ "kind": "const",
1561
+ "value": [
1562
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
1563
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
1564
+ ]
1565
+ }
1566
+ }
1567
+ },
1568
+ {
1569
+ "name": "active_rental",
1570
+ "pda": {
1571
+ "seeds": [
1572
+ {
1573
+ "kind": "const",
1574
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1575
+ },
1576
+ {
1577
+ "kind": "account",
1578
+ "path": "contract"
1579
+ },
1580
+ {
1581
+ "kind": "const",
1582
+ "value": [97, 99, 116, 105, 118, 101]
1583
+ }
1584
+ ]
1585
+ }
1586
+ },
1587
+ {
1588
+ "name": "queued_rental",
1589
+ "pda": {
1590
+ "seeds": [
1591
+ {
1592
+ "kind": "const",
1593
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1594
+ },
1595
+ {
1596
+ "kind": "account",
1597
+ "path": "contract"
1598
+ },
1599
+ {
1600
+ "kind": "const",
1601
+ "value": [113, 117, 101, 117, 101, 100]
1602
+ }
1603
+ ]
1604
+ }
1605
+ },
1606
+ {
1607
+ "name": "sage_program"
1608
+ },
1609
+ {
1610
+ "name": "antegen_program",
1611
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
1612
+ },
1613
+ {
1614
+ "name": "fiber_program",
1615
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
1616
+ },
1617
+ {
1618
+ "name": "token_program",
1619
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1620
+ },
1621
+ {
1622
+ "name": "associated_token_program",
1623
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
1624
+ },
1625
+ {
1626
+ "name": "system_program",
1627
+ "address": "11111111111111111111111111111111"
1628
+ }
1629
+ ],
1630
+ "args": [
1631
+ {
1632
+ "name": "lamports",
1633
+ "type": "u64"
1634
+ },
1635
+ {
1636
+ "name": "payments_freq",
1637
+ "type": "string"
1638
+ }
1639
+ ]
1640
+ },
1641
+ {
1642
+ "name": "delete_borrower",
1643
+ "docs": [
1644
+ "Delete borrower state (admin-only for schema migrations).",
1645
+ "Uses UncheckedAccount to bypass deserialization for old-format accounts."
1646
+ ],
1647
+ "discriminator": [89, 147, 185, 127, 231, 56, 190, 45],
1648
+ "accounts": [
1649
+ {
1650
+ "name": "admin",
1651
+ "writable": true,
1652
+ "signer": true
1653
+ },
1654
+ {
1655
+ "name": "config",
1656
+ "docs": ["Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."],
1657
+ "pda": {
1658
+ "seeds": [
1659
+ {
1660
+ "kind": "const",
1661
+ "value": [99, 111, 110, 102, 105, 103]
1662
+ }
1663
+ ]
1664
+ }
1665
+ },
1666
+ {
1667
+ "name": "borrower",
1668
+ "writable": true
1669
+ },
1670
+ {
1671
+ "name": "borrower_state",
1672
+ "writable": true
1673
+ }
1674
+ ],
1675
+ "args": []
1676
+ },
1677
+ {
1678
+ "name": "delete_config",
1679
+ "docs": [
1680
+ "Delete global program configuration. Only callable by AUTHORIZED_INITIALIZER.",
1681
+ "WARNING: Destructive operation - prevents all program operations until re-initialized.",
1682
+ "Use for devnet/testnet when ConfigState schema changes."
1683
+ ],
1684
+ "discriminator": [219, 237, 110, 222, 219, 239, 70, 237],
1685
+ "accounts": [
1686
+ {
1687
+ "name": "authority",
1688
+ "writable": true,
1689
+ "signer": true,
1690
+ "address": "5xoQptcACAAAwPunPAgNgoGfEqywR5VyZdUdzGpaTp2z"
1691
+ },
1692
+ {
1693
+ "name": "config",
1694
+ "writable": true,
1695
+ "pda": {
1696
+ "seeds": [
1697
+ {
1698
+ "kind": "const",
1699
+ "value": [99, 111, 110, 102, 105, 103]
1700
+ }
1701
+ ]
1702
+ }
1703
+ },
1704
+ {
1705
+ "name": "mint"
1706
+ },
1707
+ {
1708
+ "name": "vault",
1709
+ "writable": true
1710
+ },
1711
+ {
1712
+ "name": "vault_token_account",
1713
+ "writable": true
1714
+ },
1715
+ {
1716
+ "name": "srsly_program",
1717
+ "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH"
1718
+ },
1719
+ {
1720
+ "name": "slyvault_program",
1721
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
1722
+ },
1723
+ {
1724
+ "name": "token_program",
1725
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
1726
+ },
1727
+ {
1728
+ "name": "system_program",
1729
+ "address": "11111111111111111111111111111111"
1730
+ }
1731
+ ],
1732
+ "args": []
1733
+ },
1734
+ {
1735
+ "name": "delete_contract",
1736
+ "docs": ["Delete contract state (dev-only for schema migrations)"],
1737
+ "discriminator": [189, 115, 12, 22, 241, 49, 35, 6],
1738
+ "accounts": [
1739
+ {
1740
+ "name": "admin",
1741
+ "writable": true,
1742
+ "signer": true
1743
+ },
1744
+ {
1745
+ "name": "config",
1746
+ "docs": ["Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."],
1747
+ "pda": {
1748
+ "seeds": [
1749
+ {
1750
+ "kind": "const",
1751
+ "value": [99, 111, 110, 102, 105, 103]
1752
+ }
1753
+ ]
1754
+ }
1755
+ },
1756
+ {
1757
+ "name": "owner",
1758
+ "writable": true
1759
+ },
1760
+ {
1761
+ "name": "contract",
1762
+ "writable": true
1763
+ }
1764
+ ],
1765
+ "args": []
1766
+ },
1767
+ {
1768
+ "name": "delete_contract_thread",
1769
+ "docs": [
1770
+ "Admin-only thread deletion for schema migrations / redeployments.",
1771
+ "Like close_contract_thread but uses admin auth and skips contract deserialization."
1772
+ ],
1773
+ "discriminator": [113, 179, 247, 242, 60, 125, 240, 68],
1774
+ "accounts": [
1775
+ {
1776
+ "name": "admin",
1777
+ "writable": true,
1778
+ "signer": true
1779
+ },
1780
+ {
1781
+ "name": "config",
1782
+ "docs": ["Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."],
1783
+ "pda": {
1784
+ "seeds": [
1785
+ {
1786
+ "kind": "const",
1787
+ "value": [99, 111, 110, 102, 105, 103]
1788
+ }
1789
+ ]
1790
+ }
1791
+ },
1792
+ {
1793
+ "name": "rental_authority",
1794
+ "pda": {
1795
+ "seeds": [
1796
+ {
1797
+ "kind": "const",
1798
+ "value": [
1799
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
1800
+ ]
1801
+ }
1802
+ ]
1803
+ }
1804
+ },
1805
+ {
1806
+ "name": "thread",
1807
+ "writable": true
1808
+ },
1809
+ {
1810
+ "name": "antegen_program",
1811
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
1812
+ },
1813
+ {
1814
+ "name": "fiber_program",
1815
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
1816
+ },
1817
+ {
1818
+ "name": "system_program",
1819
+ "address": "11111111111111111111111111111111"
1820
+ }
1821
+ ],
1822
+ "args": []
1823
+ },
1824
+ {
1825
+ "name": "delete_rental",
1826
+ "docs": [
1827
+ "Delete rental state (admin-only for schema migrations).",
1828
+ "After deletion, use release_rental to clean up thread + SAGE fleet."
1829
+ ],
1830
+ "discriminator": [252, 24, 115, 220, 135, 174, 69, 172],
1831
+ "accounts": [
1832
+ {
1833
+ "name": "admin",
1834
+ "writable": true,
1835
+ "signer": true
1836
+ },
1837
+ {
1838
+ "name": "config",
1839
+ "docs": ["Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."],
1840
+ "pda": {
1841
+ "seeds": [
1842
+ {
1843
+ "kind": "const",
1844
+ "value": [99, 111, 110, 102, 105, 103]
1845
+ }
1846
+ ]
1847
+ }
1848
+ },
1849
+ {
1850
+ "name": "borrower",
1851
+ "docs": ["If borrower is system_program::ID (empty slot), lamports go to admin instead."],
1852
+ "writable": true
1853
+ },
1854
+ {
1855
+ "name": "rental_state",
1856
+ "writable": true
1857
+ }
1858
+ ],
1859
+ "args": []
1860
+ },
1861
+ {
1862
+ "name": "invalidate_rental",
1863
+ "docs": [
1864
+ "Invalidate a fleet's rental status in SAGE when contract doesn't exist.",
1865
+ "Use when fleet is stuck but borrower is unknown and contract was never created."
1866
+ ],
1867
+ "discriminator": [180, 183, 106, 153, 255, 8, 232, 178],
1868
+ "accounts": [
1869
+ {
1870
+ "name": "signer",
1871
+ "writable": true,
1872
+ "signer": true
1873
+ },
1874
+ {
1875
+ "name": "fleet",
1876
+ "docs": [
1877
+ "Fleet to release from rental control",
1878
+ "- Must be in rental mode (sub_profile != default)",
1879
+ "- SRSLY must be the invalidator"
1880
+ ],
1881
+ "writable": true
1882
+ },
1883
+ {
1884
+ "name": "game_id"
1885
+ },
1886
+ {
1887
+ "name": "starbase"
1888
+ },
1889
+ {
1890
+ "name": "starbase_player",
1891
+ "writable": true
1892
+ },
1893
+ {
1894
+ "name": "contract",
1895
+ "docs": ["If contract exists, use rental_release instead"],
1896
+ "pda": {
1897
+ "seeds": [
1898
+ {
1899
+ "kind": "const",
1900
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
1901
+ },
1902
+ {
1903
+ "kind": "account",
1904
+ "path": "fleet"
1905
+ }
1906
+ ]
1907
+ }
1908
+ },
1909
+ {
1910
+ "name": "rental_authority",
1911
+ "pda": {
1912
+ "seeds": [
1913
+ {
1914
+ "kind": "const",
1915
+ "value": [
1916
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
1917
+ ]
1918
+ }
1919
+ ]
1920
+ }
1921
+ },
1922
+ {
1923
+ "name": "sage_program"
1924
+ }
1925
+ ],
1926
+ "args": []
1927
+ },
1928
+ {
1929
+ "name": "process_contract",
1930
+ "docs": [
1931
+ "Controller fiber (fiber 0) — checks state, settles escrow, dispatches.",
1932
+ "Called by antegen thread executor automatically."
1933
+ ],
1934
+ "discriminator": [203, 109, 39, 44, 150, 50, 210, 78],
1935
+ "accounts": [
1936
+ {
1937
+ "name": "contract_thread",
1938
+ "writable": true,
1939
+ "signer": true
1940
+ },
1941
+ {
1942
+ "name": "config",
1943
+ "pda": {
1944
+ "seeds": [
1945
+ {
1946
+ "kind": "const",
1947
+ "value": [99, 111, 110, 102, 105, 103]
1948
+ }
1949
+ ]
1950
+ }
1951
+ },
1952
+ {
1953
+ "name": "contract",
1954
+ "writable": true,
1955
+ "pda": {
1956
+ "seeds": [
1957
+ {
1958
+ "kind": "const",
1959
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
1960
+ },
1961
+ {
1962
+ "kind": "account",
1963
+ "path": "contract.fleet",
1964
+ "account": "ContractState"
1965
+ }
1966
+ ]
1967
+ }
1968
+ },
1969
+ {
1970
+ "name": "active_rental",
1971
+ "writable": true,
1972
+ "pda": {
1973
+ "seeds": [
1974
+ {
1975
+ "kind": "const",
1976
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1977
+ },
1978
+ {
1979
+ "kind": "account",
1980
+ "path": "contract"
1981
+ },
1982
+ {
1983
+ "kind": "const",
1984
+ "value": [97, 99, 116, 105, 118, 101]
1985
+ }
1986
+ ]
1987
+ }
1988
+ },
1989
+ {
1990
+ "name": "queued_rental",
1991
+ "writable": true,
1992
+ "pda": {
1993
+ "seeds": [
1994
+ {
1995
+ "kind": "const",
1996
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
1997
+ },
1998
+ {
1999
+ "kind": "account",
2000
+ "path": "contract"
2001
+ },
2002
+ {
2003
+ "kind": "const",
2004
+ "value": [113, 117, 101, 117, 101, 100]
2005
+ }
2006
+ ]
2007
+ }
2008
+ },
2009
+ {
2010
+ "name": "owner",
2011
+ "writable": true
2012
+ },
2013
+ {
2014
+ "name": "fleet",
2015
+ "docs": ["Fleet for SAGE invalidation on close"],
2016
+ "writable": true
2017
+ },
2018
+ {
2019
+ "name": "contract_token_account",
2020
+ "docs": ["Contract's escrow token account (source of tokens)"],
2021
+ "writable": true
2022
+ },
2023
+ {
2024
+ "name": "owner_token_account",
2025
+ "docs": ["Owner's destination token account (created by contract_thread)"],
2026
+ "writable": true
2027
+ },
2028
+ {
2029
+ "name": "rental_authority",
2030
+ "writable": true,
2031
+ "pda": {
2032
+ "seeds": [
2033
+ {
2034
+ "kind": "const",
2035
+ "value": [
2036
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
2037
+ ]
2038
+ }
2039
+ ]
2040
+ }
2041
+ },
2042
+ {
2043
+ "name": "sage_program"
2044
+ },
2045
+ {
2046
+ "name": "token_program",
2047
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2048
+ },
2049
+ {
2050
+ "name": "system_program",
2051
+ "address": "11111111111111111111111111111111"
2052
+ }
2053
+ ],
2054
+ "args": [],
2055
+ "returns": {
2056
+ "defined": {
2057
+ "name": "Signal"
2058
+ }
2059
+ }
2060
+ },
2061
+ {
2062
+ "name": "release_rental",
2063
+ "docs": [
2064
+ "Release a fleet from rental control regardless of state.",
2065
+ "Emergency function to free stuck fleets by invalidating rental in SAGE."
2066
+ ],
2067
+ "discriminator": [99, 35, 221, 147, 185, 205, 23, 12],
2068
+ "accounts": [
2069
+ {
2070
+ "name": "signer",
2071
+ "writable": true,
2072
+ "signer": true
2073
+ },
2074
+ {
2075
+ "name": "fleet",
2076
+ "docs": [
2077
+ "Fleet to release from rental control",
2078
+ "- Must be in rental mode (sub_profile != default)",
2079
+ "- SRSLY must be the invalidator"
2080
+ ],
2081
+ "writable": true
2082
+ },
2083
+ {
2084
+ "name": "game_id"
2085
+ },
2086
+ {
2087
+ "name": "starbase"
2088
+ },
2089
+ {
2090
+ "name": "starbase_player",
2091
+ "writable": true
2092
+ },
2093
+ {
2094
+ "name": "contract",
2095
+ "docs": [
2096
+ "Contract must exist - if contract doesn't exist, use rental_invalidate instead",
2097
+ "Constraint ensures no active rental (both slots empty)"
2098
+ ],
2099
+ "pda": {
2100
+ "seeds": [
2101
+ {
2102
+ "kind": "const",
2103
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
2104
+ },
2105
+ {
2106
+ "kind": "account",
2107
+ "path": "fleet"
2108
+ }
2109
+ ]
2110
+ }
2111
+ },
2112
+ {
2113
+ "name": "rental_authority",
2114
+ "pda": {
2115
+ "seeds": [
2116
+ {
2117
+ "kind": "const",
2118
+ "value": [
2119
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
2120
+ ]
2121
+ }
2122
+ ]
2123
+ }
2124
+ },
2125
+ {
2126
+ "name": "sage_program"
2127
+ }
2128
+ ],
2129
+ "args": []
2130
+ },
2131
+ {
2132
+ "name": "reserve_rental",
2133
+ "docs": [
2134
+ "Reserve a rental and queue it for activation when the current rental ends.",
2135
+ "",
2136
+ "Combines the old reserve + claim flow: the reservation IS the queued rental.",
2137
+ "Escrow is transferred immediately and the rental is queued for activation.",
2138
+ "",
2139
+ "# Arguments",
2140
+ "* `bid_points` - Points to bid (burned; 0 if ATLAS bid)",
2141
+ "* `bid_atlas` - ATLAS premium to bid (0 if points bid)",
2142
+ "* `duration` - Rental duration in seconds"
2143
+ ],
2144
+ "discriminator": [5, 180, 4, 150, 64, 120, 189, 128],
2145
+ "accounts": [
2146
+ {
2147
+ "name": "challenger",
2148
+ "writable": true,
2149
+ "signer": true
2150
+ },
2151
+ {
2152
+ "name": "config",
2153
+ "writable": true,
2154
+ "pda": {
2155
+ "seeds": [
2156
+ {
2157
+ "kind": "const",
2158
+ "value": [99, 111, 110, 102, 105, 103]
2159
+ }
2160
+ ]
2161
+ }
2162
+ },
2163
+ {
2164
+ "name": "contract",
2165
+ "writable": true,
2166
+ "pda": {
2167
+ "seeds": [
2168
+ {
2169
+ "kind": "const",
2170
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
2171
+ },
2172
+ {
2173
+ "kind": "account",
2174
+ "path": "contract.fleet",
2175
+ "account": "ContractState"
2176
+ }
2177
+ ]
2178
+ }
2179
+ },
2180
+ {
2181
+ "name": "contract_thread",
2182
+ "writable": true
2183
+ },
2184
+ {
2185
+ "name": "close_rental_fiber",
2186
+ "writable": true
2187
+ },
2188
+ {
2189
+ "name": "contract_token_account",
2190
+ "docs": ["Contract's token account for ATLAS escrow"],
2191
+ "writable": true
2192
+ },
2193
+ {
2194
+ "name": "defender_state",
2195
+ "docs": ["Defender's borrower state (required when knocking off a defender)"],
2196
+ "writable": true,
2197
+ "optional": true
2198
+ },
2199
+ {
2200
+ "name": "defender_managed_token_account",
2201
+ "docs": [
2202
+ "Defender's managed token account (ATA of defender's BorrowerState PDA)",
2203
+ "Used to refund ATLAS when knocking off defender"
2204
+ ],
2205
+ "writable": true,
2206
+ "optional": true
2207
+ },
2208
+ {
2209
+ "name": "challenger_state",
2210
+ "writable": true,
2211
+ "pda": {
2212
+ "seeds": [
2213
+ {
2214
+ "kind": "const",
2215
+ "value": [98, 111, 114, 114, 111, 119, 101, 114, 95, 115, 116, 97, 116, 101]
2216
+ },
2217
+ {
2218
+ "kind": "account",
2219
+ "path": "challenger"
2220
+ }
2221
+ ]
2222
+ }
2223
+ },
2224
+ {
2225
+ "name": "challenger_token_account",
2226
+ "docs": [
2227
+ "Challenger's ATLAS token account (funding source -- required for escrow transfer)"
2228
+ ],
2229
+ "writable": true,
2230
+ "pda": {
2231
+ "seeds": [
2232
+ {
2233
+ "kind": "account",
2234
+ "path": "challenger"
2235
+ },
2236
+ {
2237
+ "kind": "const",
2238
+ "value": [
2239
+ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28,
2240
+ 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169
2241
+ ]
2242
+ },
2243
+ {
2244
+ "kind": "account",
2245
+ "path": "config.atlas_mint",
2246
+ "account": "ConfigState"
2247
+ }
2248
+ ],
2249
+ "program": {
2250
+ "kind": "const",
2251
+ "value": [
2252
+ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19,
2253
+ 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89
2254
+ ]
2255
+ }
2256
+ }
2257
+ },
2258
+ {
2259
+ "name": "active_rental",
2260
+ "docs": ["Active rental slot (read-only, needed for fiber rebuild)"],
2261
+ "pda": {
2262
+ "seeds": [
2263
+ {
2264
+ "kind": "const",
2265
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
2266
+ },
2267
+ {
2268
+ "kind": "account",
2269
+ "path": "contract"
2270
+ },
2271
+ {
2272
+ "kind": "const",
2273
+ "value": [97, 99, 116, 105, 118, 101]
2274
+ }
2275
+ ]
2276
+ }
2277
+ },
2278
+ {
2279
+ "name": "rental_state",
2280
+ "docs": [
2281
+ "Queued rental state PDA — must be Available OR occupied by defender being knocked off"
2282
+ ],
2283
+ "writable": true,
2284
+ "pda": {
2285
+ "seeds": [
2286
+ {
2287
+ "kind": "const",
2288
+ "value": [114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101]
2289
+ },
2290
+ {
2291
+ "kind": "account",
2292
+ "path": "contract"
2293
+ },
2294
+ {
2295
+ "kind": "const",
2296
+ "value": [113, 117, 101, 117, 101, 100]
2297
+ }
2298
+ ]
2299
+ }
2300
+ },
2301
+ {
2302
+ "name": "referrer",
2303
+ "writable": true,
2304
+ "optional": true
2305
+ },
2306
+ {
2307
+ "name": "rental_authority",
2308
+ "pda": {
2309
+ "seeds": [
2310
+ {
2311
+ "kind": "const",
2312
+ "value": [
2313
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
2314
+ ]
2315
+ }
2316
+ ]
2317
+ }
2318
+ },
2319
+ {
2320
+ "name": "sage_program"
2321
+ },
2322
+ {
2323
+ "name": "antegen_program",
2324
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
2325
+ },
2326
+ {
2327
+ "name": "fiber_program",
2328
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
2329
+ },
2330
+ {
2331
+ "name": "token_program",
2332
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2333
+ },
2334
+ {
2335
+ "name": "associated_token_program",
2336
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
2337
+ },
2338
+ {
2339
+ "name": "system_program",
2340
+ "address": "11111111111111111111111111111111"
2341
+ }
2342
+ ],
2343
+ "args": [
2344
+ {
2345
+ "name": "bid_points",
2346
+ "type": "u64"
2347
+ },
2348
+ {
2349
+ "name": "bid_atlas",
2350
+ "type": "u64"
2351
+ },
2352
+ {
2353
+ "name": "duration",
2354
+ "type": "i64"
2355
+ }
2356
+ ]
2357
+ },
2358
+ {
2359
+ "name": "set_delegate",
2360
+ "docs": [
2361
+ "Set or remove a delegate address that can update the contract rate.",
2362
+ "Only the owner can set/remove delegates."
2363
+ ],
2364
+ "discriminator": [242, 30, 46, 76, 108, 235, 128, 181],
2365
+ "accounts": [
2366
+ {
2367
+ "name": "owner",
2368
+ "writable": true,
2369
+ "signer": true,
2370
+ "relations": ["contract"]
2371
+ },
2372
+ {
2373
+ "name": "contract",
2374
+ "writable": true
2375
+ }
2376
+ ],
2377
+ "args": [
2378
+ {
2379
+ "name": "delegate",
2380
+ "type": {
2381
+ "option": "pubkey"
2382
+ }
2383
+ }
2384
+ ]
2385
+ },
2386
+ {
2387
+ "name": "update_config",
2388
+ "docs": ["Update program configuration. Only callable by config authority."],
2389
+ "discriminator": [29, 158, 252, 191, 10, 83, 219, 99],
2390
+ "accounts": [
2391
+ {
2392
+ "name": "admin",
2393
+ "signer": true,
2394
+ "relations": ["config"]
2395
+ },
2396
+ {
2397
+ "name": "config",
2398
+ "writable": true,
2399
+ "pda": {
2400
+ "seeds": [
2401
+ {
2402
+ "kind": "const",
2403
+ "value": [99, 111, 110, 102, 105, 103]
2404
+ }
2405
+ ]
2406
+ }
2407
+ }
2408
+ ],
2409
+ "args": [
2410
+ {
2411
+ "name": "params",
2412
+ "type": {
2413
+ "defined": {
2414
+ "name": "ConfigUpdateParams"
2415
+ }
2416
+ }
2417
+ }
2418
+ ]
2419
+ },
2420
+ {
2421
+ "name": "update_contract",
2422
+ "docs": [
2423
+ "Update rental contract settings.",
2424
+ "Owner can update all settings, delegate can only update rate."
2425
+ ],
2426
+ "discriminator": [78, 184, 162, 174, 233, 5, 40, 82],
2427
+ "accounts": [
2428
+ {
2429
+ "name": "authority",
2430
+ "writable": true,
2431
+ "signer": true
2432
+ },
2433
+ {
2434
+ "name": "config",
2435
+ "pda": {
2436
+ "seeds": [
2437
+ {
2438
+ "kind": "const",
2439
+ "value": [99, 111, 110, 102, 105, 103]
2440
+ }
2441
+ ]
2442
+ }
2443
+ },
2444
+ {
2445
+ "name": "contract",
2446
+ "writable": true
2447
+ }
2448
+ ],
2449
+ "args": [
2450
+ {
2451
+ "name": "params",
2452
+ "type": {
2453
+ "defined": {
2454
+ "name": "ContractUpdateParams"
2455
+ }
2456
+ }
2457
+ }
2458
+ ]
2459
+ },
2460
+ {
2461
+ "name": "update_contract_thread",
2462
+ "docs": ["Fund a contract thread with SOL and/or update settlement frequency."],
2463
+ "discriminator": [183, 75, 119, 98, 134, 24, 187, 91],
2464
+ "accounts": [
2465
+ {
2466
+ "name": "payer",
2467
+ "writable": true,
2468
+ "signer": true
2469
+ },
2470
+ {
2471
+ "name": "config",
2472
+ "pda": {
2473
+ "seeds": [
2474
+ {
2475
+ "kind": "const",
2476
+ "value": [99, 111, 110, 102, 105, 103]
2477
+ }
2478
+ ]
2479
+ }
2480
+ },
2481
+ {
2482
+ "name": "contract",
2483
+ "writable": true,
2484
+ "pda": {
2485
+ "seeds": [
2486
+ {
2487
+ "kind": "const",
2488
+ "value": [114, 101, 110, 116, 97, 108, 95, 99, 111, 110, 116, 114, 97, 99, 116]
2489
+ },
2490
+ {
2491
+ "kind": "account",
2492
+ "path": "contract.fleet",
2493
+ "account": "ContractState"
2494
+ }
2495
+ ]
2496
+ }
2497
+ },
2498
+ {
2499
+ "name": "rental_authority",
2500
+ "writable": true,
2501
+ "pda": {
2502
+ "seeds": [
2503
+ {
2504
+ "kind": "const",
2505
+ "value": [
2506
+ 114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121
2507
+ ]
2508
+ }
2509
+ ]
2510
+ }
2511
+ },
2512
+ {
2513
+ "name": "contract_thread",
2514
+ "writable": true
2515
+ },
2516
+ {
2517
+ "name": "antegen_program",
2518
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
2519
+ },
2520
+ {
2521
+ "name": "system_program",
2522
+ "address": "11111111111111111111111111111111"
2523
+ }
2524
+ ],
2525
+ "args": [
2526
+ {
2527
+ "name": "lamports",
2528
+ "type": "u64"
2529
+ },
2530
+ {
2531
+ "name": "payments_freq",
2532
+ "type": {
2533
+ "option": "string"
2534
+ }
2535
+ }
2536
+ ]
2537
+ }
2538
+ ],
2539
+ "accounts": [
2540
+ {
2541
+ "name": "BorrowerState",
2542
+ "discriminator": [160, 47, 174, 209, 255, 213, 193, 235]
2543
+ },
2544
+ {
2545
+ "name": "ConfigState",
2546
+ "discriminator": [193, 77, 160, 128, 208, 254, 180, 135]
2547
+ },
2548
+ {
2549
+ "name": "ContractState",
2550
+ "discriminator": [190, 138, 10, 223, 189, 116, 222, 115]
2551
+ },
2552
+ {
2553
+ "name": "RentalState",
2554
+ "discriminator": [97, 162, 29, 222, 251, 251, 180, 244]
2555
+ }
2556
+ ],
2557
+ "events": [
2558
+ {
2559
+ "name": "FeesPaid",
2560
+ "discriminator": [71, 98, 195, 210, 40, 81, 73, 159]
2561
+ },
2562
+ {
2563
+ "name": "OwnerPaid",
2564
+ "discriminator": [135, 160, 107, 250, 183, 233, 175, 124]
2565
+ },
2566
+ {
2567
+ "name": "RentalAccepted",
2568
+ "discriminator": [72, 237, 15, 82, 177, 184, 244, 201]
2569
+ },
2570
+ {
2571
+ "name": "RentalCancelled",
2572
+ "discriminator": [7, 110, 25, 158, 197, 48, 12, 238]
2573
+ },
2574
+ {
2575
+ "name": "RentalClosed",
2576
+ "discriminator": [77, 252, 165, 5, 168, 29, 237, 40]
2577
+ },
2578
+ {
2579
+ "name": "RentalSettled",
2580
+ "discriminator": [170, 51, 180, 247, 186, 122, 168, 59]
2581
+ }
2582
+ ],
2583
+ "errors": [
2584
+ {
2585
+ "code": 6000,
2586
+ "name": "Unauthorized",
2587
+ "msg": "Unauthorized to use this instruction. Check that you have the correct authority."
2588
+ },
2589
+ {
2590
+ "code": 6001,
2591
+ "name": "InvalidDurationMinimum",
2592
+ "msg": "Invalid duration minimum. Must be between configured minimum and the contract's duration maximum."
2593
+ },
2594
+ {
2595
+ "code": 6002,
2596
+ "name": "InvalidDurationMaximum",
2597
+ "msg": "Invalid duration maximum. Must be greater than or equal to duration minimum and less than config maximum."
2598
+ },
2599
+ {
2600
+ "code": 6003,
2601
+ "name": "InvalidRateCalculation",
2602
+ "msg": "Invalid payment amount (rate * payment periods). Check your calculation."
2603
+ },
2604
+ {
2605
+ "code": 6004,
2606
+ "name": "FleetAlreadyRented",
2607
+ "msg": "Fleet is already rented. Wait for current rental to end or be cancelled."
2608
+ },
2609
+ {
2610
+ "code": 6005,
2611
+ "name": "InvalidRate",
2612
+ "msg": "Invalid rental rate. Rate must be greater than or equal to 0 ATLAS."
2613
+ },
2614
+ {
2615
+ "code": 6006,
2616
+ "name": "InvalidPaymentFrequency",
2617
+ "msg": "Invalid payment frequency. Must be one of the allowed frequencies configured in the program."
2618
+ },
2619
+ {
2620
+ "code": 6007,
2621
+ "name": "InsufficientCancellationNotice",
2622
+ "msg": "Insufficient cancellation notice. Must cancel at least one payment period before rental ends."
2623
+ },
2624
+ {
2625
+ "code": 6008,
2626
+ "name": "DelayExceedsTimeRemaining",
2627
+ "msg": "Cancellation delay exceeds time remaining. cancel_delay must be <= time remaining until rental ends."
2628
+ },
2629
+ {
2630
+ "code": 6009,
2631
+ "name": "ContractClosed",
2632
+ "msg": "Contract is closed and no longer accepts rentals. Find another available fleet."
2633
+ },
2634
+ {
2635
+ "code": 6010,
2636
+ "name": "InvalidThreadContext",
2637
+ "msg": "Thread has invalid execution context. Thread may have been corrupted or incorrectly initialized."
2638
+ },
2639
+ {
2640
+ "code": 6011,
2641
+ "name": "RentalIsActive",
2642
+ "msg": "Rental is still active. Wait for it to expire or use rental_cancel to end early."
2643
+ },
2644
+ {
2645
+ "code": 6012,
2646
+ "name": "RentalStateExists",
2647
+ "msg": "Rental state still exists. Cannot reset fleet until rental state is properly closed."
2648
+ },
2649
+ {
2650
+ "code": 6013,
2651
+ "name": "InvalidFeeRate",
2652
+ "msg": "Invalid fee rate. Service fee must be <= 10% (1000 bps), base_bps must be > 0."
2653
+ },
2654
+ {
2655
+ "code": 6014,
2656
+ "name": "InvalidRentalDuration",
2657
+ "msg": "Invalid rental duration. Min >= 1 hour, max >= min, max <= 3 months."
2658
+ },
2659
+ {
2660
+ "code": 6015,
2661
+ "name": "UnauthorizedConfigUpdate",
2662
+ "msg": "Only the config authority can update settings. Check the authority address."
2663
+ },
2664
+ {
2665
+ "code": 6016,
2666
+ "name": "InvalidAtlasConversionRate",
2667
+ "msg": "Invalid ATLAS conversion rate. Must be greater than 0 (typically 100,000,000 for 1 ATLAS)."
2668
+ },
2669
+ {
2670
+ "code": 6017,
2671
+ "name": "AccountOwnedByWrongProgram",
2672
+ "msg": "Account is owned by a different program than expected. Check account initialization."
2673
+ },
2674
+ {
2675
+ "code": 6018,
2676
+ "name": "InvalidDurationMinimumAlignment",
2677
+ "msg": "Duration minimum must be a multiple of the payment frequency (e.g., daily = 86400 seconds)."
2678
+ },
2679
+ {
2680
+ "code": 6019,
2681
+ "name": "InvalidDurationMaximumAlignment",
2682
+ "msg": "Duration maximum must be a multiple of the payment frequency (e.g., daily = 86400 seconds)."
2683
+ },
2684
+ {
2685
+ "code": 6020,
2686
+ "name": "RentalExpired",
2687
+ "msg": "Rental has expired. Use rental_close instruction to process final payment and clean up."
2688
+ },
2689
+ {
2690
+ "code": 6021,
2691
+ "name": "InvalidThread",
2692
+ "msg": "Thread account does not match the rental state's thread reference. Use the correct thread."
2693
+ },
2694
+ {
2695
+ "code": 6022,
2696
+ "name": "RentalAlreadyCancelled",
2697
+ "msg": "Rental has already been cancelled. No further action needed."
2698
+ },
2699
+ {
2700
+ "code": 6023,
2701
+ "name": "InvalidStarbase",
2702
+ "msg": "Invalid starbase - doesn't match stored value in rental state."
2703
+ },
2704
+ {
2705
+ "code": 6024,
2706
+ "name": "InvalidStarbasePlayer",
2707
+ "msg": "Invalid starbase player - doesn't match stored value in rental state."
2708
+ },
2709
+ {
2710
+ "code": 6025,
2711
+ "name": "InactiveReferrer",
2712
+ "msg": "Referral is not active"
2713
+ },
2714
+ {
2715
+ "code": 6026,
2716
+ "name": "InvalidAuthority",
2717
+ "msg": "Invalid authority for this operation"
2718
+ },
2719
+ {
2720
+ "code": 6027,
2721
+ "name": "InvalidSplitPercentages",
2722
+ "msg": "Payment split percentages must sum to 100%"
2723
+ },
2724
+ {
2725
+ "code": 6028,
2726
+ "name": "InvalidSplitConfig",
2727
+ "msg": "Invalid payment split configuration"
2728
+ },
2729
+ {
2730
+ "code": 6029,
2731
+ "name": "ReferrerAlreadySet",
2732
+ "msg": "Referrer has already been set and cannot be changed"
2733
+ },
2734
+ {
2735
+ "code": 6030,
2736
+ "name": "ExpiredBorrowerStateRequired",
2737
+ "msg": "Please provide the expired borrower's state"
2738
+ },
2739
+ {
2740
+ "code": 6031,
2741
+ "name": "NoReferrerSet",
2742
+ "msg": "Borrower has not set a referrer"
2743
+ },
2744
+ {
2745
+ "code": 6032,
2746
+ "name": "ReferrerMismatch",
2747
+ "msg": "Referrer does not match borrower's chosen referrer"
2748
+ },
2749
+ {
2750
+ "code": 6033,
2751
+ "name": "InvalidRecipient",
2752
+ "msg": "Invalid recipient for claim"
2753
+ },
2754
+ {
2755
+ "code": 6034,
2756
+ "name": "NoClaimableBalance",
2757
+ "msg": "No claimable balance available"
2758
+ },
2759
+ {
2760
+ "code": 6035,
2761
+ "name": "InvalidTokenAccount",
2762
+ "msg": "Invalid token account - same as current"
2763
+ },
2764
+ {
2765
+ "code": 6036,
2766
+ "name": "InvalidOwnerTokenAccount",
2767
+ "msg": "Owner token account address does not match the address stored in rental state"
2768
+ },
2769
+ {
2770
+ "code": 6037,
2771
+ "name": "MissingThreadAccounts",
2772
+ "msg": "Missing required accounts for thread creation"
2773
+ },
2774
+ {
2775
+ "code": 6038,
2776
+ "name": "InvalidClaimSchedule",
2777
+ "msg": "Invalid claim schedule. Must be @daily, @weekly, or @monthly"
2778
+ },
2779
+ {
2780
+ "code": 6039,
2781
+ "name": "InvalidPercentage",
2782
+ "msg": "Invalid percentage value. Must be <= 10000 basis points (100%)"
2783
+ },
2784
+ {
2785
+ "code": 6040,
2786
+ "name": "FleetHasActiveReservation",
2787
+ "msg": "Fleet has an active reservation. Must wait for exclusive window to expire or be the reservation holder."
2788
+ },
2789
+ {
2790
+ "code": 6041,
2791
+ "name": "InvalidReservationHolder",
2792
+ "msg": "Invalid reservation holder specified"
2793
+ },
2794
+ {
2795
+ "code": 6042,
2796
+ "name": "ContractNotRented",
2797
+ "msg": "Contract is not currently rented. Only active rentals can be reserved."
2798
+ },
2799
+ {
2800
+ "code": 6043,
2801
+ "name": "NotReservationHolder",
2802
+ "msg": "Not the current reservation holder"
2803
+ },
2804
+ {
2805
+ "code": 6044,
2806
+ "name": "ExclusiveWindowActive",
2807
+ "msg": "Exclusive reservation window is active. Cannot process new reservation."
2808
+ },
2809
+ {
2810
+ "code": 6045,
2811
+ "name": "InsufficientPointsForClaim",
2812
+ "msg": "Insufficient points to claim the reservation"
2813
+ },
2814
+ {
2815
+ "code": 6046,
2816
+ "name": "InvalidNonce",
2817
+ "msg": "Invalid nonce for reservation PDA"
2818
+ },
2819
+ {
2820
+ "code": 6047,
2821
+ "name": "InvalidCloseTarget",
2822
+ "msg": "Invalid close target for reservation account"
2823
+ },
2824
+ {
2825
+ "code": 6048,
2826
+ "name": "ReservationStillActive",
2827
+ "msg": "Reservation is still active. Must wait for expiry."
2828
+ },
2829
+ {
2830
+ "code": 6049,
2831
+ "name": "InsufficientPointsToReserve",
2832
+ "msg": "Insufficient points to take over the reservation"
2833
+ },
2834
+ {
2835
+ "code": 6050,
2836
+ "name": "InvalidReservationRateMultiplier",
2837
+ "msg": "Invalid reservation rate multiplier. Must be at least 10000 basis points (100%)."
2838
+ },
2839
+ {
2840
+ "code": 6051,
2841
+ "name": "ExcessiveReservationRateMultiplier",
2842
+ "msg": "Excessive reservation rate multiplier. Cannot exceed 20000 basis points (200%)."
2843
+ },
2844
+ {
2845
+ "code": 6052,
2846
+ "name": "ReservationsDisabled",
2847
+ "msg": "Reservation system is disabled"
2848
+ },
2849
+ {
2850
+ "code": 6053,
2851
+ "name": "MissingRequiredAccount",
2852
+ "msg": "Missing required account for operation"
2853
+ },
2854
+ {
2855
+ "code": 6054,
2856
+ "name": "InvalidConfig",
2857
+ "msg": "Invalid configuration parameter"
2858
+ },
2859
+ {
2860
+ "code": 6055,
2861
+ "name": "InvalidDefender",
2862
+ "msg": "Invalid defender - does not match current reservation holder"
2863
+ },
2864
+ {
2865
+ "code": 6056,
2866
+ "name": "InvalidSplit",
2867
+ "msg": "Invalid split - split authority not found in payment splits"
2868
+ },
2869
+ {
2870
+ "code": 6057,
2871
+ "name": "InvalidReferralRate",
2872
+ "msg": "Invalid referral rate configuration"
2873
+ },
2874
+ {
2875
+ "code": 6058,
2876
+ "name": "ReferralNotEnabled",
2877
+ "msg": "Referrals are not enabled for this split"
2878
+ },
2879
+ {
2880
+ "code": 6059,
2881
+ "name": "NoFeesToClaim",
2882
+ "msg": "No fees available to claim"
2883
+ },
2884
+ {
2885
+ "code": 6060,
2886
+ "name": "ActiveRentalExist",
2887
+ "msg": "Cannot close account while active rental(s) exist"
2888
+ },
2889
+ {
2890
+ "code": 6061,
2891
+ "name": "CannotReleaseActiveRental",
2892
+ "msg": "Cannot release an active rental. Either rental state must be closed or contract must show no active rental."
2893
+ },
2894
+ {
2895
+ "code": 6062,
2896
+ "name": "CloseRentalBeforeContract",
2897
+ "msg": "Cannot close contract while rental is active. Close the rental first using rental_close."
2898
+ },
2899
+ {
2900
+ "code": 6063,
2901
+ "name": "InstantCancelNotAllowed",
2902
+ "msg": "Instant cancellation not allowed for this contract. Owner must enable allow_instant_cancel."
2903
+ },
2904
+ {
2905
+ "code": 6064,
2906
+ "name": "CancelNotAllowed",
2907
+ "msg": "Cancel delay equals time remaining — cancellation would have no effect."
2908
+ },
2909
+ {
2910
+ "code": 6065,
2911
+ "name": "ContractReservationsDisabled",
2912
+ "msg": "Reservations disabled for this contract. Owner has opted out of reservation system."
2913
+ },
2914
+ {
2915
+ "code": 6066,
2916
+ "name": "AtlasReservationRequiresTokenAccounts",
2917
+ "msg": "ATLAS reservation requires token accounts"
2918
+ },
2919
+ {
2920
+ "code": 6067,
2921
+ "name": "InvalidAtlasAmount",
2922
+ "msg": "Invalid ATLAS amount for reservation (must be > 0)"
2923
+ },
2924
+ {
2925
+ "code": 6068,
2926
+ "name": "ContractExists",
2927
+ "msg": "Contract exists for this fleet. Use rental_release instead of rental_invalidate."
2928
+ },
2929
+ {
2930
+ "code": 6069,
2931
+ "name": "FleetNotRented",
2932
+ "msg": "Fleet is not currently rented (sub_profile is empty)."
2933
+ },
2934
+ {
2935
+ "code": 6070,
2936
+ "name": "NotCrownedWinner",
2937
+ "msg": "Not the crowned winner. Only the winner from reservation can claim during the claim window."
2938
+ },
2939
+ {
2940
+ "code": 6071,
2941
+ "name": "ClaimWindowExpired",
2942
+ "msg": "Claim window has expired. Fleet is now available for anyone via rental_accept."
2943
+ },
2944
+ {
2945
+ "code": 6072,
2946
+ "name": "QueueFull",
2947
+ "msg": "Queue is full. Both rental slots are occupied. Wait for current rental to close."
2948
+ },
2949
+ {
2950
+ "code": 6073,
2951
+ "name": "AlreadyScheduled",
2952
+ "msg": "Thread already scheduled for this rental. Cannot schedule again."
2953
+ },
2954
+ {
2955
+ "code": 6074,
2956
+ "name": "NoActiveRental",
2957
+ "msg": "No active rental exists. Use rental_accept instead of rental_claim."
2958
+ },
2959
+ {
2960
+ "code": 6075,
2961
+ "name": "ThreadNotScheduled",
2962
+ "msg": "Thread not scheduled. Call rental_schedule first or use manual payment mode."
2963
+ },
2964
+ {
2965
+ "code": 6076,
2966
+ "name": "InvalidRentalState",
2967
+ "msg": "Invalid rental state. The provided rental is not tracked by this contract."
2968
+ },
2969
+ {
2970
+ "code": 6077,
2971
+ "name": "InvalidRentalSlot",
2972
+ "msg": "Invalid rental slot. Passed slot does not match expected free slot."
2973
+ },
2974
+ {
2975
+ "code": 6078,
2976
+ "name": "RentalNotQueued",
2977
+ "msg": "Rental is not in Queued status. Only Queued rentals can be activated."
2978
+ },
2979
+ {
2980
+ "code": 6079,
2981
+ "name": "PreviousRentalActive",
2982
+ "msg": "Previous rental slot is still active. Wait for it to be closed first."
2983
+ },
2984
+ {
2985
+ "code": 6080,
2986
+ "name": "InvalidVault",
2987
+ "msg": "Invalid vault address. Does not match config.slyvault."
2988
+ },
2989
+ {
2990
+ "code": 6081,
2991
+ "name": "InsufficientAtlasForRefund",
2992
+ "msg": "Insufficient ATLAS in contract to refund reservation. Owner must fund contract first."
2993
+ },
2994
+ {
2995
+ "code": 6082,
2996
+ "name": "ContractPendingClose",
2997
+ "msg": "Contract is pending close. No new rentals or reservations allowed."
2998
+ },
2999
+ {
3000
+ "code": 6083,
3001
+ "name": "InvalidReferrer",
3002
+ "msg": "Referrer account does not match stored referrer on rental state."
3003
+ },
3004
+ {
3005
+ "code": 6084,
3006
+ "name": "ThreadStillExists",
3007
+ "msg": "Thread still exists. Close thread first using close_contract_thread."
3008
+ },
3009
+ {
3010
+ "code": 6085,
3011
+ "name": "InsufficientThreadFunding",
3012
+ "msg": "Insufficient SOL for thread creation. Minimum 0.04 SOL required for 3 fibers + thread rent."
3013
+ },
3014
+ {
3015
+ "code": 6086,
3016
+ "name": "InvalidDiscountContext",
3017
+ "msg": "Discount authorization context does not match contract"
3018
+ },
3019
+ {
3020
+ "code": 6087,
3021
+ "name": "AtlasBidRequired",
3022
+ "msg": "ATLAS bid required to knock off an ATLAS reservation"
3023
+ },
3024
+ {
3025
+ "code": 6088,
3026
+ "name": "InsufficientBid",
3027
+ "msg": "Bid is insufficient to knock off the current reservation"
3028
+ },
3029
+ {
3030
+ "code": 6089,
3031
+ "name": "BidRequired",
3032
+ "msg": "A non-zero bid is required to knock off an existing reservation"
3033
+ },
3034
+ {
3035
+ "code": 6090,
3036
+ "name": "PointsOrAtlasBidOnly",
3037
+ "msg": "Bid must be either points or ATLAS, not both"
3038
+ },
3039
+ {
3040
+ "code": 6091,
3041
+ "name": "DiscountNotLocked",
3042
+ "msg": "Discount must be locked before it can be used in activation"
3043
+ },
3044
+ {
3045
+ "code": 6092,
3046
+ "name": "MissingReferrer",
3047
+ "msg": "Referrer account required when discount params are provided"
3048
+ },
3049
+ {
3050
+ "code": 6093,
3051
+ "name": "OwnerCannotRent",
3052
+ "msg": "Owner cannot rent their own fleet"
3053
+ }
3054
+ ],
3055
+ "types": [
3056
+ {
3057
+ "name": "BorrowerState",
3058
+ "docs": [
3059
+ "Borrower state for storing preferences",
3060
+ "PDA: [BORROWER_STATE_SEED, authority.key()]"
3061
+ ],
3062
+ "type": {
3063
+ "kind": "struct",
3064
+ "fields": [
3065
+ {
3066
+ "name": "version",
3067
+ "docs": ["Account version for future migrations"],
3068
+ "type": "u32"
3069
+ },
3070
+ {
3071
+ "name": "bump",
3072
+ "docs": ["PDA bump seed"],
3073
+ "type": "u8"
3074
+ },
3075
+ {
3076
+ "name": "authority",
3077
+ "docs": ["Authority's wallet address (the borrower)"],
3078
+ "type": "pubkey"
3079
+ },
3080
+ {
3081
+ "name": "active_rentals",
3082
+ "docs": [
3083
+ "Currently tracked fleet rentals for point accumulation (max 10)",
3084
+ "NOTE: This is a limited tracker - see active_rental_count for true total"
3085
+ ],
3086
+ "type": {
3087
+ "vec": "pubkey"
3088
+ }
3089
+ },
3090
+ {
3091
+ "name": "active_rental_count",
3092
+ "docs": [
3093
+ "Total count of active rentals (true accounting, not limited by vec capacity)",
3094
+ "This ensures we track the real number even if active_rentals vec is full"
3095
+ ],
3096
+ "type": "u16"
3097
+ },
3098
+ {
3099
+ "name": "capture_points",
3100
+ "docs": ["Current capture points accumulated"],
3101
+ "type": "u64"
3102
+ },
3103
+ {
3104
+ "name": "managed_token_account",
3105
+ "docs": [
3106
+ "Managed token account for receiving ATLAS refunds from reservations",
3107
+ "Created via init_if_needed in rental_reserve"
3108
+ ],
3109
+ "type": "pubkey"
3110
+ },
3111
+ {
3112
+ "name": "created_at",
3113
+ "docs": ["Timestamp when borrower state was created"],
3114
+ "type": "i64"
3115
+ },
3116
+ {
3117
+ "name": "updated_at",
3118
+ "docs": ["Timestamp when borrower state was last updated"],
3119
+ "type": "i64"
3120
+ }
3121
+ ]
3122
+ }
3123
+ },
3124
+ {
3125
+ "name": "CargoStats",
3126
+ "docs": ["A ship's cargo stats"],
3127
+ "type": {
3128
+ "kind": "struct",
3129
+ "fields": [
3130
+ {
3131
+ "name": "cargo_capacity",
3132
+ "type": "u32"
3133
+ },
3134
+ {
3135
+ "name": "fuel_capacity",
3136
+ "type": "u32"
3137
+ },
3138
+ {
3139
+ "name": "ammo_capacity",
3140
+ "type": "u32"
3141
+ },
3142
+ {
3143
+ "name": "ammo_consumption_rate",
3144
+ "type": "u32"
3145
+ },
3146
+ {
3147
+ "name": "food_consumption_rate",
3148
+ "type": "u32"
3149
+ },
3150
+ {
3151
+ "name": "mining_rate",
3152
+ "type": "u32"
3153
+ },
3154
+ {
3155
+ "name": "upgrade_rate",
3156
+ "type": "u32"
3157
+ },
3158
+ {
3159
+ "name": "cargo_transfer_rate",
3160
+ "type": "u32"
3161
+ },
3162
+ {
3163
+ "name": "tractor_beam_gather_rate",
3164
+ "type": "u32"
3165
+ }
3166
+ ]
3167
+ }
3168
+ },
3169
+ {
3170
+ "name": "CombatStats",
3171
+ "docs": ["A ship's combat stats"],
3172
+ "type": {
3173
+ "kind": "struct",
3174
+ "fields": [
3175
+ {
3176
+ "name": "ap",
3177
+ "type": "u32"
3178
+ },
3179
+ {
3180
+ "name": "hp",
3181
+ "type": "u32"
3182
+ },
3183
+ {
3184
+ "name": "sp",
3185
+ "type": "u32"
3186
+ },
3187
+ {
3188
+ "name": "ammo_consumption_rate",
3189
+ "type": "u32"
3190
+ },
3191
+ {
3192
+ "name": "ap_regen_rate",
3193
+ "type": "u32"
3194
+ },
3195
+ {
3196
+ "name": "shield_recharge_rate",
3197
+ "type": "u32"
3198
+ },
3199
+ {
3200
+ "name": "repair_rate",
3201
+ "type": "u32"
3202
+ },
3203
+ {
3204
+ "name": "repair_ability",
3205
+ "type": "u32"
3206
+ },
3207
+ {
3208
+ "name": "repair_efficiency",
3209
+ "type": "u32"
3210
+ },
3211
+ {
3212
+ "name": "loot_rate",
3213
+ "type": "u32"
3214
+ },
3215
+ {
3216
+ "name": "shield_break_delay",
3217
+ "type": "u16"
3218
+ },
3219
+ {
3220
+ "name": "warp_spool_duration",
3221
+ "type": "u16"
3222
+ }
3223
+ ]
3224
+ }
3225
+ },
3226
+ {
3227
+ "name": "ConfigState",
3228
+ "docs": [
3229
+ "Global configuration for the SRSLY rental program.",
3230
+ "",
3231
+ "PDA derived from `CONFIG_SEED`. Contains system-wide settings including fees,",
3232
+ "duration limits, and payment frequencies. Only config admin can update."
3233
+ ],
3234
+ "type": {
3235
+ "kind": "struct",
3236
+ "fields": [
3237
+ {
3238
+ "name": "version",
3239
+ "docs": ["Account version for future migrations"],
3240
+ "type": "u32"
3241
+ },
3242
+ {
3243
+ "name": "bump",
3244
+ "docs": ["PDA bump seed"],
3245
+ "type": "u8"
3246
+ },
3247
+ {
3248
+ "name": "admin",
3249
+ "docs": ["Authority that can update configuration (admin)"],
3250
+ "type": "pubkey"
3251
+ },
3252
+ {
3253
+ "name": "stardust_to_atlas",
3254
+ "docs": ["Stardust to ATLAS conversion rate (default: 100M = 1 ATLAS)"],
3255
+ "type": "u64"
3256
+ },
3257
+ {
3258
+ "name": "service_fee_bps",
3259
+ "docs": ["Service fee in basis points (default: 1000 = 10%, max: 10%)"],
3260
+ "type": "u64"
3261
+ },
3262
+ {
3263
+ "name": "base_bps",
3264
+ "docs": ["Basis points denominator (default: 10,000)"],
3265
+ "type": "u16"
3266
+ },
3267
+ {
3268
+ "name": "rental_duration_min_seconds",
3269
+ "docs": ["Minimum rental duration (default: 3600s = 1 hour)"],
3270
+ "type": "i64"
3271
+ },
3272
+ {
3273
+ "name": "rental_duration_max_seconds",
3274
+ "docs": ["Maximum rental duration (default: 8,035,200s ≈ 3 months)"],
3275
+ "type": "i64"
3276
+ },
3277
+ {
3278
+ "name": "atlas_mint",
3279
+ "docs": ["ATLAS token mint for payments"],
3280
+ "type": "pubkey"
3281
+ },
3282
+ {
3283
+ "name": "slyvault",
3284
+ "docs": ["slyvault vault pubkey for fee distribution"],
3285
+ "type": "pubkey"
3286
+ },
3287
+ {
3288
+ "name": "reservations_enabled",
3289
+ "docs": ["Whether reservation system is enabled"],
3290
+ "type": "bool"
3291
+ },
3292
+ {
3293
+ "name": "points_per_day",
3294
+ "docs": ["Points awarded per day of rental"],
3295
+ "type": "u64"
3296
+ },
3297
+ {
3298
+ "name": "cancellation_penalty",
3299
+ "docs": ["Points lost on cancellation"],
3300
+ "type": "u64"
3301
+ },
3302
+ {
3303
+ "name": "min_capture_threshold",
3304
+ "docs": ["Minimum points to capture any flag"],
3305
+ "type": "u64"
3306
+ },
3307
+ {
3308
+ "name": "weight_base",
3309
+ "docs": ["Base for logarithm calculation (default: 10)"],
3310
+ "type": "u32"
3311
+ },
3312
+ {
3313
+ "name": "weight_multiplier",
3314
+ "docs": ["Multiplier for log result (default: 1.5)"],
3315
+ "type": "f32"
3316
+ },
3317
+ {
3318
+ "name": "max_weight",
3319
+ "docs": ["Maximum weight cap (default: 5)"],
3320
+ "type": "u8"
3321
+ },
3322
+ {
3323
+ "name": "capture_rate_bps",
3324
+ "docs": ["Rate increase in basis points (min 10000 = 100%, default: 10500 = 105%)"],
3325
+ "type": "u64"
3326
+ },
3327
+ {
3328
+ "name": "atlas_per_point",
3329
+ "docs": [
3330
+ "Stardust-of-ATLAS per stardust-of-points. With both in 8-decimal",
3331
+ "precision (1 ATLAS = 100M stardust, 1 point = 100M dust), this acts",
3332
+ "as the \"ATLAS per point\" ratio in human terms. Default 100 = 100",
3333
+ "ATLAS per point."
3334
+ ],
3335
+ "type": "u64"
3336
+ },
3337
+ {
3338
+ "name": "contested_multiplier_max_bps",
3339
+ "docs": [
3340
+ "Maximum floor multiplier in basis points (100 = 1×, 465 = 4.65×).",
3341
+ "Linear ramp from 1× (defender just reserved) to this value (snipe",
3342
+ "at activation). 100 disables the ramp. Default 465. Range 100..=10000."
3343
+ ],
3344
+ "type": "u16"
3345
+ },
3346
+ {
3347
+ "name": "rentals_completed",
3348
+ "docs": [
3349
+ "Lifetime count of rentals that ran their full term and closed",
3350
+ "normally via `process_rental_close`. Does NOT include cancellations",
3351
+ "(those keep status = Cancelled on the rental account). Monotonic.",
3352
+ "Not exposed in ConfigUpdateParams — admin can't tamper."
3353
+ ],
3354
+ "type": "u64"
3355
+ },
3356
+ {
3357
+ "name": "lookup_table",
3358
+ "docs": [
3359
+ "Address Lookup Table for transaction size optimization",
3360
+ "Contains static addresses used across all rental operations"
3361
+ ],
3362
+ "type": "pubkey"
3363
+ },
3364
+ {
3365
+ "name": "created_at",
3366
+ "docs": ["Timestamp when config was created"],
3367
+ "type": "i64"
3368
+ },
3369
+ {
3370
+ "name": "updated_at",
3371
+ "docs": ["Timestamp when config was last updated"],
3372
+ "type": "i64"
3373
+ }
3374
+ ]
3375
+ }
3376
+ },
3377
+ {
3378
+ "name": "ConfigUpdateParams",
3379
+ "docs": [
3380
+ "Parameters for updating global configuration. All fields are optional",
3381
+ "for partial updates."
3382
+ ],
3383
+ "type": {
3384
+ "kind": "struct",
3385
+ "fields": [
3386
+ {
3387
+ "name": "admin",
3388
+ "docs": ["New admin address (admin)"],
3389
+ "type": {
3390
+ "option": "pubkey"
3391
+ }
3392
+ },
3393
+ {
3394
+ "name": "stardust_to_atlas",
3395
+ "docs": ["Stardust to ATLAS conversion rate"],
3396
+ "type": {
3397
+ "option": "u64"
3398
+ }
3399
+ },
3400
+ {
3401
+ "name": "service_fee_bps",
3402
+ "docs": ["Service fee in basis points (1000 = 10%)"],
3403
+ "type": {
3404
+ "option": "u64"
3405
+ }
3406
+ },
3407
+ {
3408
+ "name": "base_bps",
3409
+ "docs": ["Basis points denominator"],
3410
+ "type": {
3411
+ "option": "u16"
3412
+ }
3413
+ },
3414
+ {
3415
+ "name": "rental_duration_min_seconds",
3416
+ "docs": ["Minimum rental duration in seconds"],
3417
+ "type": {
3418
+ "option": "i64"
3419
+ }
3420
+ },
3421
+ {
3422
+ "name": "rental_duration_max_seconds",
3423
+ "docs": ["Maximum rental duration in seconds"],
3424
+ "type": {
3425
+ "option": "i64"
3426
+ }
3427
+ },
3428
+ {
3429
+ "name": "atlas_mint",
3430
+ "docs": ["ATLAS token mint address"],
3431
+ "type": {
3432
+ "option": "pubkey"
3433
+ }
3434
+ },
3435
+ {
3436
+ "name": "reservations_enabled",
3437
+ "docs": ["Whether reservation system is enabled"],
3438
+ "type": {
3439
+ "option": "bool"
3440
+ }
3441
+ },
3442
+ {
3443
+ "name": "points_per_day",
3444
+ "docs": ["Capture points awarded per day of rental"],
3445
+ "type": {
3446
+ "option": "u64"
3447
+ }
3448
+ },
3449
+ {
3450
+ "name": "cancellation_penalty",
3451
+ "docs": ["Points penalty for cancelling a rental"],
3452
+ "type": {
3453
+ "option": "u64"
3454
+ }
3455
+ },
3456
+ {
3457
+ "name": "min_capture_threshold",
3458
+ "docs": ["Minimum points needed to capture a flag"],
3459
+ "type": {
3460
+ "option": "u64"
3461
+ }
3462
+ },
3463
+ {
3464
+ "name": "weight_base",
3465
+ "docs": ["Base for logarithmic weight calculation"],
3466
+ "type": {
3467
+ "option": "u32"
3468
+ }
3469
+ },
3470
+ {
3471
+ "name": "weight_multiplier",
3472
+ "docs": ["Multiplier for weight calculation"],
3473
+ "type": {
3474
+ "option": "f32"
3475
+ }
3476
+ },
3477
+ {
3478
+ "name": "max_weight",
3479
+ "docs": ["Maximum weight value"],
3480
+ "type": {
3481
+ "option": "u8"
3482
+ }
3483
+ },
3484
+ {
3485
+ "name": "capture_rate_bps",
3486
+ "docs": ["Rate increase in basis points after capture (10000 = 100%, 11000 = 110%)"],
3487
+ "type": {
3488
+ "option": "u64"
3489
+ }
3490
+ },
3491
+ {
3492
+ "name": "atlas_per_point",
3493
+ "docs": ["ATLAS lamports per point equivalent for reservation bidding"],
3494
+ "type": {
3495
+ "option": "u64"
3496
+ }
3497
+ },
3498
+ {
3499
+ "name": "contested_multiplier_max_bps",
3500
+ "docs": [
3501
+ "Maximum multiplier on the contest minimum-bid floor as the queued",
3502
+ "reservation approaches `active_rental.end_time`. Custom scale where",
3503
+ "100 = 1× (disables ramp) and 10_000 = 100×. Range 100..=10_000."
3504
+ ],
3505
+ "type": {
3506
+ "option": "u16"
3507
+ }
3508
+ }
3509
+ ]
3510
+ }
3511
+ },
3512
+ {
3513
+ "name": "ContractState",
3514
+ "docs": [
3515
+ "Rental contract defining terms for a specific fleet.",
3516
+ "",
3517
+ "PDA derived from `RENTAL_CONTRACT_SEED` and fleet public key. Integrates with SAGE",
3518
+ "for fleet ownership and rental permissions."
3519
+ ],
3520
+ "type": {
3521
+ "kind": "struct",
3522
+ "fields": [
3523
+ {
3524
+ "name": "version",
3525
+ "docs": ["Account version for future migrations"],
3526
+ "type": "u32"
3527
+ },
3528
+ {
3529
+ "name": "bump",
3530
+ "docs": ["PDA bump seed"],
3531
+ "type": "u8"
3532
+ },
3533
+ {
3534
+ "name": "to_close",
3535
+ "docs": [
3536
+ "Whether contract is flagged for closure (owner wants to close but rental active)"
3537
+ ],
3538
+ "type": "bool"
3539
+ },
3540
+ {
3541
+ "name": "rate",
3542
+ "docs": ["Rental rate per day in Stardust (100M Stardust = 1 ATLAS)"],
3543
+ "type": "u64"
3544
+ },
3545
+ {
3546
+ "name": "duration_min_seconds",
3547
+ "docs": ["Minimum rental duration in seconds"],
3548
+ "type": "i64"
3549
+ },
3550
+ {
3551
+ "name": "duration_max_seconds",
3552
+ "docs": ["Maximum rental duration in seconds"],
3553
+ "type": "i64"
3554
+ },
3555
+ {
3556
+ "name": "cancel_delay_min",
3557
+ "docs": [
3558
+ "Minimum cancellation delay in seconds (0 = instant cancel allowed)",
3559
+ "Default: 0 (instant cancels allowed by default)"
3560
+ ],
3561
+ "type": "i64"
3562
+ },
3563
+ {
3564
+ "name": "weight",
3565
+ "docs": ["Fleet demand weight (1-5, based on reservation activity)"],
3566
+ "type": "u8"
3567
+ },
3568
+ {
3569
+ "name": "reservations_disabled",
3570
+ "docs": [
3571
+ "Whether reservations are disabled for this contract (owner opt-out)",
3572
+ "Default: false (reservations allowed)"
3573
+ ],
3574
+ "type": "bool"
3575
+ },
3576
+ {
3577
+ "name": "owner",
3578
+ "docs": ["Fleet owner who receives payments"],
3579
+ "type": "pubkey"
3580
+ },
3581
+ {
3582
+ "name": "fleet",
3583
+ "docs": ["Fleet associated with this contract"],
3584
+ "type": "pubkey"
3585
+ },
3586
+ {
3587
+ "name": "game_id",
3588
+ "docs": ["Game ID for SAGE integration"],
3589
+ "type": "pubkey"
3590
+ },
3591
+ {
3592
+ "name": "owner_profile",
3593
+ "docs": ["Owner's Star Atlas game profile"],
3594
+ "type": "pubkey"
3595
+ },
3596
+ {
3597
+ "name": "active_rental",
3598
+ "docs": ["Active rental PDA address (system_program::ID = empty)"],
3599
+ "type": "pubkey"
3600
+ },
3601
+ {
3602
+ "name": "queued_rental",
3603
+ "docs": ["Queued rental PDA address (system_program::ID = empty)"],
3604
+ "type": "pubkey"
3605
+ },
3606
+ {
3607
+ "name": "delegate",
3608
+ "docs": [
3609
+ "Delegated address that can update rate on behalf of owner",
3610
+ "Default: None (only owner can update rate)"
3611
+ ],
3612
+ "type": {
3613
+ "option": "pubkey"
3614
+ }
3615
+ },
3616
+ {
3617
+ "name": "thread",
3618
+ "docs": ["Per-contract automation thread (system_program::ID = no thread)"],
3619
+ "type": "pubkey"
3620
+ },
3621
+ {
3622
+ "name": "trigger",
3623
+ "docs": ["Default trigger for thread settlement"],
3624
+ "type": {
3625
+ "defined": {
3626
+ "name": "Trigger"
3627
+ }
3628
+ }
3629
+ },
3630
+ {
3631
+ "name": "managed_token_account",
3632
+ "docs": ["Contract's managed token account (ATA of contract PDA)"],
3633
+ "type": "pubkey"
3634
+ },
3635
+ {
3636
+ "name": "total_earned",
3637
+ "docs": ["Per-contract ATLAS earned (lifetime total)"],
3638
+ "type": "u64"
3639
+ },
3640
+ {
3641
+ "name": "owner_claimable",
3642
+ "docs": ["Accumulated ATLAS earned by owner, not yet claimed"],
3643
+ "type": "u64"
3644
+ },
3645
+ {
3646
+ "name": "fee_claimable",
3647
+ "docs": [
3648
+ "Accumulated service fees, not yet paid to slyvault (flushed at rental_close)"
3649
+ ],
3650
+ "type": "u64"
3651
+ },
3652
+ {
3653
+ "name": "contested_threshold",
3654
+ "docs": [
3655
+ "Owner-configured number of contests required before the next",
3656
+ "activation increases `rate` by `capture_rate_bps`. 0 disables capture-rate",
3657
+ "entirely (rate never auto-increments). 1..=10 enables it. Default 1."
3658
+ ],
3659
+ "type": "u8"
3660
+ },
3661
+ {
3662
+ "name": "contested_count",
3663
+ "docs": [
3664
+ "Contests accumulated since the last rate increase. Resets on increase and",
3665
+ "when a rental cycle completes without an activation."
3666
+ ],
3667
+ "type": "u8"
3668
+ },
3669
+ {
3670
+ "name": "created_at",
3671
+ "docs": ["Timestamp when contract was created"],
3672
+ "type": "i64"
3673
+ },
3674
+ {
3675
+ "name": "updated_at",
3676
+ "docs": ["Timestamp when contract was last updated"],
3677
+ "type": "i64"
3678
+ }
3679
+ ]
3680
+ }
3681
+ },
3682
+ {
3683
+ "name": "ContractUpdateParams",
3684
+ "docs": ["Parameters for updating contract settings. All fields are optional."],
3685
+ "type": {
3686
+ "kind": "struct",
3687
+ "fields": [
3688
+ {
3689
+ "name": "rate",
3690
+ "docs": ["Rental rate per day in Stardust"],
3691
+ "type": {
3692
+ "option": "u64"
3693
+ }
3694
+ },
3695
+ {
3696
+ "name": "duration_min_seconds",
3697
+ "docs": ["Minimum rental duration in seconds"],
3698
+ "type": {
3699
+ "option": "i64"
3700
+ }
3701
+ },
3702
+ {
3703
+ "name": "duration_max_seconds",
3704
+ "docs": ["Maximum rental duration in seconds"],
3705
+ "type": {
3706
+ "option": "i64"
3707
+ }
3708
+ },
3709
+ {
3710
+ "name": "cancel_delay_min",
3711
+ "docs": ["Minimum cancellation delay in seconds (0 = instant cancel allowed)"],
3712
+ "type": {
3713
+ "option": "i64"
3714
+ }
3715
+ },
3716
+ {
3717
+ "name": "reservations_disabled",
3718
+ "docs": ["Whether reservations are disabled for this contract"],
3719
+ "type": {
3720
+ "option": "bool"
3721
+ }
3722
+ },
3723
+ {
3724
+ "name": "to_close",
3725
+ "docs": ["Whether the contract is flagged for deferred closure"],
3726
+ "type": {
3727
+ "option": "bool"
3728
+ }
3729
+ },
3730
+ {
3731
+ "name": "contested_threshold",
3732
+ "docs": [
3733
+ "Number of contests that must accumulate before the next activation",
3734
+ "applies `capture_rate_bps`. 0 disables capture-rate entirely;",
3735
+ "1..=10 enables it with the chosen sensitivity. Default 1."
3736
+ ],
3737
+ "type": {
3738
+ "option": "u8"
3739
+ }
3740
+ }
3741
+ ]
3742
+ }
3743
+ },
3744
+ {
3745
+ "name": "FeesPaid",
3746
+ "docs": [
3747
+ "Emitted when accumulated fees are flushed to slyvault.",
3748
+ "Captures fee/discount split."
3749
+ ],
3750
+ "type": {
3751
+ "kind": "struct",
3752
+ "fields": [
3753
+ {
3754
+ "name": "contract",
3755
+ "type": "pubkey"
3756
+ },
3757
+ {
3758
+ "name": "fee_collected",
3759
+ "type": "u64"
3760
+ },
3761
+ {
3762
+ "name": "discount",
3763
+ "type": "u64"
3764
+ },
3765
+ {
3766
+ "name": "discount_bps",
3767
+ "type": "u16"
3768
+ }
3769
+ ]
3770
+ }
3771
+ },
3772
+ {
3773
+ "name": "Fleet",
3774
+ "docs": ["A SAGE fleet."],
3775
+ "type": {
3776
+ "kind": "struct",
3777
+ "fields": [
3778
+ {
3779
+ "name": "version",
3780
+ "type": "u8"
3781
+ },
3782
+ {
3783
+ "name": "game_id",
3784
+ "type": "pubkey"
3785
+ },
3786
+ {
3787
+ "name": "owner_profile",
3788
+ "type": "pubkey"
3789
+ },
3790
+ {
3791
+ "name": "fleet_ships",
3792
+ "type": "pubkey"
3793
+ },
3794
+ {
3795
+ "name": "sub_profile",
3796
+ "type": {
3797
+ "defined": {
3798
+ "name": "OptionalNonSystemPubkey"
3799
+ }
3800
+ }
3801
+ },
3802
+ {
3803
+ "name": "sub_profile_invalidator",
3804
+ "type": "pubkey"
3805
+ },
3806
+ {
3807
+ "name": "faction",
3808
+ "type": "u8"
3809
+ },
3810
+ {
3811
+ "name": "fleet_label",
3812
+ "type": {
3813
+ "array": ["u8", 32]
3814
+ }
3815
+ },
3816
+ {
3817
+ "name": "ship_counts",
3818
+ "type": {
3819
+ "defined": {
3820
+ "name": "ShipCounts"
3821
+ }
3822
+ }
3823
+ },
3824
+ {
3825
+ "name": "warp_cooldown_expires_at",
3826
+ "type": "i64"
3827
+ },
3828
+ {
3829
+ "name": "scan_cooldown_expires_at",
3830
+ "type": "i64"
3831
+ },
3832
+ {
3833
+ "name": "stats",
3834
+ "type": {
3835
+ "defined": {
3836
+ "name": "ShipStats"
3837
+ }
3838
+ }
3839
+ },
3840
+ {
3841
+ "name": "cargo_hold",
3842
+ "type": "pubkey"
3843
+ },
3844
+ {
3845
+ "name": "fuel_tank",
3846
+ "type": "pubkey"
3847
+ },
3848
+ {
3849
+ "name": "ammo_bank",
3850
+ "type": "pubkey"
3851
+ },
3852
+ {
3853
+ "name": "ap",
3854
+ "type": "u32"
3855
+ },
3856
+ {
3857
+ "name": "sp",
3858
+ "type": "u32"
3859
+ },
3860
+ {
3861
+ "name": "hp",
3862
+ "type": "u32"
3863
+ },
3864
+ {
3865
+ "name": "pending_hp",
3866
+ "type": "u32"
3867
+ },
3868
+ {
3869
+ "name": "ap_reload_expires_at",
3870
+ "type": "i64"
3871
+ },
3872
+ {
3873
+ "name": "shield_break_delay_expires_at",
3874
+ "type": "i64"
3875
+ },
3876
+ {
3877
+ "name": "last_combat_update",
3878
+ "type": "i64"
3879
+ },
3880
+ {
3881
+ "name": "update_id",
3882
+ "type": "u64"
3883
+ },
3884
+ {
3885
+ "name": "bump",
3886
+ "type": "u8"
3887
+ }
3888
+ ]
3889
+ }
3890
+ },
3891
+ {
3892
+ "name": "MiscStats",
3893
+ "docs": ["A ship's miscellaneous stats"],
3894
+ "type": {
3895
+ "kind": "struct",
3896
+ "fields": [
3897
+ {
3898
+ "name": "required_crew",
3899
+ "type": "u16"
3900
+ },
3901
+ {
3902
+ "name": "passenger_capacity",
3903
+ "type": "u16"
3904
+ },
3905
+ {
3906
+ "name": "crew_count",
3907
+ "type": "u16"
3908
+ },
3909
+ {
3910
+ "name": "rented_crew",
3911
+ "type": "u16"
3912
+ },
3913
+ {
3914
+ "name": "respawn_time",
3915
+ "type": "u16"
3916
+ },
3917
+ {
3918
+ "name": "scan_cool_down",
3919
+ "type": "u16"
3920
+ },
3921
+ {
3922
+ "name": "sdu_per_scan",
3923
+ "type": "u32"
3924
+ },
3925
+ {
3926
+ "name": "scan_cost",
3927
+ "type": "u32"
3928
+ },
3929
+ {
3930
+ "name": "placeholder",
3931
+ "type": "u32"
3932
+ },
3933
+ {
3934
+ "name": "placeholder2",
3935
+ "type": "u32"
3936
+ },
3937
+ {
3938
+ "name": "placeholder3",
3939
+ "type": "u32"
3940
+ }
3941
+ ]
3942
+ }
3943
+ },
3944
+ {
3945
+ "name": "MovementStats",
3946
+ "docs": ["A ship's movement stats"],
3947
+ "type": {
3948
+ "kind": "struct",
3949
+ "fields": [
3950
+ {
3951
+ "name": "subwarp_speed",
3952
+ "type": "u32"
3953
+ },
3954
+ {
3955
+ "name": "warp_speed",
3956
+ "type": "u32"
3957
+ },
3958
+ {
3959
+ "name": "max_warp_distance",
3960
+ "type": "u16"
3961
+ },
3962
+ {
3963
+ "name": "warp_cool_down",
3964
+ "type": "u16"
3965
+ },
3966
+ {
3967
+ "name": "subwarp_fuel_consumption_rate",
3968
+ "type": "u32"
3969
+ },
3970
+ {
3971
+ "name": "warp_fuel_consumption_rate",
3972
+ "type": "u32"
3973
+ },
3974
+ {
3975
+ "name": "planet_exit_fuel_amount",
3976
+ "type": "u32"
3977
+ }
3978
+ ]
3979
+ }
3980
+ },
3981
+ {
3982
+ "name": "OptionalNonSystemPubkey",
3983
+ "docs": ["A pubkey sized option that is none if set to the system program."],
3984
+ "type": {
3985
+ "kind": "struct",
3986
+ "fields": [
3987
+ {
3988
+ "name": "key",
3989
+ "type": "pubkey"
3990
+ }
3991
+ ]
3992
+ }
3993
+ },
3994
+ {
3995
+ "name": "OwnerPaid",
3996
+ "docs": [
3997
+ "Emitted when owner_claimable is transferred to owner's ATA.",
3998
+ "Covers both auto-transfer (contract_process) and manual claim (contract_claim)."
3999
+ ],
4000
+ "type": {
4001
+ "kind": "struct",
4002
+ "fields": [
4003
+ {
4004
+ "name": "contract",
4005
+ "type": "pubkey"
4006
+ },
4007
+ {
4008
+ "name": "owner",
4009
+ "type": "pubkey"
4010
+ },
4011
+ {
4012
+ "name": "amount",
4013
+ "type": "u64"
4014
+ }
4015
+ ]
4016
+ }
4017
+ },
4018
+ {
4019
+ "name": "RentalAccepted",
4020
+ "docs": [
4021
+ "Emitted when a rental is accepted (direct or from reservation).",
4022
+ "Captures all inputs needed to verify settlement math."
4023
+ ],
4024
+ "type": {
4025
+ "kind": "struct",
4026
+ "fields": [
4027
+ {
4028
+ "name": "rental_state",
4029
+ "type": "pubkey"
4030
+ },
4031
+ {
4032
+ "name": "contract",
4033
+ "type": "pubkey"
4034
+ },
4035
+ {
4036
+ "name": "borrower",
4037
+ "type": "pubkey"
4038
+ },
4039
+ {
4040
+ "name": "escrow",
4041
+ "type": "u64"
4042
+ },
4043
+ {
4044
+ "name": "rate",
4045
+ "type": "u64"
4046
+ },
4047
+ {
4048
+ "name": "service_fee",
4049
+ "type": "u64"
4050
+ },
4051
+ {
4052
+ "name": "fee_bps",
4053
+ "type": "u16"
4054
+ },
4055
+ {
4056
+ "name": "start_time",
4057
+ "type": "i64"
4058
+ },
4059
+ {
4060
+ "name": "end_time",
4061
+ "type": "i64"
4062
+ }
4063
+ ]
4064
+ }
4065
+ },
4066
+ {
4067
+ "name": "RentalCancelled",
4068
+ "docs": [
4069
+ "Emitted when borrower cancels early.",
4070
+ "Captures the three-way split: owner / fee / refund."
4071
+ ],
4072
+ "type": {
4073
+ "kind": "struct",
4074
+ "fields": [
4075
+ {
4076
+ "name": "rental_state",
4077
+ "type": "pubkey"
4078
+ },
4079
+ {
4080
+ "name": "contract",
4081
+ "type": "pubkey"
4082
+ },
4083
+ {
4084
+ "name": "borrower",
4085
+ "type": "pubkey"
4086
+ },
4087
+ {
4088
+ "name": "owner_earned",
4089
+ "type": "u64"
4090
+ },
4091
+ {
4092
+ "name": "fee_collected",
4093
+ "type": "u64"
4094
+ },
4095
+ {
4096
+ "name": "refund",
4097
+ "type": "u64"
4098
+ },
4099
+ {
4100
+ "name": "new_end_time",
4101
+ "type": "i64"
4102
+ }
4103
+ ]
4104
+ }
4105
+ },
4106
+ {
4107
+ "name": "RentalClosed",
4108
+ "docs": [
4109
+ "Emitted when rental_close finalizes (after expiry or cancel).",
4110
+ "Captures final escrow reconciliation + CTF points."
4111
+ ],
4112
+ "type": {
4113
+ "kind": "struct",
4114
+ "fields": [
4115
+ {
4116
+ "name": "rental_state",
4117
+ "type": "pubkey"
4118
+ },
4119
+ {
4120
+ "name": "contract",
4121
+ "type": "pubkey"
4122
+ },
4123
+ {
4124
+ "name": "borrower",
4125
+ "type": "pubkey"
4126
+ },
4127
+ {
4128
+ "name": "owner_earned",
4129
+ "type": "u64"
4130
+ },
4131
+ {
4132
+ "name": "fee_collected",
4133
+ "type": "u64"
4134
+ },
4135
+ {
4136
+ "name": "points_awarded",
4137
+ "type": "u64"
4138
+ }
4139
+ ]
4140
+ }
4141
+ },
4142
+ {
4143
+ "name": "RentalSettled",
4144
+ "docs": [
4145
+ "Emitted on each settlement tick (mid-period and final).",
4146
+ "Tracks incremental owner earnings and escrow drawdown."
4147
+ ],
4148
+ "type": {
4149
+ "kind": "struct",
4150
+ "fields": [
4151
+ {
4152
+ "name": "rental_state",
4153
+ "type": "pubkey"
4154
+ },
4155
+ {
4156
+ "name": "contract",
4157
+ "type": "pubkey"
4158
+ },
4159
+ {
4160
+ "name": "owner_earned",
4161
+ "type": "u64"
4162
+ },
4163
+ {
4164
+ "name": "escrow_remaining",
4165
+ "type": "u64"
4166
+ },
4167
+ {
4168
+ "name": "is_final",
4169
+ "type": "bool"
4170
+ }
4171
+ ]
4172
+ }
4173
+ },
4174
+ {
4175
+ "name": "RentalState",
4176
+ "docs": [
4177
+ "Active rental session between a fleet owner and borrower.",
4178
+ "",
4179
+ "Handles automated payments via Clockwork threads and tracks rental lifecycle.",
4180
+ "PDA derived from contract address and role seed (active or queued)."
4181
+ ],
4182
+ "type": {
4183
+ "kind": "struct",
4184
+ "fields": [
4185
+ {
4186
+ "name": "version",
4187
+ "docs": ["Account version for future migrations"],
4188
+ "type": "u32"
4189
+ },
4190
+ {
4191
+ "name": "bump",
4192
+ "docs": ["PDA bump seed"],
4193
+ "type": "u8"
4194
+ },
4195
+ {
4196
+ "name": "borrower",
4197
+ "docs": ["Borrower public key (receives refunds if cancelled)"],
4198
+ "type": "pubkey"
4199
+ },
4200
+ {
4201
+ "name": "borrower_state",
4202
+ "docs": ["BorrowerState PDA for this rental (single source of borrower info)"],
4203
+ "type": "pubkey"
4204
+ },
4205
+ {
4206
+ "name": "borrower_profile",
4207
+ "docs": ["Borrower's SAGE profile (stored for frontend convenience)"],
4208
+ "type": "pubkey"
4209
+ },
4210
+ {
4211
+ "name": "contract",
4212
+ "docs": ["Reference to the rental contract"],
4213
+ "type": "pubkey"
4214
+ },
4215
+ {
4216
+ "name": "rate",
4217
+ "docs": ["Gross rate per day in Stardust (= contract.rate at accept/reserve time)"],
4218
+ "type": "u64"
4219
+ },
4220
+ {
4221
+ "name": "last_payment",
4222
+ "docs": ["Timestamp of last pro-rata payment settlement (base for next calculation)"],
4223
+ "type": "i64"
4224
+ },
4225
+ {
4226
+ "name": "escrow",
4227
+ "docs": ["ATLAS deposited as escrow for this rental (in stardust)"],
4228
+ "type": "u64"
4229
+ },
4230
+ {
4231
+ "name": "start_time",
4232
+ "docs": ["Rental start timestamp"],
4233
+ "type": "i64"
4234
+ },
4235
+ {
4236
+ "name": "end_time",
4237
+ "docs": ["Rental end timestamp"],
4238
+ "type": "i64"
4239
+ },
4240
+ {
4241
+ "name": "service_fee",
4242
+ "docs": ["Total fee target for post-rental collection (total * fee_bps / base_bps)"],
4243
+ "type": "u64"
4244
+ },
4245
+ {
4246
+ "name": "fee_bps",
4247
+ "docs": ["Fee basis points snapshotted from config (for cancel proration)"],
4248
+ "type": "u16"
4249
+ },
4250
+ {
4251
+ "name": "referrer",
4252
+ "docs": ["Referrer affiliate member for deferred fee tracking"],
4253
+ "type": {
4254
+ "option": "pubkey"
4255
+ }
4256
+ },
4257
+ {
4258
+ "name": "discount_bps",
4259
+ "docs": ["Discount basis points verified at accept time (0 = no discount)"],
4260
+ "type": "u16"
4261
+ },
4262
+ {
4263
+ "name": "bid_points",
4264
+ "docs": ["Points bid for reservation contest comparison (0 if ATLAS bid)"],
4265
+ "type": "u64"
4266
+ },
4267
+ {
4268
+ "name": "bid_atlas",
4269
+ "docs": ["ATLAS premium bid for reservation contest (0 if points bid)"],
4270
+ "type": "u64"
4271
+ },
4272
+ {
4273
+ "name": "cancel_delay_min",
4274
+ "docs": [
4275
+ "Minimum cancellation delay in seconds, snapshotted from",
4276
+ "`contract.cancel_delay_min` at accept/reserve time. Locks the",
4277
+ "borrower's worst-case notice period — owner raising the contract",
4278
+ "value mid-rental cannot tighten this. Owner lowering the contract",
4279
+ "value flows through (cancel uses the lesser of the two)."
4280
+ ],
4281
+ "type": "i64"
4282
+ },
4283
+ {
4284
+ "name": "status",
4285
+ "docs": ["Rental lifecycle status (Available, Queued, Active)"],
4286
+ "type": {
4287
+ "defined": {
4288
+ "name": "RentalStatus"
4289
+ }
4290
+ }
4291
+ },
4292
+ {
4293
+ "name": "updated_at",
4294
+ "docs": [
4295
+ "Timestamp when rental was last updated (used as base for next pro-rata payment)"
4296
+ ],
4297
+ "type": "i64"
4298
+ },
4299
+ {
4300
+ "name": "created_at",
4301
+ "docs": ["Timestamp when rental was created"],
4302
+ "type": "i64"
4303
+ }
4304
+ ]
4305
+ }
4306
+ },
4307
+ {
4308
+ "name": "RentalStatus",
4309
+ "docs": ["Rental lifecycle status"],
4310
+ "type": {
4311
+ "kind": "enum",
4312
+ "variants": [
4313
+ {
4314
+ "name": "Available"
4315
+ },
4316
+ {
4317
+ "name": "Queued"
4318
+ },
4319
+ {
4320
+ "name": "Active"
4321
+ },
4322
+ {
4323
+ "name": "Cancelled"
4324
+ }
4325
+ ]
4326
+ }
4327
+ },
4328
+ {
4329
+ "name": "Schedule",
4330
+ "docs": [
4331
+ "Tracks the execution schedule - when the thread last ran and when it should run next",
4332
+ "(was: TriggerContext)"
4333
+ ],
4334
+ "type": {
4335
+ "kind": "enum",
4336
+ "variants": [
4337
+ {
4338
+ "name": "OnChange",
4339
+ "fields": [
4340
+ {
4341
+ "name": "prev",
4342
+ "type": "u64"
4343
+ }
4344
+ ]
4345
+ },
4346
+ {
4347
+ "name": "Timed",
4348
+ "fields": [
4349
+ {
4350
+ "name": "prev",
4351
+ "type": "i64"
4352
+ },
4353
+ {
4354
+ "name": "next",
4355
+ "type": "i64"
4356
+ }
4357
+ ]
4358
+ },
4359
+ {
4360
+ "name": "Block",
4361
+ "fields": [
4362
+ {
4363
+ "name": "prev",
4364
+ "type": "u64"
4365
+ },
4366
+ {
4367
+ "name": "next",
4368
+ "type": "u64"
4369
+ }
4370
+ ]
4371
+ }
4372
+ ]
4373
+ }
4374
+ },
4375
+ {
4376
+ "name": "ShipCounts",
4377
+ "docs": ["Ship counts for a fleet."],
4378
+ "type": {
4379
+ "kind": "struct",
4380
+ "fields": [
4381
+ {
4382
+ "name": "total",
4383
+ "type": "u32"
4384
+ },
4385
+ {
4386
+ "name": "updated",
4387
+ "type": "u32"
4388
+ },
4389
+ {
4390
+ "name": "xx_small",
4391
+ "type": "u16"
4392
+ },
4393
+ {
4394
+ "name": "x_small",
4395
+ "type": "u16"
4396
+ },
4397
+ {
4398
+ "name": "small",
4399
+ "type": "u16"
4400
+ },
4401
+ {
4402
+ "name": "medium",
4403
+ "type": "u16"
4404
+ },
4405
+ {
4406
+ "name": "large",
4407
+ "type": "u16"
4408
+ },
4409
+ {
4410
+ "name": "capital",
4411
+ "type": "u16"
4412
+ },
4413
+ {
4414
+ "name": "commander",
4415
+ "type": "u16"
4416
+ },
4417
+ {
4418
+ "name": "titan",
4419
+ "type": "u16"
4420
+ }
4421
+ ]
4422
+ }
4423
+ },
4424
+ {
4425
+ "name": "ShipStats",
4426
+ "docs": ["A ship's stats"],
4427
+ "type": {
4428
+ "kind": "struct",
4429
+ "fields": [
4430
+ {
4431
+ "name": "movement_stats",
4432
+ "type": {
4433
+ "defined": {
4434
+ "name": "MovementStats"
4435
+ }
4436
+ }
4437
+ },
4438
+ {
4439
+ "name": "cargo_stats",
4440
+ "type": {
4441
+ "defined": {
4442
+ "name": "CargoStats"
4443
+ }
4444
+ }
4445
+ },
4446
+ {
4447
+ "name": "combat_stats",
4448
+ "type": {
4449
+ "defined": {
4450
+ "name": "CombatStats"
4451
+ }
4452
+ }
4453
+ },
4454
+ {
4455
+ "name": "misc_stats",
4456
+ "type": {
4457
+ "defined": {
4458
+ "name": "MiscStats"
4459
+ }
4460
+ }
4461
+ }
4462
+ ]
4463
+ }
4464
+ },
4465
+ {
4466
+ "name": "Signal",
4467
+ "docs": [
4468
+ "Signal from a fiber about what should happen after execution.",
4469
+ "Emitted via set_return_data(), received by thread program via get_return_data()."
4470
+ ],
4471
+ "type": {
4472
+ "kind": "enum",
4473
+ "variants": [
4474
+ {
4475
+ "name": "None"
4476
+ },
4477
+ {
4478
+ "name": "Chain"
4479
+ },
4480
+ {
4481
+ "name": "Close"
4482
+ },
4483
+ {
4484
+ "name": "Repeat"
4485
+ },
4486
+ {
4487
+ "name": "Next",
4488
+ "fields": [
4489
+ {
4490
+ "name": "index",
4491
+ "type": "u8"
4492
+ }
4493
+ ]
4494
+ },
4495
+ {
4496
+ "name": "Update",
4497
+ "fields": [
4498
+ {
4499
+ "name": "paused",
4500
+ "type": {
4501
+ "option": "bool"
4502
+ }
4503
+ },
4504
+ {
4505
+ "name": "trigger",
4506
+ "type": {
4507
+ "option": {
4508
+ "defined": {
4509
+ "name": "Trigger"
4510
+ }
4511
+ }
4512
+ }
4513
+ },
4514
+ {
4515
+ "name": "index",
4516
+ "type": {
4517
+ "option": "u8"
4518
+ }
4519
+ }
4520
+ ]
4521
+ }
4522
+ ]
4523
+ }
4524
+ },
4525
+ {
4526
+ "name": "Thread",
4527
+ "docs": ["Tracks the current state of a transaction thread on Solana."],
4528
+ "type": {
4529
+ "kind": "struct",
4530
+ "fields": [
4531
+ {
4532
+ "name": "version",
4533
+ "type": "u8"
4534
+ },
4535
+ {
4536
+ "name": "bump",
4537
+ "type": "u8"
4538
+ },
4539
+ {
4540
+ "name": "authority",
4541
+ "type": "pubkey"
4542
+ },
4543
+ {
4544
+ "name": "id",
4545
+ "type": "bytes"
4546
+ },
4547
+ {
4548
+ "name": "name",
4549
+ "type": "string"
4550
+ },
4551
+ {
4552
+ "name": "created_at",
4553
+ "type": "i64"
4554
+ },
4555
+ {
4556
+ "name": "trigger",
4557
+ "type": {
4558
+ "defined": {
4559
+ "name": "Trigger"
4560
+ }
4561
+ }
4562
+ },
4563
+ {
4564
+ "name": "schedule",
4565
+ "type": {
4566
+ "defined": {
4567
+ "name": "Schedule"
4568
+ }
4569
+ }
4570
+ },
4571
+ {
4572
+ "name": "fiber_ids",
4573
+ "type": "bytes"
4574
+ },
4575
+ {
4576
+ "name": "fiber_cursor",
4577
+ "type": "u8"
4578
+ },
4579
+ {
4580
+ "name": "fiber_next_id",
4581
+ "type": "u8"
4582
+ },
4583
+ {
4584
+ "name": "fiber_signal",
4585
+ "type": {
4586
+ "defined": {
4587
+ "name": "Signal"
4588
+ }
4589
+ }
4590
+ },
4591
+ {
4592
+ "name": "paused",
4593
+ "type": "bool"
4594
+ },
4595
+ {
4596
+ "name": "exec_count",
4597
+ "type": "u64"
4598
+ },
4599
+ {
4600
+ "name": "last_executor",
4601
+ "type": "pubkey"
4602
+ },
4603
+ {
4604
+ "name": "nonce_account",
4605
+ "type": "pubkey"
4606
+ },
4607
+ {
4608
+ "name": "last_nonce",
4609
+ "type": "string"
4610
+ },
4611
+ {
4612
+ "name": "close_fiber",
4613
+ "type": "bytes"
4614
+ }
4615
+ ]
4616
+ }
4617
+ },
4618
+ {
4619
+ "name": "Trigger",
4620
+ "docs": ["The triggering conditions of a thread."],
4621
+ "type": {
4622
+ "kind": "enum",
4623
+ "variants": [
4624
+ {
4625
+ "name": "Account",
4626
+ "fields": [
4627
+ {
4628
+ "name": "address",
4629
+ "docs": ["The address of the account to monitor."],
4630
+ "type": "pubkey"
4631
+ },
4632
+ {
4633
+ "name": "offset",
4634
+ "docs": ["The byte offset of the account data to monitor."],
4635
+ "type": "u64"
4636
+ },
4637
+ {
4638
+ "name": "size",
4639
+ "docs": ["The size of the byte slice to monitor (must be less than 1kb)"],
4640
+ "type": "u64"
4641
+ }
4642
+ ]
4643
+ },
4644
+ {
4645
+ "name": "Immediate",
4646
+ "fields": [
4647
+ {
4648
+ "name": "jitter",
4649
+ "docs": ["Optional jitter in seconds to prevent thundering herd (0 = no jitter)"],
4650
+ "type": "u64"
4651
+ }
4652
+ ]
4653
+ },
4654
+ {
4655
+ "name": "Timestamp",
4656
+ "fields": [
4657
+ {
4658
+ "name": "unix_ts",
4659
+ "type": "i64"
4660
+ },
4661
+ {
4662
+ "name": "jitter",
4663
+ "docs": [
4664
+ "Optional jitter in seconds to spread execution across a window (0 = no jitter)"
4665
+ ],
4666
+ "type": "u64"
4667
+ }
4668
+ ]
4669
+ },
4670
+ {
4671
+ "name": "Interval",
4672
+ "fields": [
4673
+ {
4674
+ "name": "seconds",
4675
+ "docs": ["Interval in seconds between executions"],
4676
+ "type": "i64"
4677
+ },
4678
+ {
4679
+ "name": "skippable",
4680
+ "docs": ["Boolean value indicating whether triggering moments may be skipped"],
4681
+ "type": "bool"
4682
+ },
4683
+ {
4684
+ "name": "jitter",
4685
+ "docs": ["Optional jitter in seconds to prevent thundering herd (0 = no jitter)"],
4686
+ "type": "u64"
4687
+ }
4688
+ ]
4689
+ },
4690
+ {
4691
+ "name": "Cron",
4692
+ "fields": [
4693
+ {
4694
+ "name": "schedule",
4695
+ "docs": [
4696
+ "The schedule in cron syntax. Value must be parsable by the `antegen_cron` package."
4697
+ ],
4698
+ "type": "string"
4699
+ },
4700
+ {
4701
+ "name": "skippable",
4702
+ "docs": [
4703
+ "Boolean value indicating whether triggering moments may be skipped if they are missed (e.g. due to network downtime).",
4704
+ "If false, any \"missed\" triggering moments will simply be executed as soon as the network comes back online."
4705
+ ],
4706
+ "type": "bool"
4707
+ },
4708
+ {
4709
+ "name": "jitter",
4710
+ "docs": [
4711
+ "Optional jitter in seconds to spread execution across a window (0 = no jitter)"
4712
+ ],
4713
+ "type": "u64"
4714
+ }
4715
+ ]
4716
+ },
4717
+ {
4718
+ "name": "Slot",
4719
+ "fields": [
4720
+ {
4721
+ "name": "slot",
4722
+ "type": "u64"
4723
+ }
4724
+ ]
4725
+ },
4726
+ {
4727
+ "name": "Epoch",
4728
+ "fields": [
4729
+ {
4730
+ "name": "epoch",
4731
+ "type": "u64"
4732
+ }
4733
+ ]
4734
+ }
4735
+ ]
4736
+ }
4737
+ }
4738
+ ],
4739
+ "constants": [
4740
+ {
4741
+ "name": "THREAD_SEED",
4742
+ "docs": ["Seed for payment thread PDAs (Antegen/Clockwork)"],
4743
+ "type": "bytes",
4744
+ "value": "[116, 104, 114, 101, 97, 100]"
4745
+ }
4746
+ ]
4747
+ }