@sly-rentals/core 4.0.0 → 5.1.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 (291) hide show
  1. package/dist/api.json +14113 -8121
  2. package/dist/cjs/accounts/contract.js +60 -29
  3. package/dist/cjs/accounts/contract.js.map +1 -1
  4. package/dist/cjs/audit/events-registry.js +13 -0
  5. package/dist/cjs/audit/events-registry.js.map +1 -1
  6. package/dist/cjs/audit/events.js +220 -0
  7. package/dist/cjs/audit/events.js.map +1 -1
  8. package/dist/cjs/cost/estimate.js +18 -4
  9. package/dist/cjs/cost/estimate.js.map +1 -1
  10. package/dist/cjs/cost/estimate.test.js +11 -1
  11. package/dist/cjs/cost/estimate.test.js.map +1 -1
  12. package/dist/cjs/generated/codama/accounts/configState.js +3 -1
  13. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  14. package/dist/cjs/generated/codama/accounts/contractState.js +4 -0
  15. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  16. package/dist/cjs/generated/codama/errors/srsly.js +3 -3
  17. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  18. package/dist/cjs/generated/codama/instructions/createContract.js +2 -0
  19. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  20. package/dist/cjs/generated/codama/instructions/index.js +2 -0
  21. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  22. package/dist/cjs/generated/codama/instructions/migrateConfig.js +119 -0
  23. package/dist/cjs/generated/codama/instructions/migrateConfig.js.map +1 -0
  24. package/dist/cjs/generated/codama/instructions/migrateContract.js +84 -0
  25. package/dist/cjs/generated/codama/instructions/migrateContract.js.map +1 -0
  26. package/dist/cjs/generated/codama/instructions/updateConfig.js +2 -0
  27. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  28. package/dist/cjs/generated/codama/instructions/updateContract.js +2 -0
  29. package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
  30. package/dist/cjs/generated/codama/programs/srsly.js +15 -7
  31. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  32. package/dist/cjs/generated/codama/types/borrowerClaimed.js +31 -0
  33. package/dist/cjs/generated/codama/types/borrowerClaimed.js.map +1 -0
  34. package/dist/cjs/generated/codama/types/borrowerClosed.js +29 -0
  35. package/dist/cjs/generated/codama/types/borrowerClosed.js.map +1 -0
  36. package/dist/cjs/generated/codama/types/borrowerCreated.js +29 -0
  37. package/dist/cjs/generated/codama/types/borrowerCreated.js.map +1 -0
  38. package/dist/cjs/generated/codama/types/contractCloseQueued.js +29 -0
  39. package/dist/cjs/generated/codama/types/contractCloseQueued.js.map +1 -0
  40. package/dist/cjs/generated/codama/types/contractClosed.js +29 -0
  41. package/dist/cjs/generated/codama/types/contractClosed.js.map +1 -0
  42. package/dist/cjs/generated/codama/types/contractCreated.js +47 -0
  43. package/dist/cjs/generated/codama/types/contractCreated.js.map +1 -0
  44. package/dist/cjs/generated/codama/types/contractUpdated.js +39 -0
  45. package/dist/cjs/generated/codama/types/contractUpdated.js.map +1 -0
  46. package/dist/cjs/generated/codama/types/delegateSet.js +31 -0
  47. package/dist/cjs/generated/codama/types/delegateSet.js.map +1 -0
  48. package/dist/cjs/generated/codama/types/index.js +14 -0
  49. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  50. package/dist/cjs/generated/codama/types/reservationKnockedOff.js +41 -0
  51. package/dist/cjs/generated/codama/types/reservationKnockedOff.js.map +1 -0
  52. package/dist/cjs/generated/codama/types/reservationPlaced.js +37 -0
  53. package/dist/cjs/generated/codama/types/reservationPlaced.js.map +1 -0
  54. package/dist/cjs/generated/codama/types/staleDecayApplied.js +33 -0
  55. package/dist/cjs/generated/codama/types/staleDecayApplied.js.map +1 -0
  56. package/dist/cjs/generated/codama/types/threadClosed.js +29 -0
  57. package/dist/cjs/generated/codama/types/threadClosed.js.map +1 -0
  58. package/dist/cjs/generated/codama/types/threadCreated.js +33 -0
  59. package/dist/cjs/generated/codama/types/threadCreated.js.map +1 -0
  60. package/dist/cjs/generated/codama/types/threadFunded.js +39 -0
  61. package/dist/cjs/generated/codama/types/threadFunded.js.map +1 -0
  62. package/dist/cjs/idl/srsly.json +3152 -302
  63. package/dist/cjs/instructions/createContract.js +1 -0
  64. package/dist/cjs/instructions/createContract.js.map +1 -1
  65. package/dist/cjs/instructions/index.js +5 -1
  66. package/dist/cjs/instructions/index.js.map +1 -1
  67. package/dist/cjs/instructions/migrateConfig.js +41 -0
  68. package/dist/cjs/instructions/migrateConfig.js.map +1 -0
  69. package/dist/cjs/instructions/migrateContract.js +47 -0
  70. package/dist/cjs/instructions/migrateContract.js.map +1 -0
  71. package/dist/cjs/instructions/reserveRental.js +4 -3
  72. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  73. package/dist/cjs/instructions/updateConfig.js +1 -0
  74. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  75. package/dist/cjs/instructions/updateContract.js +3 -1
  76. package/dist/cjs/instructions/updateContract.js.map +1 -1
  77. package/dist/cjs/kit/index.js +6 -1
  78. package/dist/cjs/kit/index.js.map +1 -1
  79. package/dist/cjs/legacy/index.js +3 -1
  80. package/dist/cjs/legacy/index.js.map +1 -1
  81. package/dist/cjs/package.json +1 -2
  82. package/dist/cjs/params/index.js +1 -0
  83. package/dist/cjs/params/index.js.map +1 -1
  84. package/dist/cjs/params/points.js +110 -0
  85. package/dist/cjs/params/points.js.map +1 -0
  86. package/dist/cjs/utils/clock.js +42 -0
  87. package/dist/cjs/utils/clock.js.map +1 -0
  88. package/dist/cjs/utils/contractSnapshot.js +46 -5
  89. package/dist/cjs/utils/contractSnapshot.js.map +1 -1
  90. package/dist/cjs/utils/contractSnapshot.test.js +28 -3
  91. package/dist/cjs/utils/contractSnapshot.test.js.map +1 -1
  92. package/dist/cjs/utils/index.js +7 -1
  93. package/dist/cjs/utils/index.js.map +1 -1
  94. package/dist/cjs/utils/staleDecay.js +47 -0
  95. package/dist/cjs/utils/staleDecay.js.map +1 -0
  96. package/dist/cjs/utils/staleDecay.test.js +71 -0
  97. package/dist/cjs/utils/staleDecay.test.js.map +1 -0
  98. package/dist/cjs/version.js +1 -1
  99. package/dist/esm/accounts/contract.js +59 -29
  100. package/dist/esm/accounts/contract.js.map +1 -1
  101. package/dist/esm/audit/events-registry.js +13 -0
  102. package/dist/esm/audit/events-registry.js.map +1 -1
  103. package/dist/esm/audit/events.js +220 -0
  104. package/dist/esm/audit/events.js.map +1 -1
  105. package/dist/esm/cost/estimate.js +18 -4
  106. package/dist/esm/cost/estimate.js.map +1 -1
  107. package/dist/esm/cost/estimate.test.js +11 -1
  108. package/dist/esm/cost/estimate.test.js.map +1 -1
  109. package/dist/esm/generated/codama/accounts/configState.js +3 -1
  110. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  111. package/dist/esm/generated/codama/accounts/contractState.js +5 -1
  112. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  113. package/dist/esm/generated/codama/errors/srsly.js +5 -5
  114. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  115. package/dist/esm/generated/codama/instructions/createContract.js +2 -0
  116. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  117. package/dist/esm/generated/codama/instructions/index.js +2 -0
  118. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  119. package/dist/esm/generated/codama/instructions/migrateConfig.js +109 -0
  120. package/dist/esm/generated/codama/instructions/migrateConfig.js.map +1 -0
  121. package/dist/esm/generated/codama/instructions/migrateContract.js +75 -0
  122. package/dist/esm/generated/codama/instructions/migrateContract.js.map +1 -0
  123. package/dist/esm/generated/codama/instructions/updateConfig.js +2 -0
  124. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  125. package/dist/esm/generated/codama/instructions/updateContract.js +3 -1
  126. package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
  127. package/dist/esm/generated/codama/programs/srsly.js +15 -7
  128. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  129. package/dist/esm/generated/codama/types/borrowerClaimed.js +26 -0
  130. package/dist/esm/generated/codama/types/borrowerClaimed.js.map +1 -0
  131. package/dist/esm/generated/codama/types/borrowerClosed.js +24 -0
  132. package/dist/esm/generated/codama/types/borrowerClosed.js.map +1 -0
  133. package/dist/esm/generated/codama/types/borrowerCreated.js +24 -0
  134. package/dist/esm/generated/codama/types/borrowerCreated.js.map +1 -0
  135. package/dist/esm/generated/codama/types/contractCloseQueued.js +24 -0
  136. package/dist/esm/generated/codama/types/contractCloseQueued.js.map +1 -0
  137. package/dist/esm/generated/codama/types/contractClosed.js +24 -0
  138. package/dist/esm/generated/codama/types/contractClosed.js.map +1 -0
  139. package/dist/esm/generated/codama/types/contractCreated.js +42 -0
  140. package/dist/esm/generated/codama/types/contractCreated.js.map +1 -0
  141. package/dist/esm/generated/codama/types/contractUpdated.js +34 -0
  142. package/dist/esm/generated/codama/types/contractUpdated.js.map +1 -0
  143. package/dist/esm/generated/codama/types/delegateSet.js +26 -0
  144. package/dist/esm/generated/codama/types/delegateSet.js.map +1 -0
  145. package/dist/esm/generated/codama/types/index.js +14 -0
  146. package/dist/esm/generated/codama/types/index.js.map +1 -1
  147. package/dist/esm/generated/codama/types/reservationKnockedOff.js +36 -0
  148. package/dist/esm/generated/codama/types/reservationKnockedOff.js.map +1 -0
  149. package/dist/esm/generated/codama/types/reservationPlaced.js +32 -0
  150. package/dist/esm/generated/codama/types/reservationPlaced.js.map +1 -0
  151. package/dist/esm/generated/codama/types/staleDecayApplied.js +28 -0
  152. package/dist/esm/generated/codama/types/staleDecayApplied.js.map +1 -0
  153. package/dist/esm/generated/codama/types/threadClosed.js +24 -0
  154. package/dist/esm/generated/codama/types/threadClosed.js.map +1 -0
  155. package/dist/esm/generated/codama/types/threadCreated.js +28 -0
  156. package/dist/esm/generated/codama/types/threadCreated.js.map +1 -0
  157. package/dist/esm/generated/codama/types/threadFunded.js +34 -0
  158. package/dist/esm/generated/codama/types/threadFunded.js.map +1 -0
  159. package/dist/esm/idl/srsly.json +3152 -302
  160. package/dist/esm/instructions/createContract.js +1 -0
  161. package/dist/esm/instructions/createContract.js.map +1 -1
  162. package/dist/esm/instructions/index.js +2 -0
  163. package/dist/esm/instructions/index.js.map +1 -1
  164. package/dist/esm/instructions/migrateConfig.js +38 -0
  165. package/dist/esm/instructions/migrateConfig.js.map +1 -0
  166. package/dist/esm/instructions/migrateContract.js +44 -0
  167. package/dist/esm/instructions/migrateContract.js.map +1 -0
  168. package/dist/esm/instructions/reserveRental.js +4 -3
  169. package/dist/esm/instructions/reserveRental.js.map +1 -1
  170. package/dist/esm/instructions/updateConfig.js +1 -0
  171. package/dist/esm/instructions/updateConfig.js.map +1 -1
  172. package/dist/esm/instructions/updateContract.js +3 -1
  173. package/dist/esm/instructions/updateContract.js.map +1 -1
  174. package/dist/esm/kit/index.js +4 -0
  175. package/dist/esm/kit/index.js.map +1 -1
  176. package/dist/esm/legacy/index.js +2 -0
  177. package/dist/esm/legacy/index.js.map +1 -1
  178. package/dist/esm/package.json +1 -2
  179. package/dist/esm/params/index.js +1 -0
  180. package/dist/esm/params/index.js.map +1 -1
  181. package/dist/esm/params/points.js +104 -0
  182. package/dist/esm/params/points.js.map +1 -0
  183. package/dist/esm/utils/clock.js +39 -0
  184. package/dist/esm/utils/clock.js.map +1 -0
  185. package/dist/esm/utils/contractSnapshot.js +46 -5
  186. package/dist/esm/utils/contractSnapshot.js.map +1 -1
  187. package/dist/esm/utils/contractSnapshot.test.js +28 -3
  188. package/dist/esm/utils/contractSnapshot.test.js.map +1 -1
  189. package/dist/esm/utils/index.js +4 -0
  190. package/dist/esm/utils/index.js.map +1 -1
  191. package/dist/esm/utils/staleDecay.js +44 -0
  192. package/dist/esm/utils/staleDecay.js.map +1 -0
  193. package/dist/esm/utils/staleDecay.test.js +69 -0
  194. package/dist/esm/utils/staleDecay.test.js.map +1 -0
  195. package/dist/esm/version.js +1 -1
  196. package/dist/idl/srsly.json +3153 -303
  197. package/dist/types/accounts/contract.d.ts +11 -5
  198. package/dist/types/accounts/contract.d.ts.map +1 -1
  199. package/dist/types/audit/events-registry.d.ts +1 -1
  200. package/dist/types/audit/events-registry.d.ts.map +1 -1
  201. package/dist/types/audit/events.d.ts.map +1 -1
  202. package/dist/types/audit/index.d.ts +1 -1
  203. package/dist/types/audit/index.d.ts.map +1 -1
  204. package/dist/types/audit/types.d.ts +121 -1
  205. package/dist/types/audit/types.d.ts.map +1 -1
  206. package/dist/types/cost/estimate.d.ts +17 -2
  207. package/dist/types/cost/estimate.d.ts.map +1 -1
  208. package/dist/types/generated/codama/accounts/configState.d.ts +16 -0
  209. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  210. package/dist/types/generated/codama/accounts/contractState.d.ts +40 -0
  211. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  212. package/dist/types/generated/codama/errors/srsly.d.ts +1 -1
  213. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  214. package/dist/types/generated/codama/instructions/createContract.d.ts +4 -0
  215. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  216. package/dist/types/generated/codama/instructions/index.d.ts +2 -0
  217. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  218. package/dist/types/generated/codama/instructions/migrateConfig.d.ts +66 -0
  219. package/dist/types/generated/codama/instructions/migrateConfig.d.ts.map +1 -0
  220. package/dist/types/generated/codama/instructions/migrateContract.d.ts +59 -0
  221. package/dist/types/generated/codama/instructions/migrateContract.d.ts.map +1 -0
  222. package/dist/types/generated/codama/instructions/updateConfig.d.ts +16 -0
  223. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  224. package/dist/types/generated/codama/instructions/updateContract.d.ts +22 -0
  225. package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
  226. package/dist/types/generated/codama/programs/srsly.d.ts +14 -8
  227. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  228. package/dist/types/generated/codama/types/borrowerClaimed.d.ts +23 -0
  229. package/dist/types/generated/codama/types/borrowerClaimed.d.ts.map +1 -0
  230. package/dist/types/generated/codama/types/borrowerClosed.d.ts +18 -0
  231. package/dist/types/generated/codama/types/borrowerClosed.d.ts.map +1 -0
  232. package/dist/types/generated/codama/types/borrowerCreated.d.ts +18 -0
  233. package/dist/types/generated/codama/types/borrowerCreated.d.ts.map +1 -0
  234. package/dist/types/generated/codama/types/contractCloseQueued.d.ts +22 -0
  235. package/dist/types/generated/codama/types/contractCloseQueued.d.ts.map +1 -0
  236. package/dist/types/generated/codama/types/contractClosed.d.ts +18 -0
  237. package/dist/types/generated/codama/types/contractClosed.d.ts.map +1 -0
  238. package/dist/types/generated/codama/types/contractCreated.d.ts +39 -0
  239. package/dist/types/generated/codama/types/contractCreated.d.ts.map +1 -0
  240. package/dist/types/generated/codama/types/contractUpdated.d.ts +34 -0
  241. package/dist/types/generated/codama/types/contractUpdated.d.ts.map +1 -0
  242. package/dist/types/generated/codama/types/delegateSet.d.ts +23 -0
  243. package/dist/types/generated/codama/types/delegateSet.d.ts.map +1 -0
  244. package/dist/types/generated/codama/types/index.d.ts +14 -0
  245. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  246. package/dist/types/generated/codama/types/reservationKnockedOff.d.ts +33 -0
  247. package/dist/types/generated/codama/types/reservationKnockedOff.d.ts.map +1 -0
  248. package/dist/types/generated/codama/types/reservationPlaced.d.ts +32 -0
  249. package/dist/types/generated/codama/types/reservationPlaced.d.ts.map +1 -0
  250. package/dist/types/generated/codama/types/staleDecayApplied.d.ts +31 -0
  251. package/dist/types/generated/codama/types/staleDecayApplied.d.ts.map +1 -0
  252. package/dist/types/generated/codama/types/threadClosed.d.ts +18 -0
  253. package/dist/types/generated/codama/types/threadClosed.d.ts.map +1 -0
  254. package/dist/types/generated/codama/types/threadCreated.d.ts +25 -0
  255. package/dist/types/generated/codama/types/threadCreated.d.ts.map +1 -0
  256. package/dist/types/generated/codama/types/threadFunded.d.ts +28 -0
  257. package/dist/types/generated/codama/types/threadFunded.d.ts.map +1 -0
  258. package/dist/types/instructions/createContract.d.ts +10 -0
  259. package/dist/types/instructions/createContract.d.ts.map +1 -1
  260. package/dist/types/instructions/index.d.ts +2 -0
  261. package/dist/types/instructions/index.d.ts.map +1 -1
  262. package/dist/types/instructions/migrateConfig.d.ts +39 -0
  263. package/dist/types/instructions/migrateConfig.d.ts.map +1 -0
  264. package/dist/types/instructions/migrateContract.d.ts +44 -0
  265. package/dist/types/instructions/migrateContract.d.ts.map +1 -0
  266. package/dist/types/instructions/reserveRental.d.ts +10 -2
  267. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  268. package/dist/types/instructions/updateConfig.d.ts +7 -0
  269. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  270. package/dist/types/instructions/updateContract.d.ts +7 -0
  271. package/dist/types/instructions/updateContract.d.ts.map +1 -1
  272. package/dist/types/kit/index.d.ts +1 -0
  273. package/dist/types/kit/index.d.ts.map +1 -1
  274. package/dist/types/legacy/index.d.ts +2 -0
  275. package/dist/types/legacy/index.d.ts.map +1 -1
  276. package/dist/types/params/index.d.ts +1 -0
  277. package/dist/types/params/index.d.ts.map +1 -1
  278. package/dist/types/params/points.d.ts +71 -0
  279. package/dist/types/params/points.d.ts.map +1 -0
  280. package/dist/types/utils/clock.d.ts +24 -0
  281. package/dist/types/utils/clock.d.ts.map +1 -0
  282. package/dist/types/utils/contractSnapshot.d.ts +24 -1
  283. package/dist/types/utils/contractSnapshot.d.ts.map +1 -1
  284. package/dist/types/utils/index.d.ts +2 -0
  285. package/dist/types/utils/index.d.ts.map +1 -1
  286. package/dist/types/utils/staleDecay.d.ts +21 -0
  287. package/dist/types/utils/staleDecay.d.ts.map +1 -0
  288. package/dist/types/utils/staleDecay.test.d.ts +2 -0
  289. package/dist/types/utils/staleDecay.test.d.ts.map +1 -0
  290. package/dist/types/version.d.ts +1 -1
  291. package/package.json +3 -4
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @purpose Read the on-chain Clock sysvar to get `unix_timestamp`.
3
+ *
4
+ * Use this instead of `Date.now()` whenever the SDK quotes a value the
5
+ * on-chain program would compute against `Clock::get()` — wall-clock skew
6
+ * between the client and the cluster can otherwise produce a stale or
7
+ * future-dated answer (matters for `rate_after_stale_decay` and any time
8
+ * projection that crosses the `stale_since` sentinel).
9
+ *
10
+ * Layout (offsets, little-endian):
11
+ * 0 slot u64
12
+ * 8 epoch_start_timestamp i64
13
+ * 16 epoch u64
14
+ * 24 leader_schedule_epoch u64
15
+ * 32 unix_timestamp i64 ← this is what callers want
16
+ */
17
+ /**
18
+ * Fetch the cluster's `Clock::unix_timestamp` as a JS `number` (seconds).
19
+ *
20
+ * One RPC round-trip (`getAccountInfo` on the sysvar). Safe to call in
21
+ * parallel with other fetches.
22
+ */
23
+ export declare function fetchChainNowSeconds(rpcUrl?: string): Promise<number>;
24
+ //# sourceMappingURL=clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../../src/utils/clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3E"}
@@ -34,6 +34,17 @@ export type ContractSnapshot = {
34
34
  * time-projected floors (`delaySeconds`, custom `nowSeconds`), call
35
35
  * `computeMinimumBidFromSnapshot(snap, opts)` — no extra RPC needed. */
36
36
  minimumBid: MinimumBid;
37
+ /** Chain `Clock::unix_timestamp` at fetch time. Used as the default
38
+ * evaluation moment for `effectiveRate` and any time-projected
39
+ * derivations. Fetched from the Sysvar Clock account, not `Date.now()`. */
40
+ nowSeconds: number;
41
+ /** Rate `rental_accept` would write back if called at `nowSeconds` —
42
+ * i.e. `contract.rate` with any pending stale-decay applied. Equals
43
+ * `contract.rate` exactly when decay short-circuits (active rental,
44
+ * `staleSince == 0`, `staleDiscountMaxBps == 0`, or protocol-wide
45
+ * `staleDiscountPerDayBps == 0`). UIs quoting an accept-time cost
46
+ * should use this rather than `contract.rate`. */
47
+ effectiveRate: bigint;
37
48
  };
38
49
  /**
39
50
  * Fetch a contract and every account directly attached to it in one shot,
@@ -91,8 +102,20 @@ export declare function resolveContractSnapshot(args: {
91
102
  * projection (`delaySeconds` / `nowSeconds`) or with an overridden
92
103
  * `atlasPerPoint` ratio. For the at-fetch-time floor, read
93
104
  * `snap.minimumBid` directly.
105
+ *
106
+ * Both `.atlas` and `.points` are on-chain-ready bid values — callers
107
+ * can feed them straight into `reserveRental(...)` without further
108
+ * conversion or threshold-clamping:
109
+ *
110
+ * - First-reservation contracts (`current === null`): both fields are
111
+ * clamped up to `config.min_capture_threshold` (and its atlas
112
+ * equivalent) so a bid built from either field clears the
113
+ * `bid_threshold` check.
114
+ * - Contested contracts (`current !== null`): `.atlas` is the
115
+ * rate-derived ramp floor only; `.points` additionally clamps to
116
+ * `min_capture_threshold` (the ramp dominates atlas by design).
94
117
  */
95
- export declare function computeMinimumBidFromSnapshot(snap: Omit<ContractSnapshot, 'minimumBid'>, opts?: {
118
+ export declare function computeMinimumBidFromSnapshot(snap: Omit<ContractSnapshot, 'minimumBid' | 'effectiveRate'>, opts?: {
96
119
  delaySeconds?: number;
97
120
  nowSeconds?: number;
98
121
  atlasPerPoint?: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"contractSnapshot.d.ts","sourceRoot":"","sources":["../../../src/utils/contractSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAM5E,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,QAAQ,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACxC;8EAC0E;IAC1E,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;8EAC0E;IAC1E,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;;6EAEyE;IACzE,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8B5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+B5B;AAUD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAC1C,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,UAAU,CAqEZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;oDACgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;+BAC2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;wDACoD;IACpD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BtB"}
1
+ {"version":3,"file":"contractSnapshot.d.ts","sourceRoot":"","sources":["../../../src/utils/contractSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAM5E,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAM/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,QAAQ,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACxC;8EAC0E;IAC1E,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;8EAC0E;IAC1E,YAAY,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;;6EAEyE;IACzE,UAAU,EAAE,UAAU,CAAC;IACvB;;gFAE4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;uDAKmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+B5B;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,eAAe,CAAC,EAC5D,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,UAAU,CAkGZ;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;oDACgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;+BAC2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;wDACoD;IACpD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BtB"}
@@ -14,6 +14,8 @@ export { hasActiveRental, hasQueuedRental } from './rental';
14
14
  export { computeMinimumBid, type MinimumBid } from './bidMath';
15
15
  export { computeContestChain, stardustToDisplay, distributeEven, distributeSnipeHeavy, nextKnobId, type ContestChain, type ContestChainConfig, type ContestKnob, type ContestRow, type ContestSegment, type EventSource, type Cur, } from './contestChain';
16
16
  export { getContractSnapshot, resolveContractSnapshot, computeMinimumBidFromSnapshot, getMinimumBid, type ContractSnapshot, type FetchedAccount, } from './contractSnapshot';
17
+ export { fetchChainNowSeconds } from './clock';
18
+ export { rateAfterStaleDecay } from './staleDecay';
17
19
  export { createDiscount, deserializeDiscountAuth, type CreateDiscountParams, type SerializedDiscountAuth, type MessageSigner, } from './discountAuth';
18
20
  export { resolveReferrer, requireValidReferrer } from './referrer';
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,GACrC,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAGtF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,GAAG,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,GACrC,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAGtF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,GAAG,GACT,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @purpose TS mirror of `ContractState::rate_after_stale_decay` (rust).
3
+ *
4
+ * Computes the rate a future `rental_accept` would write back, given the
5
+ * contract + config state at a specific moment in chain time. Pure — no
6
+ * RPC, no `Date.now()`. Caller supplies `nowSeconds` from the Clock
7
+ * sysvar (`fetchChainNowSeconds`) or any other authoritative source.
8
+ *
9
+ * Returns `contract.rate` unchanged when any of the on-chain short-circuits
10
+ * fire: active rental present, `stale_since == 0` sentinel,
11
+ * `stale_discount_max_bps == 0` (per-contract opt-out), or
12
+ * `stale_discount_per_day_bps == 0` (protocol-wide opt-out).
13
+ */
14
+ import type { ContractState } from '../generated/codama/accounts/contractState';
15
+ import type { ConfigState } from '../generated/codama/accounts/configState';
16
+ /**
17
+ * Mirrors `rust/programs/srsly/src/state/contract.rs::rate_after_stale_decay`
18
+ * byte-for-byte. Any change there must be reflected here.
19
+ */
20
+ export declare function rateAfterStaleDecay(contract: ContractState, config: ConfigState, nowSeconds: number | bigint): bigint;
21
+ //# sourceMappingURL=staleDecay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleDecay.d.ts","sourceRoot":"","sources":["../../../src/utils/staleDecay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAM5E;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,MAAM,CAwBR"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=staleDecay.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleDecay.test.d.ts","sourceRoot":"","sources":["../../../src/utils/staleDecay.test.ts"],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "4.0.0";
1
+ export declare const VERSION = "5.1.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sly-rentals/core",
3
- "version": "4.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "TypeScript SDK for SRSLY",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -100,7 +100,7 @@
100
100
  "@codama/renderers-js": "^1.4.2",
101
101
  "@solana/kit": "^2.1.1",
102
102
  "uplot": "^1.6.32",
103
- "@sly-rentals/vault": "1.0.1"
103
+ "@sly-rentals/vault": "2.0.1"
104
104
  },
105
105
  "devDependencies": {
106
106
  "@types/node": "^24.0.3",
@@ -109,8 +109,7 @@
109
109
  "react": "^18.2.0",
110
110
  "tsconfig-to-dual-package": "^1.2.0",
111
111
  "typescript": "^5.9.2",
112
- "vitest": "^3.2.4",
113
- "@sly-rentals/programs": "0.1.0"
112
+ "vitest": "^3.2.4"
114
113
  },
115
114
  "peerDependencies": {
116
115
  "@solana/web3.js": "^1.95.0",