@wuwei-labs/srsly 4.1.4 → 4.2.1

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 (230) hide show
  1. package/dist/cjs/accounts/rental.js +6 -2
  2. package/dist/cjs/accounts/rental.js.map +1 -1
  3. package/dist/cjs/demos.js +13 -26
  4. package/dist/cjs/demos.js.map +1 -1
  5. package/dist/cjs/generated/codama/accounts/configState.js +3 -1
  6. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  7. package/dist/cjs/generated/codama/accounts/contractState.js +2 -0
  8. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  9. package/dist/cjs/generated/codama/accounts/rentalState.js +4 -2
  10. package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
  11. package/dist/cjs/generated/codama/errors/srsly.js +7 -4
  12. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  13. package/dist/cjs/generated/codama/instructions/acceptRental.js +39 -11
  14. package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
  15. package/dist/cjs/generated/codama/instructions/activateRental.js +1 -70
  16. package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -1
  17. package/dist/cjs/generated/codama/instructions/closeRental.js +170 -25
  18. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  19. package/dist/cjs/generated/codama/instructions/createConfig.js +0 -8
  20. package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -1
  21. package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +1 -1
  22. package/dist/cjs/generated/codama/instructions/deleteContract.js.map +1 -1
  23. package/dist/cjs/generated/codama/instructions/deleteContractThread.js +175 -0
  24. package/dist/cjs/generated/codama/instructions/deleteContractThread.js.map +1 -0
  25. package/dist/cjs/generated/codama/instructions/deleteRental.js.map +1 -1
  26. package/dist/cjs/generated/codama/instructions/index.js +1 -1
  27. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  28. package/dist/cjs/generated/codama/instructions/reserveRental.js +7 -10
  29. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  30. package/dist/cjs/generated/codama/instructions/updateConfig.js +2 -0
  31. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  32. package/dist/cjs/generated/codama/programs/srsly.js +18 -18
  33. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  34. package/dist/cjs/generated/codama/types/fleet.js +14 -0
  35. package/dist/cjs/generated/codama/types/fleet.js.map +1 -1
  36. package/dist/cjs/generated/codama/types/index.js +1 -1
  37. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  38. package/dist/cjs/generated/codama/types/rentalClosed.js +2 -0
  39. package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -1
  40. package/dist/cjs/generated/codama/types/reservationCreated.js +2 -0
  41. package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -1
  42. package/dist/cjs/generated/codama/types/shipStats.js +2 -0
  43. package/dist/cjs/generated/codama/types/shipStats.js.map +1 -1
  44. package/dist/cjs/instructions/acceptRental.js +28 -23
  45. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  46. package/dist/cjs/instructions/activateRental.js +0 -8
  47. package/dist/cjs/instructions/activateRental.js.map +1 -1
  48. package/dist/cjs/instructions/closeContract.js +79 -27
  49. package/dist/cjs/instructions/closeContract.js.map +1 -1
  50. package/dist/cjs/instructions/closeRental.js +30 -20
  51. package/dist/cjs/instructions/closeRental.js.map +1 -1
  52. package/dist/cjs/instructions/createConfig.js +1 -4
  53. package/dist/cjs/instructions/createConfig.js.map +1 -1
  54. package/dist/cjs/instructions/deleteContractThread.js +65 -0
  55. package/dist/cjs/instructions/deleteContractThread.js.map +1 -0
  56. package/dist/cjs/instructions/index.js +1 -1
  57. package/dist/cjs/instructions/index.js.map +1 -1
  58. package/dist/cjs/instructions/invalidateRental.js +10 -7
  59. package/dist/cjs/instructions/invalidateRental.js.map +1 -1
  60. package/dist/cjs/instructions/releaseRental.js +10 -7
  61. package/dist/cjs/instructions/releaseRental.js.map +1 -1
  62. package/dist/cjs/instructions/reserveRental.js +3 -10
  63. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  64. package/dist/cjs/instructions/updateConfig.js +1 -0
  65. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  66. package/dist/cjs/kit/index.js +1 -2
  67. package/dist/cjs/kit/index.js.map +1 -1
  68. package/dist/cjs/legacy/index.js +1 -5
  69. package/dist/cjs/legacy/index.js.map +1 -1
  70. package/dist/cjs/package.json +1 -1
  71. package/dist/cjs/utils/config.js.map +1 -1
  72. package/dist/cjs/utils/discountAuth.js +51 -130
  73. package/dist/cjs/utils/discountAuth.js.map +1 -1
  74. package/dist/cjs/utils/index.js +2 -4
  75. package/dist/cjs/utils/index.js.map +1 -1
  76. package/dist/cjs/version.js +1 -1
  77. package/dist/esm/accounts/rental.js +6 -2
  78. package/dist/esm/accounts/rental.js.map +1 -1
  79. package/dist/esm/demos.js +12 -25
  80. package/dist/esm/demos.js.map +1 -1
  81. package/dist/esm/generated/codama/accounts/configState.js +3 -1
  82. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  83. package/dist/esm/generated/codama/accounts/contractState.js +2 -0
  84. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  85. package/dist/esm/generated/codama/accounts/rentalState.js +6 -4
  86. package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
  87. package/dist/esm/generated/codama/errors/srsly.js +6 -3
  88. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  89. package/dist/esm/generated/codama/instructions/acceptRental.js +40 -12
  90. package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
  91. package/dist/esm/generated/codama/instructions/activateRental.js +1 -70
  92. package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -1
  93. package/dist/esm/generated/codama/instructions/closeRental.js +170 -25
  94. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  95. package/dist/esm/generated/codama/instructions/createConfig.js +0 -8
  96. package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -1
  97. package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +1 -1
  98. package/dist/esm/generated/codama/instructions/deleteContract.js.map +1 -1
  99. package/dist/esm/generated/codama/instructions/deleteContractThread.js +165 -0
  100. package/dist/esm/generated/codama/instructions/deleteContractThread.js.map +1 -0
  101. package/dist/esm/generated/codama/instructions/deleteRental.js.map +1 -1
  102. package/dist/esm/generated/codama/instructions/index.js +1 -1
  103. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  104. package/dist/esm/generated/codama/instructions/reserveRental.js +8 -11
  105. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  106. package/dist/esm/generated/codama/instructions/updateConfig.js +2 -0
  107. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  108. package/dist/esm/generated/codama/programs/srsly.js +18 -18
  109. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  110. package/dist/esm/generated/codama/types/fleet.js +15 -1
  111. package/dist/esm/generated/codama/types/fleet.js.map +1 -1
  112. package/dist/esm/generated/codama/types/index.js +1 -1
  113. package/dist/esm/generated/codama/types/index.js.map +1 -1
  114. package/dist/esm/generated/codama/types/rentalClosed.js +3 -1
  115. package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -1
  116. package/dist/esm/generated/codama/types/reservationCreated.js +3 -1
  117. package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -1
  118. package/dist/esm/generated/codama/types/shipStats.js +3 -1
  119. package/dist/esm/generated/codama/types/shipStats.js.map +1 -1
  120. package/dist/esm/instructions/acceptRental.js +28 -23
  121. package/dist/esm/instructions/acceptRental.js.map +1 -1
  122. package/dist/esm/instructions/activateRental.js +0 -8
  123. package/dist/esm/instructions/activateRental.js.map +1 -1
  124. package/dist/esm/instructions/closeContract.js +79 -27
  125. package/dist/esm/instructions/closeContract.js.map +1 -1
  126. package/dist/esm/instructions/closeRental.js +30 -20
  127. package/dist/esm/instructions/closeRental.js.map +1 -1
  128. package/dist/esm/instructions/createConfig.js +1 -4
  129. package/dist/esm/instructions/createConfig.js.map +1 -1
  130. package/dist/esm/instructions/deleteContractThread.js +62 -0
  131. package/dist/esm/instructions/deleteContractThread.js.map +1 -0
  132. package/dist/esm/instructions/index.js +1 -1
  133. package/dist/esm/instructions/index.js.map +1 -1
  134. package/dist/esm/instructions/invalidateRental.js +10 -7
  135. package/dist/esm/instructions/invalidateRental.js.map +1 -1
  136. package/dist/esm/instructions/releaseRental.js +10 -7
  137. package/dist/esm/instructions/releaseRental.js.map +1 -1
  138. package/dist/esm/instructions/reserveRental.js +3 -10
  139. package/dist/esm/instructions/reserveRental.js.map +1 -1
  140. package/dist/esm/instructions/updateConfig.js +1 -0
  141. package/dist/esm/instructions/updateConfig.js.map +1 -1
  142. package/dist/esm/kit/index.js +1 -1
  143. package/dist/esm/kit/index.js.map +1 -1
  144. package/dist/esm/legacy/index.js +0 -3
  145. package/dist/esm/legacy/index.js.map +1 -1
  146. package/dist/esm/package.json +1 -1
  147. package/dist/esm/utils/config.js.map +1 -1
  148. package/dist/esm/utils/discountAuth.js +50 -128
  149. package/dist/esm/utils/discountAuth.js.map +1 -1
  150. package/dist/esm/utils/index.js +2 -2
  151. package/dist/esm/utils/index.js.map +1 -1
  152. package/dist/esm/version.js +1 -1
  153. package/dist/idl/srsly.json +411 -352
  154. package/dist/types/accounts/rental.d.ts.map +1 -1
  155. package/dist/types/demos.d.ts +0 -2
  156. package/dist/types/demos.d.ts.map +1 -1
  157. package/dist/types/generated/codama/accounts/configState.d.ts +4 -0
  158. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  159. package/dist/types/generated/codama/accounts/contractState.d.ts +4 -0
  160. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  161. package/dist/types/generated/codama/accounts/rentalState.d.ts +13 -9
  162. package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
  163. package/dist/types/generated/codama/errors/srsly.d.ts +5 -3
  164. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  165. package/dist/types/generated/codama/instructions/acceptRental.d.ts +53 -32
  166. package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
  167. package/dist/types/generated/codama/instructions/activateRental.d.ts +18 -49
  168. package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -1
  169. package/dist/types/generated/codama/instructions/closeRental.d.ts +83 -28
  170. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  171. package/dist/types/generated/codama/instructions/createConfig.d.ts +3 -3
  172. package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -1
  173. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +3 -0
  174. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +1 -1
  175. package/dist/types/generated/codama/instructions/deleteContract.d.ts +3 -0
  176. package/dist/types/generated/codama/instructions/deleteContract.d.ts.map +1 -1
  177. package/dist/types/generated/codama/instructions/deleteContractThread.d.ts +70 -0
  178. package/dist/types/generated/codama/instructions/deleteContractThread.d.ts.map +1 -0
  179. package/dist/types/generated/codama/instructions/deleteRental.d.ts +3 -0
  180. package/dist/types/generated/codama/instructions/deleteRental.d.ts.map +1 -1
  181. package/dist/types/generated/codama/instructions/index.d.ts +1 -1
  182. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  183. package/dist/types/generated/codama/instructions/reserveRental.d.ts +18 -23
  184. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  185. package/dist/types/generated/codama/instructions/updateConfig.d.ts +6 -0
  186. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  187. package/dist/types/generated/codama/programs/srsly.d.ts +18 -18
  188. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  189. package/dist/types/generated/codama/types/fleet.d.ts +14 -0
  190. package/dist/types/generated/codama/types/fleet.d.ts.map +1 -1
  191. package/dist/types/generated/codama/types/index.d.ts +1 -1
  192. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  193. package/dist/types/generated/codama/types/rentalClosed.d.ts +8 -1
  194. package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -1
  195. package/dist/types/generated/codama/types/reservationCreated.d.ts +2 -0
  196. package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -1
  197. package/dist/types/generated/codama/types/shipStats.d.ts +3 -1
  198. package/dist/types/generated/codama/types/shipStats.d.ts.map +1 -1
  199. package/dist/types/instructions/acceptRental.d.ts +6 -9
  200. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  201. package/dist/types/instructions/activateRental.d.ts.map +1 -1
  202. package/dist/types/instructions/closeContract.d.ts +5 -0
  203. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  204. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  205. package/dist/types/instructions/createConfig.d.ts +4 -4
  206. package/dist/types/instructions/createConfig.d.ts.map +1 -1
  207. package/dist/types/instructions/deleteContractThread.d.ts +42 -0
  208. package/dist/types/instructions/deleteContractThread.d.ts.map +1 -0
  209. package/dist/types/instructions/index.d.ts +1 -1
  210. package/dist/types/instructions/index.d.ts.map +1 -1
  211. package/dist/types/instructions/invalidateRental.d.ts +4 -3
  212. package/dist/types/instructions/invalidateRental.d.ts.map +1 -1
  213. package/dist/types/instructions/releaseRental.d.ts +4 -3
  214. package/dist/types/instructions/releaseRental.d.ts.map +1 -1
  215. package/dist/types/instructions/reserveRental.d.ts +0 -7
  216. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  217. package/dist/types/instructions/updateConfig.d.ts +4 -4
  218. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  219. package/dist/types/kit/index.d.ts +1 -1
  220. package/dist/types/kit/index.d.ts.map +1 -1
  221. package/dist/types/legacy/index.d.ts +1 -2
  222. package/dist/types/legacy/index.d.ts.map +1 -1
  223. package/dist/types/utils/config.d.ts +3 -3
  224. package/dist/types/utils/config.d.ts.map +1 -1
  225. package/dist/types/utils/discountAuth.d.ts +30 -63
  226. package/dist/types/utils/discountAuth.d.ts.map +1 -1
  227. package/dist/types/utils/index.d.ts +1 -1
  228. package/dist/types/utils/index.d.ts.map +1 -1
  229. package/dist/types/version.d.ts +1 -1
  230. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
  "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH",
3
3
  "metadata": {
4
4
  "name": "srsly",
5
- "version": "4.0.3",
5
+ "version": "5.0.0",
6
6
  "spec": "0.1.0",
7
7
  "description": "Space Rental from SLY"
8
8
  },
@@ -12,7 +12,7 @@
12
12
  "docs": [
13
13
  "Accept a rental contract by providing payment and specifying duration.",
14
14
  "Used when no active rental exists. For queued rentals, use reserve_rental.",
15
- "Optionally includes discount authorization for referrer/affiliate discounts."
15
+ "Optionally verifies an ed25519 discount signature via slyvault CPI."
16
16
  ],
17
17
  "discriminator": [
18
18
  192,
@@ -87,7 +87,7 @@
87
87
  {
88
88
  "name": "fleet",
89
89
  "docs": [
90
- "Fleet validated by contract.has_one"
90
+ "Fleet validated by contract"
91
91
  ],
92
92
  "writable": true
93
93
  },
@@ -133,7 +133,10 @@
133
133
  }
134
134
  },
135
135
  {
136
- "name": "rental_state",
136
+ "name": "active_rental",
137
+ "docs": [
138
+ "Active rental slot"
139
+ ],
137
140
  "writable": true,
138
141
  "pda": {
139
142
  "seeds": [
@@ -172,6 +175,49 @@
172
175
  ]
173
176
  }
174
177
  },
178
+ {
179
+ "name": "queued_rental",
180
+ "docs": [
181
+ "Queued rental slot"
182
+ ],
183
+ "writable": true,
184
+ "pda": {
185
+ "seeds": [
186
+ {
187
+ "kind": "const",
188
+ "value": [
189
+ 114,
190
+ 101,
191
+ 110,
192
+ 116,
193
+ 97,
194
+ 108,
195
+ 95,
196
+ 115,
197
+ 116,
198
+ 97,
199
+ 116,
200
+ 101
201
+ ]
202
+ },
203
+ {
204
+ "kind": "account",
205
+ "path": "contract"
206
+ },
207
+ {
208
+ "kind": "const",
209
+ "value": [
210
+ 113,
211
+ 117,
212
+ 101,
213
+ 117,
214
+ 101,
215
+ 100
216
+ ]
217
+ }
218
+ ]
219
+ }
220
+ },
175
221
  {
176
222
  "name": "rental_authority",
177
223
  "writable": true,
@@ -258,247 +304,35 @@
258
304
  "type": "i64"
259
305
  },
260
306
  {
261
- "name": "discount_auth",
307
+ "name": "discount_signature",
262
308
  "type": {
263
309
  "option": {
264
- "defined": {
265
- "name": "DiscountAuthorization"
266
- }
310
+ "array": [
311
+ "u8",
312
+ 64
313
+ ]
267
314
  }
268
315
  }
269
- }
270
- ]
271
- },
272
- {
273
- "name": "activate_rental",
274
- "docs": [
275
- "Activate a pending (queued) rental.",
276
- "Works as fallback when automation is delayed/stuck, OR for non-threaded contracts.",
277
- "If a per-contract thread exists, updates fiber 1 with new active borrower's accounts."
278
- ],
279
- "discriminator": [
280
- 180,
281
- 101,
282
- 147,
283
- 128,
284
- 92,
285
- 153,
286
- 230,
287
- 127
288
- ],
289
- "accounts": [
290
- {
291
- "name": "payer",
292
- "writable": true,
293
- "signer": true
294
316
  },
295
317
  {
296
- "name": "config",
297
- "pda": {
298
- "seeds": [
299
- {
300
- "kind": "const",
301
- "value": [
302
- 99,
303
- 111,
304
- 110,
305
- 102,
306
- 105,
307
- 103
308
- ]
309
- }
310
- ]
311
- }
312
- },
313
- {
314
- "name": "active_rental",
315
- "writable": true,
316
- "pda": {
317
- "seeds": [
318
- {
319
- "kind": "const",
320
- "value": [
321
- 114,
322
- 101,
323
- 110,
324
- 116,
325
- 97,
326
- 108,
327
- 95,
328
- 115,
329
- 116,
330
- 97,
331
- 116,
332
- 101
333
- ]
334
- },
335
- {
336
- "kind": "account",
337
- "path": "contract"
338
- },
339
- {
340
- "kind": "const",
341
- "value": [
342
- 97,
343
- 99,
344
- 116,
345
- 105,
346
- 118,
347
- 101
348
- ]
349
- }
350
- ]
318
+ "name": "discount_member_nonce",
319
+ "type": {
320
+ "option": "u32"
351
321
  }
352
322
  },
353
323
  {
354
- "name": "queued_rental",
355
- "writable": true,
356
- "pda": {
357
- "seeds": [
358
- {
359
- "kind": "const",
360
- "value": [
361
- 114,
362
- 101,
363
- 110,
364
- 116,
365
- 97,
366
- 108,
367
- 95,
368
- 115,
369
- 116,
370
- 97,
371
- 116,
372
- 101
373
- ]
374
- },
375
- {
376
- "kind": "account",
377
- "path": "contract"
378
- },
379
- {
380
- "kind": "const",
381
- "value": [
382
- 113,
383
- 117,
384
- 101,
385
- 117,
386
- 101,
387
- 100
388
- ]
389
- }
390
- ]
324
+ "name": "discount_bps",
325
+ "type": {
326
+ "option": "u16"
391
327
  }
392
328
  },
393
329
  {
394
- "name": "contract",
395
- "writable": true
396
- },
397
- {
398
- "name": "contract_token_account",
399
- "docs": [
400
- "Contract's token account (source for deferred fee payment)"
401
- ],
402
- "writable": true
403
- },
404
- {
405
- "name": "mint"
406
- },
407
- {
408
- "name": "borrower_profile"
409
- },
410
- {
411
- "name": "borrower_profile_faction"
412
- },
413
- {
414
- "name": "fleet",
415
- "writable": true
416
- },
417
- {
418
- "name": "game_id"
419
- },
420
- {
421
- "name": "contract_thread",
422
- "writable": true,
423
- "optional": true
424
- },
425
- {
426
- "name": "close_rental_fiber",
427
- "writable": true,
428
- "optional": true
429
- },
430
- {
431
- "name": "vault",
432
- "writable": true
433
- },
434
- {
435
- "name": "vault_token_account",
436
- "writable": true
437
- },
438
- {
439
- "name": "referrer",
440
- "writable": true,
441
- "optional": true
442
- },
443
- {
444
- "name": "rental_authority",
445
- "writable": true,
446
- "pda": {
447
- "seeds": [
448
- {
449
- "kind": "const",
450
- "value": [
451
- 114,
452
- 101,
453
- 110,
454
- 116,
455
- 97,
456
- 108,
457
- 95,
458
- 97,
459
- 117,
460
- 116,
461
- 104,
462
- 111,
463
- 114,
464
- 105,
465
- 116,
466
- 121
467
- ]
468
- }
469
- ]
330
+ "name": "discount_expires_at",
331
+ "type": {
332
+ "option": "i64"
470
333
  }
471
- },
472
- {
473
- "name": "sage_program"
474
- },
475
- {
476
- "name": "slyvault_program",
477
- "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
478
- },
479
- {
480
- "name": "fiber_program",
481
- "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
482
- },
483
- {
484
- "name": "antegen_program",
485
- "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
486
- },
487
- {
488
- "name": "token_program",
489
- "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
490
- },
491
- {
492
- "name": "system_program",
493
- "address": "11111111111111111111111111111111"
494
- }
495
- ],
496
- "args": [],
497
- "returns": {
498
- "defined": {
499
- "name": "Signal"
500
334
  }
501
- }
335
+ ]
502
336
  },
503
337
  {
504
338
  "name": "cancel_rental",
@@ -1846,7 +1680,7 @@
1846
1680
  {
1847
1681
  "name": "close_rental",
1848
1682
  "docs": [
1849
- "Close a completed or expired rental and clean up state.",
1683
+ "Close a completed or expired rental, optionally activating a queued rental inline.",
1850
1684
  "Serves both fiber 1 (automated) and manual fallback.",
1851
1685
  "Returns Signal for fiber dispatch (manual callers ignore return_data)."
1852
1686
  ],
@@ -1885,51 +1719,92 @@
1885
1719
  }
1886
1720
  },
1887
1721
  {
1888
- "name": "borrower",
1889
- "writable": true,
1890
- "relations": [
1891
- "rental_state"
1892
- ]
1893
- },
1894
- {
1895
- "name": "borrower_state",
1722
+ "name": "contract",
1896
1723
  "writable": true,
1897
1724
  "pda": {
1898
1725
  "seeds": [
1899
1726
  {
1900
1727
  "kind": "const",
1901
1728
  "value": [
1902
- 98,
1903
- 111,
1904
- 114,
1905
1729
  114,
1906
- 111,
1907
- 119,
1908
1730
  101,
1909
- 114,
1910
- 95,
1911
- 115,
1731
+ 110,
1912
1732
  116,
1913
1733
  97,
1734
+ 108,
1735
+ 95,
1736
+ 99,
1737
+ 111,
1738
+ 110,
1914
1739
  116,
1915
- 101
1740
+ 114,
1741
+ 97,
1742
+ 99,
1743
+ 116
1916
1744
  ]
1917
1745
  },
1918
1746
  {
1919
1747
  "kind": "account",
1920
- "path": "rental_state.borrower",
1921
- "account": "RentalState"
1748
+ "path": "contract.fleet",
1749
+ "account": "ContractState"
1922
1750
  }
1923
1751
  ]
1924
1752
  }
1925
1753
  },
1926
1754
  {
1927
- "name": "contract",
1755
+ "name": "rental_state",
1928
1756
  "writable": true
1929
1757
  },
1930
1758
  {
1931
- "name": "rental_state",
1759
+ "name": "borrower_state",
1760
+ "writable": true
1761
+ },
1762
+ {
1763
+ "name": "fleet",
1764
+ "docs": [
1765
+ "Fleet validated by contract"
1766
+ ],
1767
+ "writable": true
1768
+ },
1769
+ {
1770
+ "name": "game_id"
1771
+ },
1772
+ {
1773
+ "name": "starbase"
1774
+ },
1775
+ {
1776
+ "name": "starbase_player",
1777
+ "writable": true
1778
+ },
1779
+ {
1780
+ "name": "contract_token_account",
1781
+ "docs": [
1782
+ "Contract's escrow token account (source for fee flush)"
1783
+ ],
1784
+ "writable": true
1785
+ },
1786
+ {
1787
+ "name": "vault",
1788
+ "writable": true
1789
+ },
1790
+ {
1791
+ "name": "vault_token_account",
1792
+ "writable": true
1793
+ },
1794
+ {
1795
+ "name": "referrer",
1932
1796
  "writable": true,
1797
+ "optional": true
1798
+ },
1799
+ {
1800
+ "name": "borrower_token_account",
1801
+ "writable": true,
1802
+ "optional": true
1803
+ },
1804
+ {
1805
+ "name": "queued_rental",
1806
+ "writable": true,
1807
+ "optional": true,
1933
1808
  "pda": {
1934
1809
  "seeds": [
1935
1810
  {
@@ -1956,17 +1831,35 @@
1956
1831
  {
1957
1832
  "kind": "const",
1958
1833
  "value": [
1959
- 97,
1960
- 99,
1961
- 116,
1962
- 105,
1963
- 118,
1964
- 101
1834
+ 113,
1835
+ 117,
1836
+ 101,
1837
+ 117,
1838
+ 101,
1839
+ 100
1965
1840
  ]
1966
1841
  }
1967
1842
  ]
1968
1843
  }
1969
1844
  },
1845
+ {
1846
+ "name": "queued_borrower_profile",
1847
+ "optional": true
1848
+ },
1849
+ {
1850
+ "name": "queued_borrower_profile_faction",
1851
+ "optional": true
1852
+ },
1853
+ {
1854
+ "name": "contract_thread",
1855
+ "writable": true,
1856
+ "optional": true
1857
+ },
1858
+ {
1859
+ "name": "close_rental_fiber",
1860
+ "writable": true,
1861
+ "optional": true
1862
+ },
1970
1863
  {
1971
1864
  "name": "rental_authority",
1972
1865
  "pda": {
@@ -1996,24 +1889,23 @@
1996
1889
  }
1997
1890
  },
1998
1891
  {
1999
- "name": "fleet",
2000
- "docs": [
2001
- "Fleet validated by contract"
2002
- ],
2003
- "writable": true
1892
+ "name": "sage_program"
2004
1893
  },
2005
1894
  {
2006
- "name": "game_id"
1895
+ "name": "slyvault_program",
1896
+ "address": "VLTukwau1TDGhQUgBJfSSojSMv3BfnMHKrewnGN98M3"
2007
1897
  },
2008
1898
  {
2009
- "name": "starbase"
1899
+ "name": "fiber_program",
1900
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
2010
1901
  },
2011
1902
  {
2012
- "name": "starbase_player",
2013
- "writable": true
1903
+ "name": "antegen_program",
1904
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
2014
1905
  },
2015
1906
  {
2016
- "name": "sage_program"
1907
+ "name": "token_program",
1908
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2017
1909
  },
2018
1910
  {
2019
1911
  "name": "system_program",
@@ -2229,8 +2121,7 @@
2229
2121
  {
2230
2122
  "name": "authority",
2231
2123
  "writable": true,
2232
- "signer": true,
2233
- "address": "5xoQptcACAAAwPunPAgNgoGfEqywR5VyZdUdzGpaTp2z"
2124
+ "signer": true
2234
2125
  },
2235
2126
  {
2236
2127
  "name": "config",
@@ -2636,8 +2527,8 @@
2636
2527
  "name": "create_contract_thread",
2637
2528
  "docs": [
2638
2529
  "Create per-contract automation thread with fiber-based dispatch.",
2639
- "Creates thread (fiber 0: controller) + fiber 1 (rental_close) + fiber 2 (rental_activate).",
2640
- "Owner-managed — thread lifecycle is independent of contract lifecycle."
2530
+ "Creates thread (fiber 0: controller) + fiber 1 (rental_close).",
2531
+ "Activation is handled inline by rental_close. Owner-managed."
2641
2532
  ],
2642
2533
  "discriminator": [
2643
2534
  233,
@@ -2993,6 +2884,9 @@
2993
2884
  },
2994
2885
  {
2995
2886
  "name": "config",
2887
+ "docs": [
2888
+ "Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."
2889
+ ],
2996
2890
  "pda": {
2997
2891
  "seeds": [
2998
2892
  {
@@ -3116,6 +3010,9 @@
3116
3010
  },
3117
3011
  {
3118
3012
  "name": "config",
3013
+ "docs": [
3014
+ "Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."
3015
+ ],
3119
3016
  "pda": {
3120
3017
  "seeds": [
3121
3018
  {
@@ -3143,6 +3040,96 @@
3143
3040
  ],
3144
3041
  "args": []
3145
3042
  },
3043
+ {
3044
+ "name": "delete_contract_thread",
3045
+ "docs": [
3046
+ "Admin-only thread deletion for schema migrations / redeployments.",
3047
+ "Like close_contract_thread but uses admin auth and skips contract deserialization."
3048
+ ],
3049
+ "discriminator": [
3050
+ 113,
3051
+ 179,
3052
+ 247,
3053
+ 242,
3054
+ 60,
3055
+ 125,
3056
+ 240,
3057
+ 68
3058
+ ],
3059
+ "accounts": [
3060
+ {
3061
+ "name": "admin",
3062
+ "writable": true,
3063
+ "signer": true
3064
+ },
3065
+ {
3066
+ "name": "config",
3067
+ "docs": [
3068
+ "Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."
3069
+ ],
3070
+ "pda": {
3071
+ "seeds": [
3072
+ {
3073
+ "kind": "const",
3074
+ "value": [
3075
+ 99,
3076
+ 111,
3077
+ 110,
3078
+ 102,
3079
+ 105,
3080
+ 103
3081
+ ]
3082
+ }
3083
+ ]
3084
+ }
3085
+ },
3086
+ {
3087
+ "name": "rental_authority",
3088
+ "pda": {
3089
+ "seeds": [
3090
+ {
3091
+ "kind": "const",
3092
+ "value": [
3093
+ 114,
3094
+ 101,
3095
+ 110,
3096
+ 116,
3097
+ 97,
3098
+ 108,
3099
+ 95,
3100
+ 97,
3101
+ 117,
3102
+ 116,
3103
+ 104,
3104
+ 111,
3105
+ 114,
3106
+ 105,
3107
+ 116,
3108
+ 121
3109
+ ]
3110
+ }
3111
+ ]
3112
+ }
3113
+ },
3114
+ {
3115
+ "name": "thread",
3116
+ "writable": true
3117
+ },
3118
+ {
3119
+ "name": "antegen_program",
3120
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
3121
+ },
3122
+ {
3123
+ "name": "fiber_program",
3124
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
3125
+ },
3126
+ {
3127
+ "name": "system_program",
3128
+ "address": "11111111111111111111111111111111"
3129
+ }
3130
+ ],
3131
+ "args": []
3132
+ },
3146
3133
  {
3147
3134
  "name": "delete_rental",
3148
3135
  "docs": [
@@ -3167,6 +3154,9 @@
3167
3154
  },
3168
3155
  {
3169
3156
  "name": "config",
3157
+ "docs": [
3158
+ "Bypassed when admin is AUTHORIZED_INITIALIZER (break-glass)."
3159
+ ],
3170
3160
  "pda": {
3171
3161
  "seeds": [
3172
3162
  {
@@ -3653,8 +3643,7 @@
3653
3643
  "# Arguments",
3654
3644
  "* `bid_points` - Points to bid (burned; 0 if ATLAS bid)",
3655
3645
  "* `bid_atlas` - ATLAS premium to bid (0 if points bid)",
3656
- "* `duration` - Rental duration in seconds",
3657
- "* `discount_auth` - Optional discount authorization for deferred fee"
3646
+ "* `duration` - Rental duration in seconds"
3658
3647
  ],
3659
3648
  "discriminator": [
3660
3649
  5,
@@ -3729,7 +3718,7 @@
3729
3718
  "writable": true
3730
3719
  },
3731
3720
  {
3732
- "name": "activate_rental_fiber",
3721
+ "name": "close_rental_fiber",
3733
3722
  "writable": true
3734
3723
  },
3735
3724
  {
@@ -3742,7 +3731,7 @@
3742
3731
  {
3743
3732
  "name": "defender_state",
3744
3733
  "docs": [
3745
- "Defender's borrower state (for knockoff refund + tracking)"
3734
+ "Defender's borrower state (required when knocking off a defender)"
3746
3735
  ],
3747
3736
  "writable": true,
3748
3737
  "optional": true
@@ -3993,16 +3982,6 @@
3993
3982
  {
3994
3983
  "name": "duration",
3995
3984
  "type": "i64"
3996
- },
3997
- {
3998
- "name": "discount_auth",
3999
- "type": {
4000
- "option": {
4001
- "defined": {
4002
- "name": "DiscountAuthorization"
4003
- }
4004
- }
4005
- }
4006
3985
  }
4007
3986
  ]
4008
3987
  },
@@ -5044,8 +5023,13 @@
5044
5023
  },
5045
5024
  {
5046
5025
  "code": 6091,
5047
- "name": "SelfKnockoffNotAllowed",
5048
- "msg": "Cannot knock off your own reservation"
5026
+ "name": "DiscountNotLocked",
5027
+ "msg": "Discount must be locked before it can be used in activation"
5028
+ },
5029
+ {
5030
+ "code": 6092,
5031
+ "name": "MissingReferrer",
5032
+ "msg": "Referrer account required when discount params are provided"
5049
5033
  }
5050
5034
  ],
5051
5035
  "types": [
@@ -5216,6 +5200,65 @@
5216
5200
  ]
5217
5201
  }
5218
5202
  },
5203
+ {
5204
+ "name": "CombatStats",
5205
+ "docs": [
5206
+ "A ship's combat stats"
5207
+ ],
5208
+ "type": {
5209
+ "kind": "struct",
5210
+ "fields": [
5211
+ {
5212
+ "name": "ap",
5213
+ "type": "u32"
5214
+ },
5215
+ {
5216
+ "name": "hp",
5217
+ "type": "u32"
5218
+ },
5219
+ {
5220
+ "name": "sp",
5221
+ "type": "u32"
5222
+ },
5223
+ {
5224
+ "name": "ammo_consumption_rate",
5225
+ "type": "u32"
5226
+ },
5227
+ {
5228
+ "name": "ap_regen_rate",
5229
+ "type": "u32"
5230
+ },
5231
+ {
5232
+ "name": "shield_recharge_rate",
5233
+ "type": "u32"
5234
+ },
5235
+ {
5236
+ "name": "repair_rate",
5237
+ "type": "u32"
5238
+ },
5239
+ {
5240
+ "name": "repair_ability",
5241
+ "type": "u32"
5242
+ },
5243
+ {
5244
+ "name": "repair_efficiency",
5245
+ "type": "u32"
5246
+ },
5247
+ {
5248
+ "name": "loot_rate",
5249
+ "type": "u32"
5250
+ },
5251
+ {
5252
+ "name": "shield_break_delay",
5253
+ "type": "u16"
5254
+ },
5255
+ {
5256
+ "name": "warp_spool_duration",
5257
+ "type": "u16"
5258
+ }
5259
+ ]
5260
+ }
5261
+ },
5219
5262
  {
5220
5263
  "name": "ConfigState",
5221
5264
  "docs": [
@@ -5360,6 +5403,13 @@
5360
5403
  ],
5361
5404
  "type": "u64"
5362
5405
  },
5406
+ {
5407
+ "name": "knockoff_bonus_bps",
5408
+ "docs": [
5409
+ "Knockoff bonus in basis points awarded to defender (default: 500 = 5%)"
5410
+ ],
5411
+ "type": "u64"
5412
+ },
5363
5413
  {
5364
5414
  "name": "lookup_table",
5365
5415
  "docs": [
@@ -5537,6 +5587,15 @@
5537
5587
  "type": {
5538
5588
  "option": "u64"
5539
5589
  }
5590
+ },
5591
+ {
5592
+ "name": "knockoff_bonus_bps",
5593
+ "docs": [
5594
+ "Knockoff bonus in basis points (500 = 5%)"
5595
+ ],
5596
+ "type": {
5597
+ "option": "u64"
5598
+ }
5540
5599
  }
5541
5600
  ]
5542
5601
  }
@@ -5818,6 +5877,13 @@
5818
5877
  ],
5819
5878
  "type": "u64"
5820
5879
  },
5880
+ {
5881
+ "name": "fee_claimable",
5882
+ "docs": [
5883
+ "Accumulated service fees, not yet paid to slyvault (flushed at rental_close)"
5884
+ ],
5885
+ "type": "u64"
5886
+ },
5821
5887
  {
5822
5888
  "name": "created_at",
5823
5889
  "docs": [
@@ -5991,58 +6057,6 @@
5991
6057
  ]
5992
6058
  }
5993
6059
  },
5994
- {
5995
- "name": "DiscountAuthorization",
5996
- "docs": [
5997
- "Discount authorization signed by a member or affiliate",
5998
- "Discount recipient is always the depositor (derived from context)"
5999
- ],
6000
- "type": {
6001
- "kind": "struct",
6002
- "fields": [
6003
- {
6004
- "name": "context",
6005
- "docs": [
6006
- "Context address the authorization is bound to (e.g. rental_state PDA)"
6007
- ],
6008
- "type": "pubkey"
6009
- },
6010
- {
6011
- "name": "member_nonce",
6012
- "docs": [
6013
- "Member or Affiliate nonce (signer)"
6014
- ],
6015
- "type": "u32"
6016
- },
6017
- {
6018
- "name": "discount_bps",
6019
- "docs": [
6020
- "Discount percentage in basis points (10000 = 100% of signer's allocation)"
6021
- ],
6022
- "type": "u16"
6023
- },
6024
- {
6025
- "name": "expiry_slot",
6026
- "docs": [
6027
- "Slot after which this authorization expires"
6028
- ],
6029
- "type": "u64"
6030
- },
6031
- {
6032
- "name": "signature",
6033
- "docs": [
6034
- "Ed25519 signature of the authorization message"
6035
- ],
6036
- "type": {
6037
- "array": [
6038
- "u8",
6039
- 64
6040
- ]
6041
- }
6042
- }
6043
- ]
6044
- }
6045
- },
6046
6060
  {
6047
6061
  "name": "FieldUpdate",
6048
6062
  "docs": [
@@ -6153,6 +6167,34 @@
6153
6167
  "name": "ammo_bank",
6154
6168
  "type": "pubkey"
6155
6169
  },
6170
+ {
6171
+ "name": "ap",
6172
+ "type": "u32"
6173
+ },
6174
+ {
6175
+ "name": "sp",
6176
+ "type": "u32"
6177
+ },
6178
+ {
6179
+ "name": "hp",
6180
+ "type": "u32"
6181
+ },
6182
+ {
6183
+ "name": "pending_hp",
6184
+ "type": "u32"
6185
+ },
6186
+ {
6187
+ "name": "ap_reload_expires_at",
6188
+ "type": "i64"
6189
+ },
6190
+ {
6191
+ "name": "shield_break_delay_expires_at",
6192
+ "type": "i64"
6193
+ },
6194
+ {
6195
+ "name": "last_combat_update",
6196
+ "type": "i64"
6197
+ },
6156
6198
  {
6157
6199
  "name": "update_id",
6158
6200
  "type": "u64"
@@ -6397,6 +6439,10 @@
6397
6439
  {
6398
6440
  "name": "points_awarded",
6399
6441
  "type": "u32"
6442
+ },
6443
+ {
6444
+ "name": "fee_flushed",
6445
+ "type": "u64"
6400
6446
  }
6401
6447
  ]
6402
6448
  }
@@ -6477,7 +6523,7 @@
6477
6523
  {
6478
6524
  "name": "rate",
6479
6525
  "docs": [
6480
- "Effective rental rate per day in Stardust (after fees)"
6526
+ "Net rate per day in Stardust (after fee deduction)"
6481
6527
  ],
6482
6528
  "type": "u64"
6483
6529
  },
@@ -6512,10 +6558,17 @@
6512
6558
  {
6513
6559
  "name": "service_fee",
6514
6560
  "docs": [
6515
- "Deferred service fee (paid to slyvault at activation, not at claim)"
6561
+ "Total fee target for post-rental collection (total * fee_bps / base_bps)"
6516
6562
  ],
6517
6563
  "type": "u64"
6518
6564
  },
6565
+ {
6566
+ "name": "fee_bps",
6567
+ "docs": [
6568
+ "Fee basis points snapshotted from config (for cancel proration)"
6569
+ ],
6570
+ "type": "u16"
6571
+ },
6519
6572
  {
6520
6573
  "name": "referrer",
6521
6574
  "docs": [
@@ -6526,17 +6579,11 @@
6526
6579
  }
6527
6580
  },
6528
6581
  {
6529
- "name": "discount_auth",
6582
+ "name": "discount_bps",
6530
6583
  "docs": [
6531
- "Discount authorization for deferred fee payment"
6584
+ "Discount basis points verified at accept time (0 = no discount)"
6532
6585
  ],
6533
- "type": {
6534
- "option": {
6535
- "defined": {
6536
- "name": "DiscountAuthorization"
6537
- }
6538
- }
6539
- }
6586
+ "type": "u16"
6540
6587
  },
6541
6588
  {
6542
6589
  "name": "bid_points",
@@ -6632,6 +6679,10 @@
6632
6679
  "name": "service_fee",
6633
6680
  "type": "u64"
6634
6681
  },
6682
+ {
6683
+ "name": "fee_bps",
6684
+ "type": "u16"
6685
+ },
6635
6686
  {
6636
6687
  "name": "duration_seconds",
6637
6688
  "type": "i64"
@@ -6789,6 +6840,14 @@
6789
6840
  }
6790
6841
  }
6791
6842
  },
6843
+ {
6844
+ "name": "combat_stats",
6845
+ "type": {
6846
+ "defined": {
6847
+ "name": "CombatStats"
6848
+ }
6849
+ }
6850
+ },
6792
6851
  {
6793
6852
  "name": "misc_stats",
6794
6853
  "type": {