@sly-rentals/core 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/api.json +12242 -9231
  2. package/dist/cjs/calculator/ContestTimeline.js +396 -0
  3. package/dist/cjs/calculator/ContestTimeline.js.map +1 -0
  4. package/dist/cjs/calculator/MinBidChart.js +419 -0
  5. package/dist/cjs/calculator/MinBidChart.js.map +1 -0
  6. package/dist/cjs/calculator/dom.js +39 -0
  7. package/dist/cjs/calculator/dom.js.map +1 -0
  8. package/dist/cjs/calculator/emitter.js +36 -0
  9. package/dist/cjs/calculator/emitter.js.map +1 -0
  10. package/dist/cjs/calculator/index.js +20 -0
  11. package/dist/cjs/calculator/index.js.map +1 -0
  12. package/dist/cjs/cost/constants.js +54 -5
  13. package/dist/cjs/cost/constants.js.map +1 -1
  14. package/dist/cjs/cost/estimate.js +7 -4
  15. package/dist/cjs/cost/estimate.js.map +1 -1
  16. package/dist/cjs/cost/estimate.test.js +16 -4
  17. package/dist/cjs/cost/estimate.test.js.map +1 -1
  18. package/dist/cjs/cost/index.js +32 -17
  19. package/dist/cjs/cost/index.js.map +1 -1
  20. package/dist/cjs/cost/sizes.js +20 -3
  21. package/dist/cjs/cost/sizes.js.map +1 -1
  22. package/dist/cjs/instructions/acceptRental.js +39 -53
  23. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  24. package/dist/cjs/instructions/closeContract.js +18 -50
  25. package/dist/cjs/instructions/closeContract.js.map +1 -1
  26. package/dist/cjs/instructions/closeRental.js +19 -15
  27. package/dist/cjs/instructions/closeRental.js.map +1 -1
  28. package/dist/cjs/instructions/createContract.js +2 -4
  29. package/dist/cjs/instructions/createContract.js.map +1 -1
  30. package/dist/cjs/instructions/createContractThread.js +1 -2
  31. package/dist/cjs/instructions/createContractThread.js.map +1 -1
  32. package/dist/cjs/instructions/index.js +65 -42
  33. package/dist/cjs/instructions/index.js.map +1 -1
  34. package/dist/cjs/instructions/reserveRental.js +34 -46
  35. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  36. package/dist/cjs/kit/index.js +5 -27
  37. package/dist/cjs/kit/index.js.map +1 -1
  38. package/dist/cjs/legacy/index.js +6 -3
  39. package/dist/cjs/legacy/index.js.map +1 -1
  40. package/dist/cjs/package.json +1 -1
  41. package/dist/cjs/react/ContestTimeline.js +59 -0
  42. package/dist/cjs/react/ContestTimeline.js.map +1 -0
  43. package/dist/cjs/react/MinBidChart.js +34 -0
  44. package/dist/cjs/react/MinBidChart.js.map +1 -0
  45. package/dist/cjs/react/index.js +18 -0
  46. package/dist/cjs/react/index.js.map +1 -0
  47. package/dist/cjs/utils/bidMath.js +6 -115
  48. package/dist/cjs/utils/bidMath.js.map +1 -1
  49. package/dist/cjs/utils/contestChain.js +199 -0
  50. package/dist/cjs/utils/contestChain.js.map +1 -0
  51. package/dist/cjs/utils/contractSnapshot.js +207 -0
  52. package/dist/cjs/utils/contractSnapshot.js.map +1 -0
  53. package/dist/cjs/utils/contractSnapshot.test.js +247 -0
  54. package/dist/cjs/utils/contractSnapshot.test.js.map +1 -0
  55. package/dist/cjs/utils/index.js +8 -3
  56. package/dist/cjs/utils/index.js.map +1 -1
  57. package/dist/cjs/version.js +1 -1
  58. package/dist/esm/calculator/ContestTimeline.js +392 -0
  59. package/dist/esm/calculator/ContestTimeline.js.map +1 -0
  60. package/dist/esm/calculator/MinBidChart.js +412 -0
  61. package/dist/esm/calculator/MinBidChart.js.map +1 -0
  62. package/dist/esm/calculator/dom.js +35 -0
  63. package/dist/esm/calculator/dom.js.map +1 -0
  64. package/dist/esm/calculator/emitter.js +32 -0
  65. package/dist/esm/calculator/emitter.js.map +1 -0
  66. package/dist/esm/calculator/index.js +13 -0
  67. package/dist/esm/calculator/index.js.map +1 -0
  68. package/dist/esm/cost/constants.js +52 -4
  69. package/dist/esm/cost/constants.js.map +1 -1
  70. package/dist/esm/cost/estimate.js +9 -6
  71. package/dist/esm/cost/estimate.js.map +1 -1
  72. package/dist/esm/cost/estimate.test.js +18 -6
  73. package/dist/esm/cost/estimate.test.js.map +1 -1
  74. package/dist/esm/cost/index.js +13 -3
  75. package/dist/esm/cost/index.js.map +1 -1
  76. package/dist/esm/cost/sizes.js +19 -2
  77. package/dist/esm/cost/sizes.js.map +1 -1
  78. package/dist/esm/instructions/acceptRental.js +40 -54
  79. package/dist/esm/instructions/acceptRental.js.map +1 -1
  80. package/dist/esm/instructions/closeContract.js +16 -15
  81. package/dist/esm/instructions/closeContract.js.map +1 -1
  82. package/dist/esm/instructions/closeRental.js +20 -16
  83. package/dist/esm/instructions/closeRental.js.map +1 -1
  84. package/dist/esm/instructions/createContract.js +2 -4
  85. package/dist/esm/instructions/createContract.js.map +1 -1
  86. package/dist/esm/instructions/createContractThread.js +2 -3
  87. package/dist/esm/instructions/createContractThread.js.map +1 -1
  88. package/dist/esm/instructions/index.js +36 -28
  89. package/dist/esm/instructions/index.js.map +1 -1
  90. package/dist/esm/instructions/reserveRental.js +34 -46
  91. package/dist/esm/instructions/reserveRental.js.map +1 -1
  92. package/dist/esm/kit/index.js +4 -4
  93. package/dist/esm/kit/index.js.map +1 -1
  94. package/dist/esm/legacy/index.js +5 -2
  95. package/dist/esm/legacy/index.js.map +1 -1
  96. package/dist/esm/package.json +1 -1
  97. package/dist/esm/react/ContestTimeline.js +56 -0
  98. package/dist/esm/react/ContestTimeline.js.map +1 -0
  99. package/dist/esm/react/MinBidChart.js +30 -0
  100. package/dist/esm/react/MinBidChart.js.map +1 -0
  101. package/dist/esm/react/index.js +12 -0
  102. package/dist/esm/react/index.js.map +1 -0
  103. package/dist/esm/utils/bidMath.js +6 -114
  104. package/dist/esm/utils/bidMath.js.map +1 -1
  105. package/dist/esm/utils/contestChain.js +191 -0
  106. package/dist/esm/utils/contestChain.js.map +1 -0
  107. package/dist/esm/utils/contractSnapshot.js +201 -0
  108. package/dist/esm/utils/contractSnapshot.js.map +1 -0
  109. package/dist/esm/utils/contractSnapshot.test.js +245 -0
  110. package/dist/esm/utils/contractSnapshot.test.js.map +1 -0
  111. package/dist/esm/utils/index.js +4 -2
  112. package/dist/esm/utils/index.js.map +1 -1
  113. package/dist/esm/version.js +1 -1
  114. package/dist/types/calculator/ContestTimeline.d.ts +69 -0
  115. package/dist/types/calculator/ContestTimeline.d.ts.map +1 -0
  116. package/dist/types/calculator/MinBidChart.d.ts +73 -0
  117. package/dist/types/calculator/MinBidChart.d.ts.map +1 -0
  118. package/dist/types/calculator/dom.d.ts +16 -0
  119. package/dist/types/calculator/dom.d.ts.map +1 -0
  120. package/dist/types/calculator/emitter.d.ts +13 -0
  121. package/dist/types/calculator/emitter.d.ts.map +1 -0
  122. package/dist/types/calculator/index.d.ts +13 -0
  123. package/dist/types/calculator/index.d.ts.map +1 -0
  124. package/dist/types/cost/constants.d.ts +49 -4
  125. package/dist/types/cost/constants.d.ts.map +1 -1
  126. package/dist/types/cost/estimate.d.ts +12 -1
  127. package/dist/types/cost/estimate.d.ts.map +1 -1
  128. package/dist/types/cost/index.d.ts +13 -3
  129. package/dist/types/cost/index.d.ts.map +1 -1
  130. package/dist/types/cost/sizes.d.ts +19 -2
  131. package/dist/types/cost/sizes.d.ts.map +1 -1
  132. package/dist/types/instructions/acceptRental.d.ts +8 -0
  133. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  134. package/dist/types/instructions/closeContract.d.ts +9 -0
  135. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  136. package/dist/types/instructions/closeRental.d.ts +8 -0
  137. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  138. package/dist/types/instructions/createContract.d.ts.map +1 -1
  139. package/dist/types/instructions/index.d.ts +36 -28
  140. package/dist/types/instructions/index.d.ts.map +1 -1
  141. package/dist/types/instructions/reserveRental.d.ts +8 -0
  142. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  143. package/dist/types/kit/index.d.ts +0 -2
  144. package/dist/types/kit/index.d.ts.map +1 -1
  145. package/dist/types/legacy/index.d.ts +1 -2
  146. package/dist/types/legacy/index.d.ts.map +1 -1
  147. package/dist/types/react/ContestTimeline.d.ts +17 -0
  148. package/dist/types/react/ContestTimeline.d.ts.map +1 -0
  149. package/dist/types/react/MinBidChart.d.ts +12 -0
  150. package/dist/types/react/MinBidChart.d.ts.map +1 -0
  151. package/dist/types/react/index.d.ts +12 -0
  152. package/dist/types/react/index.d.ts.map +1 -0
  153. package/dist/types/utils/bidMath.d.ts +6 -44
  154. package/dist/types/utils/bidMath.d.ts.map +1 -1
  155. package/dist/types/utils/contestChain.d.ts +118 -0
  156. package/dist/types/utils/contestChain.d.ts.map +1 -0
  157. package/dist/types/utils/contractSnapshot.d.ts +123 -0
  158. package/dist/types/utils/contractSnapshot.d.ts.map +1 -0
  159. package/dist/types/utils/contractSnapshot.test.d.ts +2 -0
  160. package/dist/types/utils/contractSnapshot.test.d.ts.map +1 -0
  161. package/dist/types/utils/index.d.ts +2 -1
  162. package/dist/types/utils/index.d.ts.map +1 -1
  163. package/dist/types/version.d.ts +1 -1
  164. package/package.json +15 -1
@@ -20,7 +20,7 @@ import { deriveContractThread, deriveFiber } from '../pda/thread';
20
20
  import { deriveRentalAuthority } from '../pda/srsly';
21
21
  import { normalizeSchedule } from '../params/schedule';
22
22
  import { convertSol } from '../params/sol';
23
- import { MINIMUM_THREAD_FUNDING, DEFAULT_EXECUTION_BUDGET } from '../cost/constants';
23
+ import { computeThreadLamports, DEFAULT_EXECUTION_BUDGET } from '../cost/constants';
24
24
  /**
25
25
  * Set up the per-contract automation thread that processes payments and
26
26
  * lifecycle ticks. Thread starts paused; the rental_close and
@@ -65,8 +65,7 @@ export async function createContractThread(params, config) {
65
65
  owner: ownerAddress,
66
66
  contractTokenAccount: contractAccount.data.managedTokenAccount,
67
67
  sageProgram: address(addresses.sage),
68
- lamports: MINIMUM_THREAD_FUNDING +
69
- (params.lamports ? convertSol(params.lamports) : DEFAULT_EXECUTION_BUDGET),
68
+ lamports: computeThreadLamports(params.lamports ? convertSol(params.lamports) : DEFAULT_EXECUTION_BUDGET),
70
69
  paymentsFreq,
71
70
  }, { programAddress });
72
71
  // If active rental exists, append starbase + starbasePlayer as remaining_accounts
@@ -1 +1 @@
1
- {"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAyCrF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAkC,EAClC,MAA2B;IAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpD,6CAA6C;IAC7C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,8CAA8C;IAC9C,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IAE5D,+BAA+B;IAC/B,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAE9D,oCAAoC;IACpC,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,MAAM,uCAAuC,CAClE;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,cAAc;QACd,MAAM;QACN,gBAAgB;QAChB,KAAK,EAAE,YAAY;QACnB,oBAAoB,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB;QAC9D,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,IAAe,CAAC;QAC/C,QAAQ,EACN,sBAAsB;YACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAC5E,YAAY;KACb,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,kFAAkF;IAClF,oFAAoF;IACpF,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACpF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,UAAU,CAAC,UAAU,CAAC,GAAG,EACzB,UAAU,CAAC,OAAO,EAClB,eAAe,CAAC,IAAI,CAAC,MAAM,CAC5B,CAAC;YACF,MAAM,qBAAqB,GAAG;gBAC5B,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;gBAC9D,EAAE,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE;aACrE,CAAC;YACD,cAAc,CAAC,QAAyC,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;IAED,OAAO,mBAAmB,CAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createContractThread.js","sourceRoot":"","sources":["../../../src/instructions/createContractThread.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,41 @@
1
1
  /**
2
2
  * Instruction wrappers for SRSLY
3
+ *
4
+ * Re-exports are named explicitly (not `export *`) so bundlers can
5
+ * tree-shake per-instruction. With `export *`, Rollup must treat the
6
+ * barrel as a single unit and pulls every child module into the
7
+ * consumer's bundle even when only one instruction is used. Named
8
+ * re-exports + the package's `sideEffects: false` claim let bundlers
9
+ * drop unused instructions entirely.
10
+ *
3
11
  * @module instructions
4
12
  */
5
- export * from './createContract';
6
- export * from './updateContract';
7
- export * from './closeContract';
8
- export * from './deleteContract';
9
- export * from './setDelegate';
10
- export * from './acceptRental';
11
- export * from './cancelRental';
12
- export * from './closeRental';
13
- export * from './releaseRental';
14
- export * from './invalidateRental';
15
- export * from './reserveRental';
16
- export * from './deleteRental';
17
- export * from './claimBorrower';
18
- export * from './closeBorrower';
19
- export * from './createBorrower';
20
- export * from './deleteBorrower';
21
- export * from './claimContract';
22
- export * from './createContractThread';
23
- export * from './closeContractThread';
24
- export * from './deleteContractThread';
25
- export * from './updateContractThread';
26
- export * from './createConfig';
27
- export * from './updateConfig';
28
- export * from './deleteConfig';
29
- export * from './createAffiliate';
30
- export * from './approveAffiliate';
31
- export * from './removeAffiliate';
32
- export * from './updateAffiliate';
13
+ export { createContract } from './createContract';
14
+ export { updateContract } from './updateContract';
15
+ export { closeContract } from './closeContract';
16
+ export { deleteContract } from './deleteContract';
17
+ export { setDelegate } from './setDelegate';
18
+ export { acceptRental } from './acceptRental';
19
+ export { cancelRental } from './cancelRental';
20
+ export { closeRental } from './closeRental';
21
+ export { releaseRental } from './releaseRental';
22
+ export { invalidateRental } from './invalidateRental';
23
+ export { reserveRental } from './reserveRental';
24
+ export { deleteRental } from './deleteRental';
25
+ export { claimBorrower } from './claimBorrower';
26
+ export { closeBorrower } from './closeBorrower';
27
+ export { createBorrower } from './createBorrower';
28
+ export { deleteBorrower } from './deleteBorrower';
29
+ export { claimContract } from './claimContract';
30
+ export { createContractThread } from './createContractThread';
31
+ export { closeContractThread } from './closeContractThread';
32
+ export { deleteContractThread } from './deleteContractThread';
33
+ export { updateContractThread } from './updateContractThread';
34
+ export { createConfig } from './createConfig';
35
+ export { updateConfig } from './updateConfig';
36
+ export { deleteConfig } from './deleteConfig';
37
+ export { createAffiliate } from './createAffiliate';
38
+ export { approveAffiliate } from './approveAffiliate';
39
+ export { removeAffiliate } from './removeAffiliate';
40
+ export { updateAffiliate } from './updateAffiliate';
33
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAA+B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAkC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAmC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAA+B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAA8B,MAAM,mBAAmB,CAAC"}
@@ -10,18 +10,15 @@ import { mergeConfig, getAddresses } from '../utils/config';
10
10
  import { toTransactionSigner } from '../utils/signer';
11
11
  import { convertAmount } from '../params/amount';
12
12
  import { convertDuration } from '../params/duration';
13
- import { fetchContract } from '../accounts/contract';
14
- import { fetchConfig } from '../accounts/config';
15
13
  import { fetchFleet } from '../accounts/fleet';
16
14
  import { fetchBorrower } from '../accounts/borrower';
17
- import { fetchRental } from '../accounts/rental';
18
15
  import { RentalStatus } from '../generated/codama/types';
19
16
  import { deriveGameAccounts } from '../pda/sage';
20
17
  import { deriveActiveRental, deriveQueuedRental, deriveRentalAuthority, deriveBorrowerState, } from '../pda/srsly';
21
18
  import { deriveAssociatedTokenAccount } from '../pda/token';
22
19
  import { deriveContractThread, deriveFiber } from '../pda/thread';
23
20
  import { prepareInstructions } from '../utils/instructions';
24
- import { getMinimumBid } from '../utils/bidMath';
21
+ import { resolveContractSnapshot } from '../utils/contractSnapshot';
25
22
  import { requireValidReferrer } from '../utils/referrer';
26
23
  /**
27
24
  * Bid on a contract via the GBM-style reservation auction. The winner
@@ -65,30 +62,28 @@ export async function reserveRental(params, config) {
65
62
  if (bidPoints > 0 && bidAtlasValue > 0n) {
66
63
  throw new Error('bidPoints and bidAtlas are mutually exclusive');
67
64
  }
68
- // Auto-fill the ATLAS bid when the caller omitted both bid params AND
69
- // there is an existing defender to outbid. First reservations allow
70
- // zero-bid, so we leave those untouched.
71
- const autoMinBid = params.autoMinBid ?? true;
72
- if (autoMinBid && !userProvidedBid) {
73
- const floor = await getMinimumBid({
74
- contractAddress: params.contract,
75
- rpcUrl: config?.rpcUrl,
76
- });
77
- if (floor.defenderBidStardust > 0n) {
78
- bidAtlasValue = floor.minBidStardust;
79
- }
80
- }
81
65
  // Convert challenger to transaction signer
82
66
  const challengerSigner = toTransactionSigner(params.challenger);
83
67
  // Get network-specific addresses
84
68
  const addresses = getAddresses(config);
85
69
  const programAddress = address(addresses.srsly);
86
70
  const sageProgram = address(addresses.sage);
87
- // Fetch config for mint
88
- const configAccount = await fetchConfig(finalConfig.rpcUrl);
89
- const atlasMint = configAccount.data.atlasMint;
90
- // Fetch contract to get contractTokenAccount
91
- const contractAccount = await fetchContract(params.contract, finalConfig.rpcUrl);
71
+ // Single-shot fetch: config + contract + active + queued + minimumBid.
72
+ // Used for atlasMint, contractTokenAccount, fleet/gameId, slyvault for
73
+ // referrer validation, defender lookup, and auto-min-bid computation.
74
+ const snap = await resolveContractSnapshot({
75
+ contractAddress: params.contract,
76
+ rpcUrl: finalConfig.rpcUrl,
77
+ snapshot: params.snapshot,
78
+ });
79
+ const atlasMint = snap.config.data.atlasMint;
80
+ // Auto-fill the ATLAS bid when the caller omitted both bid params AND
81
+ // there is an existing defender to outbid. First reservations allow
82
+ // zero-bid, so we leave those untouched.
83
+ const autoMinBid = params.autoMinBid ?? true;
84
+ if (autoMinBid && !userProvidedBid && snap.minimumBid.defenderBidStardust > 0n) {
85
+ bidAtlasValue = snap.minimumBid.minBidStardust;
86
+ }
92
87
  // Derive rental PDAs
93
88
  const activeRental = await deriveActiveRental(params.contract);
94
89
  const rentalState = await deriveQueuedRental(params.contract);
@@ -105,7 +100,7 @@ export async function reserveRental(params, config) {
105
100
  // Convert duration to seconds
106
101
  const durationSeconds = convertDuration(params.duration);
107
102
  const referrer = params.referrer
108
- ? await requireValidReferrer(address(params.referrer), address(configAccount.data.slyvault), finalConfig.rpcUrl)
103
+ ? await requireValidReferrer(address(params.referrer), address(snap.config.data.slyvault), finalConfig.rpcUrl)
109
104
  : undefined;
110
105
  // Build instruction input
111
106
  const instructionInput = {
@@ -124,33 +119,26 @@ export async function reserveRental(params, config) {
124
119
  duration: BigInt(durationSeconds),
125
120
  };
126
121
  // If there's a current queued reservation, provide defender accounts
127
- // Fetch queued rental to check if there's an existing reservation holder
128
- try {
129
- const queuedRental = await fetchRental(rentalState, finalConfig.rpcUrl);
130
- if (queuedRental.data.status === RentalStatus.Queued) {
131
- const defenderBorrowerState = queuedRental.data.borrowerState;
132
- const challengerBorrowerState = await deriveBorrowerState(challengerSigner);
133
- if (defenderBorrowerState === challengerBorrowerState) {
134
- // Self-contest: challenger is the current defender.
135
- // Program reuses challenger_state, but we still need defender_managed_token_account
136
- // for the ATLAS refund path.
137
- const challengerAccount = await fetchBorrower(challengerBorrowerState, finalConfig.rpcUrl);
138
- instructionInput.defenderManagedTokenAccount = challengerAccount.data.managedTokenAccount;
139
- }
140
- else {
141
- instructionInput.defenderState = defenderBorrowerState;
142
- const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
143
- instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
144
- }
122
+ if (snap.queuedRental && snap.queuedRental.data.status === RentalStatus.Queued) {
123
+ const defenderBorrowerState = snap.queuedRental.data.borrowerState;
124
+ const challengerBorrowerState = await deriveBorrowerState(challengerSigner);
125
+ if (defenderBorrowerState === challengerBorrowerState) {
126
+ // Self-contest: challenger is the current defender.
127
+ // Program reuses challenger_state, but we still need defender_managed_token_account
128
+ // for the ATLAS refund path.
129
+ const challengerAccount = await fetchBorrower(challengerBorrowerState, finalConfig.rpcUrl);
130
+ instructionInput.defenderManagedTokenAccount = challengerAccount.data.managedTokenAccount;
131
+ }
132
+ else {
133
+ instructionInput.defenderState = defenderBorrowerState;
134
+ const defenderAccount = await fetchBorrower(defenderBorrowerState, finalConfig.rpcUrl);
135
+ instructionInput.defenderManagedTokenAccount = defenderAccount.data.managedTokenAccount;
145
136
  }
146
- }
147
- catch {
148
- // Queued rental doesn't exist or is Available — no defender
149
137
  }
150
138
  // Derive SAGE accounts for remaining_accounts
151
139
  const challengerProfileAddr = address(params.challengerProfile);
152
- const fleetState = await fetchFleet(contractAccount.data.fleet, finalConfig.rpcUrl);
153
- const gameAccounts = await deriveGameAccounts(challengerProfileAddr, fleetState.faction, contractAccount.data.gameId);
140
+ const fleetState = await fetchFleet(snap.contract.data.fleet, finalConfig.rpcUrl);
141
+ const gameAccounts = await deriveGameAccounts(challengerProfileAddr, fleetState.faction, snap.contract.data.gameId);
154
142
  // Call Codama-generated instruction
155
143
  const kitInstruction = await getReserveRentalInstructionAsync(instructionInput, {
156
144
  programAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reserveRental.js","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"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"}
@@ -23,11 +23,11 @@ export * from '../pda';
23
23
  export * from '../cost';
24
24
  // External re-exports
25
25
  export { claim } from '@sly-rentals/vault';
26
- export * as codama from '../generated/codama';
27
- export * as audit from '../audit';
28
26
  // Event listener helpers — bubbled up from `audit` so consumers can write
29
27
  // `import { events, onSrslyEvent, getEventsFromTx } from '@sly-rentals/core'`
30
- // without the audit namespace prefix. The full audit module is still
31
- // accessible via `audit.*` for the parser primitives + report builder.
28
+ // without the audit namespace prefix. Full audit + codama surfaces stay
29
+ // reachable via subpath imports (`@sly-rentals/core/audit`,
30
+ // `@sly-rentals/core/codama`) — kept out of the main barrel so bundlers
31
+ // can tree-shake unused generated instruction encoders/decoders.
32
32
  export { closeSrslyEventListener, events, getEventsFromTx, onSrslyEvent } from '../audit';
33
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAoB,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC,0EAA0E;AAC1E,8EAA8E;AAC9E,qEAAqE;AACrE,uEAAuE;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAoB,MAAM,oBAAoB,CAAC;AAE7D,0EAA0E;AAC1E,8EAA8E;AAC9E,wEAAwE;AACxE,4DAA4D;AAC5D,wEAAwE;AACxE,iEAAiE;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -29,9 +29,12 @@ export * from '../utils';
29
29
  export * from '../accounts';
30
30
  export * from '../params';
31
31
  export * from '../pda';
32
+ export * from '../cost';
32
33
  export { VERSION } from '../version';
33
- export * as codama from '../generated/codama';
34
- export * as audit from '../audit';
34
+ // `codama` and `audit` namespaces are intentionally NOT re-exported here
35
+ // — `export * as` defeats tree-shaking. Import them via subpath instead:
36
+ // `import * as codama from '@sly-rentals/core/codama'`
37
+ // `import * as audit from '@sly-rentals/core/audit'`
35
38
  export { closeSrslyEventListener, events, getEventsFromTx, onSrslyEvent } from '../audit';
36
39
  /**
37
40
  * Wrapper that checks for PublicKey and provides helpful error
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sly-rentals/core",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "TypeScript SDK for SRSLY",
5
5
  "sideEffects": false,
6
6
  "publishConfig": {
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @purpose Thin React wrapper around the vanilla `ContestTimeline` class.
4
+ * Owns container ref + lifecycle; converts emitter events back into the
5
+ * React-style callback props (`onKnobsChange` etc.).
6
+ *
7
+ * Logic lives in `@sly-rentals/core/calculator`.
8
+ */
9
+ import { useEffect, useLayoutEffect, useRef } from 'react';
10
+ import { ContestTimeline as VanillaContestTimeline, } from '../calculator';
11
+ export function ContestTimeline(props) {
12
+ const hostRef = useRef(null);
13
+ const instRef = useRef(null);
14
+ const handlersRef = useRef({
15
+ onKnobsChange: props.onKnobsChange,
16
+ onPresetChange: props.onPresetChange,
17
+ onCalcDefenderAtDayChange: props.onCalcDefenderAtDayChange,
18
+ });
19
+ handlersRef.current.onKnobsChange = props.onKnobsChange;
20
+ handlersRef.current.onPresetChange = props.onPresetChange;
21
+ handlersRef.current.onCalcDefenderAtDayChange = props.onCalcDefenderAtDayChange;
22
+ useLayoutEffect(() => {
23
+ if (!hostRef.current)
24
+ return;
25
+ const inst = new VanillaContestTimeline(hostRef.current, propsToVanilla(props));
26
+ instRef.current = inst;
27
+ const offKnobs = inst.on('knobsChange', next => handlersRef.current.onKnobsChange(next));
28
+ const offPreset = inst.on('presetChange', next => handlersRef.current.onPresetChange(next));
29
+ const offCalc = inst.on('calcDefenderAtDayChange', at => handlersRef.current.onCalcDefenderAtDayChange(at));
30
+ return () => {
31
+ offKnobs();
32
+ offPreset();
33
+ offCalc();
34
+ inst.destroy();
35
+ instRef.current = null;
36
+ };
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps
38
+ }, []);
39
+ useEffect(() => {
40
+ instRef.current?.update(propsToVanilla(props));
41
+ }, [props]);
42
+ return _jsx("div", { ref: hostRef });
43
+ }
44
+ function propsToVanilla(p) {
45
+ return {
46
+ activeDays: p.activeDays,
47
+ nowDay: p.nowDay,
48
+ challengeCur: p.challengeCur,
49
+ knobs: p.knobs,
50
+ chain: p.chain,
51
+ preset: p.preset,
52
+ chainDefenderExists: p.chainDefenderExists,
53
+ classNames: p.classNames,
54
+ };
55
+ }
56
+ //# sourceMappingURL=ContestTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContestTimeline.js","sourceRoot":"","sources":["../../../src/react/ContestTimeline.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,eAAe,IAAI,sBAAsB,GAG1C,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAgC,IAAI,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC;QACzB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;KAC3D,CAAC,CAAC;IACH,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IACxD,WAAW,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAC1D,WAAW,CAAC,OAAO,CAAC,yBAAyB,GAAG,KAAK,CAAC,yBAAyB,CAAC;IAEhF,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAC7B,MAAM,IAAI,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,yBAAyB,EAAE,EAAE,CAAC,EAAE,CACtD,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAClD,CAAC;QACF,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,cAAK,GAAG,EAAE,OAAO,GAAI,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,CAAuB;IAC7C,OAAO;QACL,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;QAC1C,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @purpose Thin React wrapper around the vanilla `MinBidChart` class.
4
+ * Owns container ref + lifecycle; forwards prop changes via `.update()`.
5
+ *
6
+ * Visual + math logic lives in `@sly-rentals/core/calculator` so non-React
7
+ * consumers can use the same code without paying for React.
8
+ */
9
+ import { useEffect, useLayoutEffect, useRef } from 'react';
10
+ import { MinBidChart as VanillaMinBidChart, DEFAULT_MIN_BID_CHART_THEME, } from '../calculator';
11
+ export { DEFAULT_MIN_BID_CHART_THEME };
12
+ export function MinBidChart(props) {
13
+ const hostRef = useRef(null);
14
+ const instRef = useRef(null);
15
+ useLayoutEffect(() => {
16
+ if (!hostRef.current)
17
+ return;
18
+ instRef.current = new VanillaMinBidChart(hostRef.current, props);
19
+ return () => {
20
+ instRef.current?.destroy();
21
+ instRef.current = null;
22
+ };
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ }, []);
25
+ useEffect(() => {
26
+ instRef.current?.update(props);
27
+ }, [props]);
28
+ return _jsx("div", { ref: hostRef });
29
+ }
30
+ //# sourceMappingURL=MinBidChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinBidChart.js","sourceRoot":"","sources":["../../../src/react/MinBidChart.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,WAAW,IAAI,kBAAkB,EACjC,2BAA2B,GAI5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAGvC,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAA4B,IAAI,CAAC,CAAC;IAExD,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,cAAK,GAAG,EAAE,OAAO,GAAI,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @purpose React component entry point for the SRSLY reservation
3
+ * calculator. Sits behind the `@sly-rentals/core/react` subpath export
4
+ * so non-React consumers don't pay the import cost.
5
+ *
6
+ * Pair with `@sly-rentals/core/react/styles.css` for the default
7
+ * SRSLY-themed look, or pass `classNames` / `theme` props for custom
8
+ * styling.
9
+ */
10
+ export { MinBidChart, DEFAULT_MIN_BID_CHART_THEME, } from './MinBidChart';
11
+ export { ContestTimeline, } from './ContestTimeline';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EACX,2BAA2B,GAI5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC"}
@@ -1,19 +1,12 @@
1
1
  /**
2
- * @purpose Reservation bid math helpers
2
+ * @purpose Reservation bid math (pure formula + type)
3
3
  *
4
- * Pure-math + on-chain-fetch helpers for computing the contest minimum-bid
5
- * floor that a challenger must clear to take an existing reservation.
6
- * Mirrors the on-chain `ConfigState::bid_min_stardust` formula so client UIs
7
- * (and on-chain-aware tooling) can preview the floor without hitting an RPC
8
- * for every keystroke.
4
+ * Mirror of the on-chain `ConfigState::bid_min_stardust` formula so UIs
5
+ * can preview the contest minimum-bid floor without hitting an RPC for
6
+ * every keystroke. Fetch-aware helpers (`getMinimumBid`,
7
+ * `computeMinimumBidFromSnapshot`) live in `./contractSnapshot` they
8
+ * call into the pure formula here.
9
9
  */
10
- import { fetchConfig } from '../accounts/config';
11
- import { fetchContract } from '../accounts/contract';
12
- import { fetchRental } from '../accounts/rental';
13
- import { deriveActiveRental, deriveQueuedRental } from '../pda/srsly';
14
- import { getRpcUrl } from './config';
15
- import { createRpc } from './rpc';
16
- const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
17
10
  /**
18
11
  * Pure math: contest minimum-bid floor in stardust.
19
12
  *
@@ -42,105 +35,4 @@ export function computeMinimumBid(args) {
42
35
  const base = args.rateStardust > defenderBid ? args.rateStardust : defenderBid;
43
36
  return (base * effBps) / 10000n;
44
37
  }
45
- /**
46
- * High-level helper: compute the contest minimum bid for a contract right
47
- * now (or at `now + delaySeconds`).
48
- *
49
- * Fetches `ConfigState`, `ContractState`, and the active/queued `RentalState`
50
- * accounts, derives `closeness` from the active rental window, and returns
51
- * the floor a challenger must clear plus enough context to render a UI.
52
- *
53
- * @example
54
- * ```ts
55
- * const floor = await getMinimumBid({ contractAddress: 'Abc...' });
56
- * console.log('Bid at least', floor.minBidStardust, 'stardust');
57
- *
58
- * // Preview the floor 4 hours from now (snipe-window pricing):
59
- * const later = await getMinimumBid({
60
- * contractAddress: 'Abc...',
61
- * delaySeconds: 4 * 60 * 60,
62
- * });
63
- * ```
64
- *
65
- * If the contract has no active rental yet, closeness = 0 and the floor
66
- * collapses to the rate-bump floor (`rate × captureRate`).
67
- */
68
- export async function getMinimumBid(args) {
69
- const rpcUrl = args.rpcUrl ?? getRpcUrl();
70
- const rpc = createRpc(rpcUrl);
71
- const cfgPromise = fetchConfig(rpcUrl);
72
- const contractPromise = fetchContract(args.contractAddress, rpcUrl);
73
- const [cfg, contract] = await Promise.all([cfgPromise, contractPromise]);
74
- const cfgData = cfg.data;
75
- const contractData = contract.data;
76
- const rateStardust = BigInt(contractData.rate);
77
- const atlasPerPoint = args.atlasPerPoint ?? BigInt(cfgData.atlasPerPoint);
78
- const stardustPerAtlas = BigInt(cfgData.stardustToAtlas);
79
- const activeAddr = await deriveActiveRental(contract.address);
80
- const queuedAddr = await deriveQueuedRental(contract.address);
81
- // Active rental — only meaningful if the contract field points at it.
82
- let activeStart = null;
83
- let activeEnd = null;
84
- if (contractData.activeRental && contractData.activeRental.toString() !== SYSTEM_PROGRAM_ID) {
85
- try {
86
- const active = await fetchRental(activeAddr, rpcUrl);
87
- const a = active.data;
88
- activeStart = Number(a.startTime);
89
- activeEnd = Number(a.endTime);
90
- }
91
- catch {
92
- // Account missing despite contract pointer — treat as no active rental.
93
- }
94
- }
95
- // Queued rental — defender bid lives here if a reservation exists.
96
- let defenderBidStardust = 0n;
97
- if (contractData.queuedRental && contractData.queuedRental.toString() !== SYSTEM_PROGRAM_ID) {
98
- try {
99
- const queued = await fetchRental(queuedAddr, rpcUrl);
100
- const q = queued.data;
101
- const bidAtlas = BigInt(q.bidAtlas);
102
- const bidPoints = BigInt(q.bidPoints);
103
- // Points are 8-decimal dust; converting to stardust requires the same
104
- // 8-decimal precision: stardust = points_dust * atlasPerPoint *
105
- // stardustPerAtlas / 1e8. With both at 1e8 precision this collapses
106
- // to points_dust * atlasPerPoint.
107
- const pointsAsStardust = bidPoints > 0n ? (bidPoints * atlasPerPoint * stardustPerAtlas) / 100000000n : 0n;
108
- defenderBidStardust = bidAtlas + pointsAsStardust;
109
- }
110
- catch {
111
- // Missing queued account — leave defenderBidStardust = 0.
112
- }
113
- }
114
- const evaluatedAtSeconds = args.nowSeconds !== undefined
115
- ? Math.floor(args.nowSeconds)
116
- : Math.floor(Date.now() / 1000) + Math.max(0, args.delaySeconds ?? 0);
117
- let closeness = 0;
118
- if (activeStart !== null && activeEnd !== null && activeEnd > activeStart) {
119
- const span = activeEnd - activeStart;
120
- const elapsed = evaluatedAtSeconds - activeStart;
121
- closeness = Math.max(0, Math.min(1, elapsed / span));
122
- }
123
- const minBidStardust = computeMinimumBid({
124
- rateStardust,
125
- defenderBidStardust,
126
- contestedMultiplierMaxBps: cfgData.contestedMultiplierMaxBps,
127
- captureRateBps: BigInt(cfgData.captureRateBps),
128
- closenessFraction: closeness,
129
- });
130
- const baseStardust = rateStardust > defenderBidStardust ? rateStardust : defenderBidStardust;
131
- const rampMultiplier = baseStardust > 0n ? Number(minBidStardust) / Number(baseStardust) : 1;
132
- // RPC reference kept to match the codebase pattern even when unused;
133
- // future refinements (e.g. fetching chain time) can plug in here.
134
- void rpc;
135
- return {
136
- minBidStardust,
137
- defenderBidStardust,
138
- rateStardust,
139
- closenessFraction: closeness,
140
- rampMultiplier,
141
- evaluatedAtSeconds,
142
- activeEndSeconds: activeEnd,
143
- activeStartSeconds: activeStart,
144
- };
145
- }
146
38
  //# sourceMappingURL=bidMath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bidMath.js","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bidMath.js","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAMjC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAO,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAO,CAAC;IAC7E,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/E,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAO,CAAC;AACnC,CAAC"}