@wuwei-labs/srsly 2.0.0-beta.37 → 2.0.0-beta.41

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 (177) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/codama/accounts/config.js +0 -2
  3. package/dist/cjs/codama/accounts/config.js.map +1 -1
  4. package/dist/cjs/codama/accounts/contractState.js.map +1 -1
  5. package/dist/cjs/codama/accounts/rentalState.js +1 -3
  6. package/dist/cjs/codama/accounts/rentalState.js.map +1 -1
  7. package/dist/cjs/codama/errors/srsly.js +13 -1
  8. package/dist/cjs/codama/errors/srsly.js.map +1 -1
  9. package/dist/cjs/codama/instructions/acceptRental.js +1 -28
  10. package/dist/cjs/codama/instructions/acceptRental.js.map +1 -1
  11. package/dist/cjs/codama/instructions/closeRental.js +28 -13
  12. package/dist/cjs/codama/instructions/closeRental.js.map +1 -1
  13. package/dist/cjs/codama/instructions/index.js +1 -0
  14. package/dist/cjs/codama/instructions/index.js.map +1 -1
  15. package/dist/cjs/codama/instructions/payRental.js +1 -18
  16. package/dist/cjs/codama/instructions/payRental.js.map +1 -1
  17. package/dist/cjs/codama/instructions/resetContractTemp.js +146 -0
  18. package/dist/cjs/codama/instructions/resetContractTemp.js.map +1 -0
  19. package/dist/cjs/codama/instructions/resetRental.js +6 -1
  20. package/dist/cjs/codama/instructions/resetRental.js.map +1 -1
  21. package/dist/cjs/codama/instructions/updateConfig.js +0 -2
  22. package/dist/cjs/codama/instructions/updateConfig.js.map +1 -1
  23. package/dist/cjs/codama/programs/srsly.js +6 -2
  24. package/dist/cjs/codama/programs/srsly.js.map +1 -1
  25. package/dist/cjs/codama/types/paymentFrequency.js +31 -0
  26. package/dist/cjs/codama/types/paymentFrequency.js.map +1 -1
  27. package/dist/cjs/contract/close.js +71 -11
  28. package/dist/cjs/contract/close.js.map +1 -1
  29. package/dist/cjs/contract/create.js +88 -21
  30. package/dist/cjs/contract/create.js.map +1 -1
  31. package/dist/cjs/contract/index.js +45 -0
  32. package/dist/cjs/contract/index.js.map +1 -1
  33. package/dist/cjs/index.js +110 -7
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/package.json +4 -4
  36. package/dist/cjs/rental/accept.js +164 -45
  37. package/dist/cjs/rental/accept.js.map +1 -1
  38. package/dist/cjs/rental/cancel.js +82 -16
  39. package/dist/cjs/rental/cancel.js.map +1 -1
  40. package/dist/cjs/rental/close.js +152 -27
  41. package/dist/cjs/rental/close.js.map +1 -1
  42. package/dist/cjs/rental/index.js +85 -0
  43. package/dist/cjs/rental/index.js.map +1 -1
  44. package/dist/cjs/rental/reset-contract-temp.js +103 -0
  45. package/dist/cjs/rental/reset-contract-temp.js.map +1 -0
  46. package/dist/cjs/rental/reset.js +102 -19
  47. package/dist/cjs/rental/reset.js.map +1 -1
  48. package/dist/cjs/utils/config.js +44 -9
  49. package/dist/cjs/utils/config.js.map +1 -1
  50. package/dist/cjs/utils/constants.js +16 -6
  51. package/dist/cjs/utils/constants.js.map +1 -1
  52. package/dist/cjs/utils/index.js +1 -0
  53. package/dist/cjs/utils/index.js.map +1 -1
  54. package/dist/cjs/utils/instruction-converter.js +60 -5
  55. package/dist/cjs/utils/instruction-converter.js.map +1 -1
  56. package/dist/cjs/utils/paymentFrequency.js +7 -2
  57. package/dist/cjs/utils/paymentFrequency.js.map +1 -1
  58. package/dist/cjs/utils/pda.js +191 -0
  59. package/dist/cjs/utils/pda.js.map +1 -0
  60. package/dist/esm/codama/accounts/config.js +0 -2
  61. package/dist/esm/codama/accounts/config.js.map +1 -1
  62. package/dist/esm/codama/accounts/contractState.js.map +1 -1
  63. package/dist/esm/codama/accounts/rentalState.js +1 -3
  64. package/dist/esm/codama/accounts/rentalState.js.map +1 -1
  65. package/dist/esm/codama/errors/srsly.js +12 -0
  66. package/dist/esm/codama/errors/srsly.js.map +1 -1
  67. package/dist/esm/codama/instructions/acceptRental.js +1 -28
  68. package/dist/esm/codama/instructions/acceptRental.js.map +1 -1
  69. package/dist/esm/codama/instructions/closeRental.js +28 -13
  70. package/dist/esm/codama/instructions/closeRental.js.map +1 -1
  71. package/dist/esm/codama/instructions/index.js +1 -0
  72. package/dist/esm/codama/instructions/index.js.map +1 -1
  73. package/dist/esm/codama/instructions/payRental.js +1 -18
  74. package/dist/esm/codama/instructions/payRental.js.map +1 -1
  75. package/dist/esm/codama/instructions/resetContractTemp.js +136 -0
  76. package/dist/esm/codama/instructions/resetContractTemp.js.map +1 -0
  77. package/dist/esm/codama/instructions/resetRental.js +6 -1
  78. package/dist/esm/codama/instructions/resetRental.js.map +1 -1
  79. package/dist/esm/codama/instructions/updateConfig.js +0 -2
  80. package/dist/esm/codama/instructions/updateConfig.js.map +1 -1
  81. package/dist/esm/codama/programs/srsly.js +6 -2
  82. package/dist/esm/codama/programs/srsly.js.map +1 -1
  83. package/dist/esm/codama/types/paymentFrequency.js +31 -0
  84. package/dist/esm/codama/types/paymentFrequency.js.map +1 -1
  85. package/dist/esm/contract/close.js +72 -12
  86. package/dist/esm/contract/close.js.map +1 -1
  87. package/dist/esm/contract/create.js +89 -22
  88. package/dist/esm/contract/create.js.map +1 -1
  89. package/dist/esm/contract/index.js +45 -0
  90. package/dist/esm/contract/index.js.map +1 -1
  91. package/dist/esm/index.js +110 -6
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/package.json +4 -4
  94. package/dist/esm/rental/accept.js +166 -47
  95. package/dist/esm/rental/accept.js.map +1 -1
  96. package/dist/esm/rental/cancel.js +83 -17
  97. package/dist/esm/rental/cancel.js.map +1 -1
  98. package/dist/esm/rental/close.js +152 -27
  99. package/dist/esm/rental/close.js.map +1 -1
  100. package/dist/esm/rental/index.js +85 -0
  101. package/dist/esm/rental/index.js.map +1 -1
  102. package/dist/esm/rental/reset-contract-temp.js +100 -0
  103. package/dist/esm/rental/reset-contract-temp.js.map +1 -0
  104. package/dist/esm/rental/reset.js +102 -19
  105. package/dist/esm/rental/reset.js.map +1 -1
  106. package/dist/esm/utils/config.js +44 -9
  107. package/dist/esm/utils/config.js.map +1 -1
  108. package/dist/esm/utils/constants.js +16 -6
  109. package/dist/esm/utils/constants.js.map +1 -1
  110. package/dist/esm/utils/index.js +1 -0
  111. package/dist/esm/utils/index.js.map +1 -1
  112. package/dist/esm/utils/instruction-converter.js +59 -5
  113. package/dist/esm/utils/instruction-converter.js.map +1 -1
  114. package/dist/esm/utils/paymentFrequency.js +7 -2
  115. package/dist/esm/utils/paymentFrequency.js.map +1 -1
  116. package/dist/esm/utils/pda.js +185 -0
  117. package/dist/esm/utils/pda.js.map +1 -0
  118. package/dist/types/codama/accounts/config.d.ts +24 -2
  119. package/dist/types/codama/accounts/config.d.ts.map +1 -1
  120. package/dist/types/codama/accounts/contractState.d.ts +26 -0
  121. package/dist/types/codama/accounts/contractState.d.ts.map +1 -1
  122. package/dist/types/codama/accounts/rentalState.d.ts +20 -2
  123. package/dist/types/codama/accounts/rentalState.d.ts.map +1 -1
  124. package/dist/types/codama/errors/srsly.d.ts +9 -1
  125. package/dist/types/codama/errors/srsly.d.ts.map +1 -1
  126. package/dist/types/codama/instructions/acceptRental.d.ts +13 -20
  127. package/dist/types/codama/instructions/acceptRental.d.ts.map +1 -1
  128. package/dist/types/codama/instructions/closeRental.d.ts +33 -13
  129. package/dist/types/codama/instructions/closeRental.d.ts.map +1 -1
  130. package/dist/types/codama/instructions/index.d.ts +1 -0
  131. package/dist/types/codama/instructions/index.d.ts.map +1 -1
  132. package/dist/types/codama/instructions/payRental.d.ts +11 -18
  133. package/dist/types/codama/instructions/payRental.d.ts.map +1 -1
  134. package/dist/types/codama/instructions/resetContractTemp.d.ts +71 -0
  135. package/dist/types/codama/instructions/resetContractTemp.d.ts.map +1 -0
  136. package/dist/types/codama/instructions/resetRental.d.ts +21 -17
  137. package/dist/types/codama/instructions/resetRental.d.ts.map +1 -1
  138. package/dist/types/codama/instructions/updateConfig.d.ts +20 -4
  139. package/dist/types/codama/instructions/updateConfig.d.ts.map +1 -1
  140. package/dist/types/codama/programs/srsly.d.ts +6 -3
  141. package/dist/types/codama/programs/srsly.d.ts.map +1 -1
  142. package/dist/types/codama/types/paymentFrequency.d.ts +31 -0
  143. package/dist/types/codama/types/paymentFrequency.d.ts.map +1 -1
  144. package/dist/types/contract/close.d.ts +77 -16
  145. package/dist/types/contract/close.d.ts.map +1 -1
  146. package/dist/types/contract/create.d.ts +114 -17
  147. package/dist/types/contract/create.d.ts.map +1 -1
  148. package/dist/types/contract/index.d.ts +45 -0
  149. package/dist/types/contract/index.d.ts.map +1 -1
  150. package/dist/types/index.d.ts +111 -1
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/types/rental/accept.d.ts +121 -50
  153. package/dist/types/rental/accept.d.ts.map +1 -1
  154. package/dist/types/rental/cancel.d.ts +80 -16
  155. package/dist/types/rental/cancel.d.ts.map +1 -1
  156. package/dist/types/rental/close.d.ts +86 -26
  157. package/dist/types/rental/close.d.ts.map +1 -1
  158. package/dist/types/rental/index.d.ts +85 -0
  159. package/dist/types/rental/index.d.ts.map +1 -1
  160. package/dist/types/rental/reset-contract-temp.d.ts +77 -0
  161. package/dist/types/rental/reset-contract-temp.d.ts.map +1 -0
  162. package/dist/types/rental/reset.d.ts +114 -24
  163. package/dist/types/rental/reset.d.ts.map +1 -1
  164. package/dist/types/utils/config.d.ts +14 -2
  165. package/dist/types/utils/config.d.ts.map +1 -1
  166. package/dist/types/utils/constants.d.ts +1 -1
  167. package/dist/types/utils/constants.d.ts.map +1 -1
  168. package/dist/types/utils/index.d.ts +1 -0
  169. package/dist/types/utils/index.d.ts.map +1 -1
  170. package/dist/types/utils/instruction-converter.d.ts +70 -20
  171. package/dist/types/utils/instruction-converter.d.ts.map +1 -1
  172. package/dist/types/utils/paymentFrequency.d.ts +3 -3
  173. package/dist/types/utils/paymentFrequency.d.ts.map +1 -1
  174. package/dist/types/utils/pda.d.ts +120 -0
  175. package/dist/types/utils/pda.d.ts.map +1 -0
  176. package/package.json +5 -5
  177. package/target/idl/srsly.json +318 -94
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "accept_rental",
12
12
  "docs": [
13
- "Allows a borrower to accept a rental by providing funds and specifying duration."
13
+ "Accept a rental contract by providing payment and specifying duration."
14
14
  ],
15
15
  "discriminator": [
16
16
  192,
@@ -348,37 +348,7 @@
348
348
  },
349
349
  {
350
350
  "name": "rental_thread",
351
- "writable": true,
352
- "pda": {
353
- "seeds": [
354
- {
355
- "kind": "const",
356
- "value": [
357
- 116,
358
- 104,
359
- 114,
360
- 101,
361
- 97,
362
- 100
363
- ]
364
- },
365
- {
366
- "kind": "account",
367
- "path": "rental_authority"
368
- },
369
- {
370
- "kind": "account",
371
- "path": "rental_state"
372
- }
373
- ]
374
- }
375
- },
376
- {
377
- "name": "referral_token_account",
378
- "docs": [
379
- "Referral token account - defaults to system program if no referral"
380
- ],
381
- "optional": true
351
+ "writable": true
382
352
  },
383
353
  {
384
354
  "name": "sage_program"
@@ -414,7 +384,7 @@
414
384
  {
415
385
  "name": "cancel_rental",
416
386
  "docs": [
417
- "Cancels an ongoing rental before its scheduled end, marking it as canceled for repayment logic."
387
+ "Cancel an active rental early with prorated refunds."
418
388
  ],
419
389
  "discriminator": [
420
390
  97,
@@ -430,10 +400,7 @@
430
400
  {
431
401
  "name": "borrower",
432
402
  "writable": true,
433
- "signer": true,
434
- "relations": [
435
- "rental_state"
436
- ]
403
+ "signer": true
437
404
  },
438
405
  {
439
406
  "name": "config",
@@ -744,7 +711,7 @@
744
711
  {
745
712
  "name": "close_contract",
746
713
  "docs": [
747
- "Closes an existing rental contract, preventing further rentals."
714
+ "Closes a rental contract. Contract must have no active rentals."
748
715
  ],
749
716
  "discriminator": [
750
717
  37,
@@ -849,7 +816,7 @@
849
816
  {
850
817
  "name": "close_rental",
851
818
  "docs": [
852
- "Closes a rental after its duration has ended, removes it from the contract."
819
+ "Close a completed or expired rental and clean up state."
853
820
  ],
854
821
  "discriminator": [
855
822
  179,
@@ -993,7 +960,8 @@
993
960
  }
994
961
  },
995
962
  {
996
- "name": "contract"
963
+ "name": "contract",
964
+ "writable": true
997
965
  },
998
966
  {
999
967
  "name": "rental_state",
@@ -1238,30 +1206,24 @@
1238
1206
  },
1239
1207
  {
1240
1208
  "name": "rental_thread",
1241
- "writable": true,
1242
- "pda": {
1243
- "seeds": [
1244
- {
1245
- "kind": "const",
1246
- "value": [
1247
- 116,
1248
- 104,
1249
- 114,
1250
- 101,
1251
- 97,
1252
- 100
1253
- ]
1254
- },
1255
- {
1256
- "kind": "account",
1257
- "path": "rental_authority"
1258
- },
1259
- {
1260
- "kind": "account",
1261
- "path": "rental_state"
1262
- }
1263
- ]
1264
- }
1209
+ "writable": true
1210
+ },
1211
+ {
1212
+ "name": "fleet",
1213
+ "writable": true
1214
+ },
1215
+ {
1216
+ "name": "game_id"
1217
+ },
1218
+ {
1219
+ "name": "starbase"
1220
+ },
1221
+ {
1222
+ "name": "starbase_player",
1223
+ "writable": true
1224
+ },
1225
+ {
1226
+ "name": "sage_program"
1265
1227
  },
1266
1228
  {
1267
1229
  "name": "antegen_program",
@@ -1285,7 +1247,7 @@
1285
1247
  {
1286
1248
  "name": "create_contract",
1287
1249
  "docs": [
1288
- "Creates a new rental contract, defining the rental terms such as rate, duration, and payment frequency."
1250
+ "Creates a new rental contract for a fleet with specified terms."
1289
1251
  ],
1290
1252
  "discriminator": [
1291
1253
  244,
@@ -1526,7 +1488,7 @@
1526
1488
  {
1527
1489
  "name": "initialize_config",
1528
1490
  "docs": [
1529
- "Initializes the SRSLY program configuration account"
1491
+ "Initialize global program configuration. Called once during deployment."
1530
1492
  ],
1531
1493
  "discriminator": [
1532
1494
  208,
@@ -1582,7 +1544,7 @@
1582
1544
  {
1583
1545
  "name": "pay_rental",
1584
1546
  "docs": [
1585
- "Handles recurring rental payments via an automated thread."
1547
+ "Process recurring rental payments via automated Clockwork thread."
1586
1548
  ],
1587
1549
  "discriminator": [
1588
1550
  114,
@@ -1874,13 +1836,6 @@
1874
1836
  }
1875
1837
  }
1876
1838
  },
1877
- {
1878
- "name": "referral_token_account",
1879
- "docs": [
1880
- "Referral token account - optional, can be any valid token account"
1881
- ],
1882
- "optional": true
1883
- },
1884
1839
  {
1885
1840
  "name": "config",
1886
1841
  "pda": {
@@ -1918,10 +1873,83 @@
1918
1873
  }
1919
1874
  }
1920
1875
  },
1876
+ {
1877
+ "name": "reset_contract_temp",
1878
+ "docs": [
1879
+ "Temporary instruction to reset current_rental_state for devnet testing."
1880
+ ],
1881
+ "discriminator": [
1882
+ 185,
1883
+ 172,
1884
+ 167,
1885
+ 183,
1886
+ 225,
1887
+ 177,
1888
+ 238,
1889
+ 68
1890
+ ],
1891
+ "accounts": [
1892
+ {
1893
+ "name": "signer",
1894
+ "writable": true,
1895
+ "signer": true
1896
+ },
1897
+ {
1898
+ "name": "contract",
1899
+ "writable": true
1900
+ },
1901
+ {
1902
+ "name": "rental_authority",
1903
+ "pda": {
1904
+ "seeds": [
1905
+ {
1906
+ "kind": "const",
1907
+ "value": [
1908
+ 114,
1909
+ 101,
1910
+ 110,
1911
+ 116,
1912
+ 97,
1913
+ 108,
1914
+ 95,
1915
+ 97,
1916
+ 117,
1917
+ 116,
1918
+ 104,
1919
+ 111,
1920
+ 114,
1921
+ 105,
1922
+ 116,
1923
+ 121
1924
+ ]
1925
+ }
1926
+ ]
1927
+ }
1928
+ },
1929
+ {
1930
+ "name": "fleet",
1931
+ "writable": true
1932
+ },
1933
+ {
1934
+ "name": "game_id"
1935
+ },
1936
+ {
1937
+ "name": "starbase"
1938
+ },
1939
+ {
1940
+ "name": "starbase_player",
1941
+ "writable": true
1942
+ },
1943
+ {
1944
+ "name": "sage_program"
1945
+ }
1946
+ ],
1947
+ "args": []
1948
+ },
1921
1949
  {
1922
1950
  "name": "reset_rental",
1923
1951
  "docs": [
1924
- "Resets a rental in the event of an early cancellation or contract ending."
1952
+ "Reset a cancelled rental and process refunds."
1925
1953
  ],
1926
1954
  "discriminator": [
1927
1955
  139,
@@ -1934,6 +1962,11 @@
1934
1962
  183
1935
1963
  ],
1936
1964
  "accounts": [
1965
+ {
1966
+ "name": "signer",
1967
+ "writable": true,
1968
+ "signer": true
1969
+ },
1937
1970
  {
1938
1971
  "name": "fleet",
1939
1972
  "writable": true
@@ -1996,7 +2029,7 @@
1996
2029
  {
1997
2030
  "name": "update_config",
1998
2031
  "docs": [
1999
- "Updates the SRSLY program configuration"
2032
+ "Update program configuration. Only callable by config authority."
2000
2033
  ],
2001
2034
  "discriminator": [
2002
2035
  29,
@@ -2222,6 +2255,26 @@
2222
2255
  "code": 6023,
2223
2256
  "name": "RentalNotExpired",
2224
2257
  "msg": "Rental has not expired yet. Cannot close contract with active rental."
2258
+ },
2259
+ {
2260
+ "code": 6024,
2261
+ "name": "InvalidAccountOwner",
2262
+ "msg": "Account is owned by the wrong program."
2263
+ },
2264
+ {
2265
+ "code": 6025,
2266
+ "name": "InvalidAccountData",
2267
+ "msg": "Account data is invalid or corrupted."
2268
+ },
2269
+ {
2270
+ "code": 6026,
2271
+ "name": "UnauthorizedAccess",
2272
+ "msg": "Unauthorized access to this resource."
2273
+ },
2274
+ {
2275
+ "code": 6027,
2276
+ "name": "ArithmeticOverflow",
2277
+ "msg": "Arithmetic overflow occurred in calculation."
2225
2278
  }
2226
2279
  ],
2227
2280
  "types": [
@@ -2260,57 +2313,89 @@
2260
2313
  {
2261
2314
  "name": "Config",
2262
2315
  "docs": [
2263
- "Admin-configurable settings for the SRSLY program"
2316
+ "Global configuration for the SRSLY rental program.",
2317
+ "",
2318
+ "PDA derived from `CONFIG_SEED`. Contains system-wide settings including fees,",
2319
+ "duration limits, and payment frequencies. Only config authority can update."
2264
2320
  ],
2265
2321
  "type": {
2266
2322
  "kind": "struct",
2267
2323
  "fields": [
2268
2324
  {
2269
2325
  "name": "version",
2326
+ "docs": [
2327
+ "Account version for migrations"
2328
+ ],
2270
2329
  "type": "u8"
2271
2330
  },
2272
2331
  {
2273
2332
  "name": "bump",
2333
+ "docs": [
2334
+ "PDA bump seed"
2335
+ ],
2274
2336
  "type": "u8"
2275
2337
  },
2276
2338
  {
2277
2339
  "name": "authority",
2340
+ "docs": [
2341
+ "Authority that can update configuration"
2342
+ ],
2278
2343
  "type": "pubkey"
2279
2344
  },
2280
2345
  {
2281
2346
  "name": "stardust_to_atlas",
2347
+ "docs": [
2348
+ "Stardust to ATLAS conversion rate (default: 100M = 1 ATLAS)"
2349
+ ],
2282
2350
  "type": "u64"
2283
2351
  },
2284
2352
  {
2285
2353
  "name": "service_fee_bps",
2286
- "type": "u64"
2287
- },
2288
- {
2289
- "name": "referral_fee_bps",
2354
+ "docs": [
2355
+ "Service fee in basis points (default: 1000 = 10%, max: 10%)"
2356
+ ],
2290
2357
  "type": "u64"
2291
2358
  },
2292
2359
  {
2293
2360
  "name": "base_bps",
2361
+ "docs": [
2362
+ "Basis points denominator (default: 10,000)"
2363
+ ],
2294
2364
  "type": "u64"
2295
2365
  },
2296
2366
  {
2297
2367
  "name": "rental_duration_min_seconds",
2368
+ "docs": [
2369
+ "Minimum rental duration (default: 3600s = 1 hour)"
2370
+ ],
2298
2371
  "type": "u64"
2299
2372
  },
2300
2373
  {
2301
2374
  "name": "rental_duration_max_seconds",
2375
+ "docs": [
2376
+ "Maximum rental duration (default: 8,035,200s ≈ 3 months)"
2377
+ ],
2302
2378
  "type": "u64"
2303
2379
  },
2304
2380
  {
2305
2381
  "name": "fees_account",
2382
+ "docs": [
2383
+ "Address that receives collected fees"
2384
+ ],
2306
2385
  "type": "pubkey"
2307
2386
  },
2308
2387
  {
2309
2388
  "name": "atlas_mint",
2389
+ "docs": [
2390
+ "ATLAS token mint for payments"
2391
+ ],
2310
2392
  "type": "pubkey"
2311
2393
  },
2312
2394
  {
2313
2395
  "name": "default_payment_frequency",
2396
+ "docs": [
2397
+ "Default payment frequency (default: Daily)"
2398
+ ],
2314
2399
  "type": {
2315
2400
  "defined": {
2316
2401
  "name": "PaymentFrequency"
@@ -2319,6 +2404,9 @@
2319
2404
  },
2320
2405
  {
2321
2406
  "name": "allowed_frequencies",
2407
+ "docs": [
2408
+ "Allowed payment frequencies (max 10)"
2409
+ ],
2322
2410
  "type": {
2323
2411
  "vec": {
2324
2412
  "defined": {
@@ -2332,65 +2420,90 @@
2332
2420
  },
2333
2421
  {
2334
2422
  "name": "ConfigUpdateParams",
2423
+ "docs": [
2424
+ "Parameters for updating global configuration. All fields are optional",
2425
+ "for partial updates."
2426
+ ],
2335
2427
  "type": {
2336
2428
  "kind": "struct",
2337
2429
  "fields": [
2338
2430
  {
2339
2431
  "name": "authority",
2432
+ "docs": [
2433
+ "New authority address"
2434
+ ],
2340
2435
  "type": {
2341
2436
  "option": "pubkey"
2342
2437
  }
2343
2438
  },
2344
2439
  {
2345
2440
  "name": "stardust_to_atlas",
2441
+ "docs": [
2442
+ "Stardust to ATLAS conversion rate"
2443
+ ],
2346
2444
  "type": {
2347
2445
  "option": "u64"
2348
2446
  }
2349
2447
  },
2350
2448
  {
2351
2449
  "name": "service_fee_bps",
2352
- "type": {
2353
- "option": "u64"
2354
- }
2355
- },
2356
- {
2357
- "name": "referral_fee_bps",
2450
+ "docs": [
2451
+ "Service fee in basis points (1000 = 10%)"
2452
+ ],
2358
2453
  "type": {
2359
2454
  "option": "u64"
2360
2455
  }
2361
2456
  },
2362
2457
  {
2363
2458
  "name": "base_bps",
2459
+ "docs": [
2460
+ "Basis points denominator"
2461
+ ],
2364
2462
  "type": {
2365
2463
  "option": "u64"
2366
2464
  }
2367
2465
  },
2368
2466
  {
2369
2467
  "name": "rental_duration_min_seconds",
2468
+ "docs": [
2469
+ "Minimum rental duration in seconds"
2470
+ ],
2370
2471
  "type": {
2371
2472
  "option": "u64"
2372
2473
  }
2373
2474
  },
2374
2475
  {
2375
2476
  "name": "rental_duration_max_seconds",
2477
+ "docs": [
2478
+ "Maximum rental duration in seconds"
2479
+ ],
2376
2480
  "type": {
2377
2481
  "option": "u64"
2378
2482
  }
2379
2483
  },
2380
2484
  {
2381
2485
  "name": "fees_account",
2486
+ "docs": [
2487
+ "Fee collection address"
2488
+ ],
2382
2489
  "type": {
2383
2490
  "option": "pubkey"
2384
2491
  }
2385
2492
  },
2386
2493
  {
2387
2494
  "name": "atlas_mint",
2495
+ "docs": [
2496
+ "ATLAS token mint address"
2497
+ ],
2388
2498
  "type": {
2389
2499
  "option": "pubkey"
2390
2500
  }
2391
2501
  },
2392
2502
  {
2393
2503
  "name": "default_payment_frequency",
2504
+ "docs": [
2505
+ "Default payment frequency"
2506
+ ],
2394
2507
  "type": {
2395
2508
  "option": {
2396
2509
  "defined": {
@@ -2401,6 +2514,9 @@
2401
2514
  },
2402
2515
  {
2403
2516
  "name": "allowed_frequencies",
2517
+ "docs": [
2518
+ "Allowed payment frequencies"
2519
+ ],
2404
2520
  "type": {
2405
2521
  "option": {
2406
2522
  "vec": {
@@ -2417,61 +2533,103 @@
2417
2533
  {
2418
2534
  "name": "ContractState",
2419
2535
  "docs": [
2420
- "* **Rental Contract State**\n *\n * This account stores the details of a fleet rental contract, which includes:\n * - Rental price (`rate`)\n * - Duration constraints (`duration_min`, `duration_max`)\n * - Payment frequency (`payments_feq`)\n * - Ownership details (`owner`, `owner_token_account`)\n * - Current rental status (`current_rental_state`)\n * - Fleet and game identifiers"
2536
+ "Rental contract defining terms for a specific fleet.",
2537
+ "",
2538
+ "PDA derived from `RENTAL_CONTRACT_SEED` and fleet public key. Integrates with SAGE",
2539
+ "for fleet ownership and rental permissions."
2421
2540
  ],
2422
2541
  "type": {
2423
2542
  "kind": "struct",
2424
2543
  "fields": [
2425
2544
  {
2426
2545
  "name": "version",
2546
+ "docs": [
2547
+ "Version number for account migrations"
2548
+ ],
2427
2549
  "type": "u8"
2428
2550
  },
2429
2551
  {
2430
2552
  "name": "to_close",
2553
+ "docs": [
2554
+ "Whether contract is scheduled for closure"
2555
+ ],
2431
2556
  "type": "bool"
2432
2557
  },
2433
2558
  {
2434
2559
  "name": "rate",
2560
+ "docs": [
2561
+ "Rental rate per payment period in ATLAS tokens"
2562
+ ],
2435
2563
  "type": "u64"
2436
2564
  },
2437
2565
  {
2438
2566
  "name": "duration_min",
2567
+ "docs": [
2568
+ "Minimum rental duration in seconds"
2569
+ ],
2439
2570
  "type": "u64"
2440
2571
  },
2441
2572
  {
2442
2573
  "name": "duration_max",
2574
+ "docs": [
2575
+ "Maximum rental duration in seconds"
2576
+ ],
2443
2577
  "type": "u64"
2444
2578
  },
2445
2579
  {
2446
2580
  "name": "payments_feq",
2581
+ "docs": [
2582
+ "Payment frequency string (@hourly, @daily, etc.)"
2583
+ ],
2447
2584
  "type": "string"
2448
2585
  },
2449
2586
  {
2450
2587
  "name": "fleet",
2588
+ "docs": [
2589
+ "Fleet associated with this contract"
2590
+ ],
2451
2591
  "type": "pubkey"
2452
2592
  },
2453
2593
  {
2454
2594
  "name": "game_id",
2595
+ "docs": [
2596
+ "Game ID for SAGE integration"
2597
+ ],
2455
2598
  "type": "pubkey"
2456
2599
  },
2457
2600
  {
2458
2601
  "name": "current_rental_state",
2602
+ "docs": [
2603
+ "Currently active rental state (system_program::ID if none)"
2604
+ ],
2459
2605
  "type": "pubkey"
2460
2606
  },
2461
2607
  {
2462
2608
  "name": "owner",
2609
+ "docs": [
2610
+ "Fleet owner who receives payments"
2611
+ ],
2463
2612
  "type": "pubkey"
2464
2613
  },
2465
2614
  {
2466
2615
  "name": "owner_token_account",
2616
+ "docs": [
2617
+ "Owner's token account for receiving payments"
2618
+ ],
2467
2619
  "type": "pubkey"
2468
2620
  },
2469
2621
  {
2470
2622
  "name": "owner_profile",
2623
+ "docs": [
2624
+ "Owner's Star Atlas game profile"
2625
+ ],
2471
2626
  "type": "pubkey"
2472
2627
  },
2473
2628
  {
2474
2629
  "name": "bump",
2630
+ "docs": [
2631
+ "PDA bump seed"
2632
+ ],
2475
2633
  "type": "u8"
2476
2634
  }
2477
2635
  ]
@@ -2557,6 +2715,37 @@
2557
2715
  },
2558
2716
  {
2559
2717
  "name": "PaymentFrequency",
2718
+ "docs": [
2719
+ "Represents the different payment frequencies supported by the rental system.",
2720
+ "",
2721
+ "Payment frequencies determine how often rental payments are processed automatically.",
2722
+ "Each frequency corresponds to a specific time interval and is used to calculate",
2723
+ "payment amounts and schedule automated payment threads.",
2724
+ "",
2725
+ "# Variants",
2726
+ "",
2727
+ "* `Hourly` - Payments processed every hour (3,600 seconds)",
2728
+ "* `Daily` - Payments processed every day (86,400 seconds) - **Default**",
2729
+ "* `DailyOld` - Legacy daily variant maintained for backwards compatibility",
2730
+ "* `Weekly` - Payments processed every week (604,800 seconds)",
2731
+ "* `Monthly` - Payments processed every month (2,678,400 seconds)",
2732
+ "* `Decasecond` - Payments processed every 10 seconds (development/testing only)",
2733
+ "* `Minute` - Payments processed every minute (development/testing only)",
2734
+ "",
2735
+ "# Examples",
2736
+ "",
2737
+ "```rust,ignore",
2738
+ "use PaymentFrequency;",
2739
+ "",
2740
+ "// Create a daily payment frequency (default)",
2741
+ "let frequency = PaymentFrequency::default();",
2742
+ "assert_eq!(frequency.to_seconds(), 86400);",
2743
+ "",
2744
+ "// Parse from string representation",
2745
+ "let weekly = PaymentFrequency::from_str(\"@weekly\")?;",
2746
+ "assert_eq!(weekly.to_seconds(), 604800);",
2747
+ "```"
2748
+ ],
2560
2749
  "type": {
2561
2750
  "kind": "enum",
2562
2751
  "variants": [
@@ -2587,53 +2776,82 @@
2587
2776
  {
2588
2777
  "name": "RentalState",
2589
2778
  "docs": [
2590
- "* **Rental State Account**\n *\n * This account stores data for an **active** rental session, including:\n * - The renter's (`borrower`) public key\n * - Payment details, including rate and total duration\n * - Start and end timestamps\n * - Whether the rental was cancelled early"
2779
+ "Active rental session between a fleet owner and borrower.",
2780
+ "",
2781
+ "Handles automated payments via Clockwork threads and tracks rental lifecycle.",
2782
+ "PDA derived from contract address and borrower public key."
2591
2783
  ],
2592
2784
  "type": {
2593
2785
  "kind": "struct",
2594
2786
  "fields": [
2595
2787
  {
2596
2788
  "name": "version",
2789
+ "docs": [
2790
+ "Version number for account migrations"
2791
+ ],
2597
2792
  "type": "u8"
2598
2793
  },
2599
2794
  {
2600
2795
  "name": "borrower",
2796
+ "docs": [
2797
+ "Borrower public key (receives refunds if cancelled)"
2798
+ ],
2601
2799
  "type": "pubkey"
2602
2800
  },
2603
2801
  {
2604
2802
  "name": "thread",
2803
+ "docs": [
2804
+ "Clockwork thread for automated payments"
2805
+ ],
2605
2806
  "type": "pubkey"
2606
2807
  },
2607
2808
  {
2608
2809
  "name": "contract",
2810
+ "docs": [
2811
+ "Reference to the rental contract"
2812
+ ],
2609
2813
  "type": "pubkey"
2610
2814
  },
2611
2815
  {
2612
2816
  "name": "owner_token_account",
2613
- "type": "pubkey"
2614
- },
2615
- {
2616
- "name": "referral_token_account",
2817
+ "docs": [
2818
+ "Owner's token account for receiving payments"
2819
+ ],
2617
2820
  "type": "pubkey"
2618
2821
  },
2619
2822
  {
2620
2823
  "name": "rate",
2824
+ "docs": [
2825
+ "Effective rental rate per payment cycle"
2826
+ ],
2621
2827
  "type": "f64"
2622
2828
  },
2623
2829
  {
2624
2830
  "name": "start_time",
2831
+ "docs": [
2832
+ "Rental start timestamp"
2833
+ ],
2625
2834
  "type": "i64"
2626
2835
  },
2627
2836
  {
2628
2837
  "name": "end_time",
2838
+ "docs": [
2839
+ "Rental end timestamp"
2840
+ ],
2629
2841
  "type": "i64"
2630
2842
  },
2631
2843
  {
2632
2844
  "name": "cancelled",
2845
+ "docs": [
2846
+ "Whether rental was cancelled early"
2847
+ ],
2633
2848
  "type": "bool"
2634
2849
  },
2635
2850
  {
2636
2851
  "name": "bump",
2852
+ "docs": [
2853
+ "PDA bump seed"
2854
+ ],
2637
2855
  "type": "u8"
2638
2856
  }
2639
2857
  ]
@@ -3083,7 +3301,13 @@
3083
3301
  {
3084
3302
  "name": "THREAD_SEED",
3085
3303
  "docs": [
3086
- "Global seed prefix for PDAs in the program."
3304
+ "Seed for automated payment thread PDAs managed by Clockwork.",
3305
+ "",
3306
+ "Used to create deterministic addresses for Clockwork threads that handle",
3307
+ "recurring rental payments. Each rental gets its own thread for automated",
3308
+ "payment processing at the specified frequency.",
3309
+ "",
3310
+ "**Usage**: Combined with rental state account address to create unique thread PDAs."
3087
3311
  ],
3088
3312
  "type": "bytes",
3089
3313
  "value": "[116, 104, 114, 101, 97, 100]"