@sly-rentals/core 1.2.0 → 3.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.
- package/dist/api.json +12695 -9074
- package/dist/cjs/calculator/ContestTimeline.js +407 -0
- package/dist/cjs/calculator/ContestTimeline.js.map +1 -0
- package/dist/cjs/calculator/MinBidChart.js +424 -0
- package/dist/cjs/calculator/MinBidChart.js.map +1 -0
- package/dist/cjs/calculator/dom.js +39 -0
- package/dist/cjs/calculator/dom.js.map +1 -0
- package/dist/cjs/calculator/emitter.js +36 -0
- package/dist/cjs/calculator/emitter.js.map +1 -0
- package/dist/cjs/calculator/index.js +20 -0
- package/dist/cjs/calculator/index.js.map +1 -0
- package/dist/cjs/cost/constants.js +54 -6
- package/dist/cjs/cost/constants.js.map +1 -1
- package/dist/cjs/cost/estimate.js +7 -4
- package/dist/cjs/cost/estimate.js.map +1 -1
- package/dist/cjs/cost/estimate.test.js +16 -4
- package/dist/cjs/cost/estimate.test.js.map +1 -1
- package/dist/cjs/cost/index.js +32 -17
- package/dist/cjs/cost/index.js.map +1 -1
- package/dist/cjs/cost/sizes.js +20 -3
- package/dist/cjs/cost/sizes.js.map +1 -1
- package/dist/cjs/generated/codama/errors/srsly.js +13 -16
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/idl/srsly.json +300 -2396
- package/dist/cjs/instructions/closeContract.js +3 -37
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/createContract.js +2 -4
- package/dist/cjs/instructions/createContract.js.map +1 -1
- package/dist/cjs/instructions/createContractThread.js +1 -2
- package/dist/cjs/instructions/createContractThread.js.map +1 -1
- package/dist/cjs/instructions/index.js +65 -42
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/kit/index.js +5 -27
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +5 -3
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +10 -3
- package/dist/cjs/react/ContestTimeline.js +59 -0
- package/dist/cjs/react/ContestTimeline.js.map +1 -0
- package/dist/cjs/react/MinBidChart.js +34 -0
- package/dist/cjs/react/MinBidChart.js.map +1 -0
- package/dist/cjs/react/index.js +18 -0
- package/dist/cjs/react/index.js.map +1 -0
- package/dist/cjs/utils/contestChain.js +222 -0
- package/dist/cjs/utils/contestChain.js.map +1 -0
- package/dist/cjs/utils/index.js +8 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/calculator/ContestTimeline.js +403 -0
- package/dist/esm/calculator/ContestTimeline.js.map +1 -0
- package/dist/esm/calculator/MinBidChart.js +417 -0
- package/dist/esm/calculator/MinBidChart.js.map +1 -0
- package/dist/esm/calculator/dom.js +35 -0
- package/dist/esm/calculator/dom.js.map +1 -0
- package/dist/esm/calculator/emitter.js +32 -0
- package/dist/esm/calculator/emitter.js.map +1 -0
- package/dist/esm/calculator/index.js +13 -0
- package/dist/esm/calculator/index.js.map +1 -0
- package/dist/esm/cost/constants.js +52 -5
- package/dist/esm/cost/constants.js.map +1 -1
- package/dist/esm/cost/estimate.js +9 -6
- package/dist/esm/cost/estimate.js.map +1 -1
- package/dist/esm/cost/estimate.test.js +18 -6
- package/dist/esm/cost/estimate.test.js.map +1 -1
- package/dist/esm/cost/index.js +13 -3
- package/dist/esm/cost/index.js.map +1 -1
- package/dist/esm/cost/sizes.js +19 -2
- package/dist/esm/cost/sizes.js.map +1 -1
- package/dist/esm/generated/codama/errors/srsly.js +14 -17
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/idl/srsly.json +300 -2396
- package/dist/esm/instructions/closeContract.js +1 -2
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/createContract.js +2 -4
- package/dist/esm/instructions/createContract.js.map +1 -1
- package/dist/esm/instructions/createContractThread.js +2 -3
- package/dist/esm/instructions/createContractThread.js.map +1 -1
- package/dist/esm/instructions/index.js +36 -28
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/kit/index.js +4 -4
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +4 -2
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +10 -3
- package/dist/esm/react/ContestTimeline.js +56 -0
- package/dist/esm/react/ContestTimeline.js.map +1 -0
- package/dist/esm/react/MinBidChart.js +30 -0
- package/dist/esm/react/MinBidChart.js.map +1 -0
- package/dist/esm/react/index.js +12 -0
- package/dist/esm/react/index.js.map +1 -0
- package/dist/esm/utils/contestChain.js +214 -0
- package/dist/esm/utils/contestChain.js.map +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +301 -2397
- package/dist/types/calculator/ContestTimeline.d.ts +69 -0
- package/dist/types/calculator/ContestTimeline.d.ts.map +1 -0
- package/dist/types/calculator/MinBidChart.d.ts +73 -0
- package/dist/types/calculator/MinBidChart.d.ts.map +1 -0
- package/dist/types/calculator/dom.d.ts +16 -0
- package/dist/types/calculator/dom.d.ts.map +1 -0
- package/dist/types/calculator/emitter.d.ts +13 -0
- package/dist/types/calculator/emitter.d.ts.map +1 -0
- package/dist/types/calculator/index.d.ts +13 -0
- package/dist/types/calculator/index.d.ts.map +1 -0
- package/dist/types/cost/constants.d.ts +49 -5
- package/dist/types/cost/constants.d.ts.map +1 -1
- package/dist/types/cost/estimate.d.ts +12 -1
- package/dist/types/cost/estimate.d.ts.map +1 -1
- package/dist/types/cost/index.d.ts +13 -3
- package/dist/types/cost/index.d.ts.map +1 -1
- package/dist/types/cost/sizes.d.ts +19 -2
- package/dist/types/cost/sizes.d.ts.map +1 -1
- package/dist/types/generated/codama/errors/srsly.d.ts +11 -13
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/createContract.d.ts.map +1 -1
- package/dist/types/instructions/index.d.ts +36 -28
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +0 -2
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +0 -2
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/react/ContestTimeline.d.ts +17 -0
- package/dist/types/react/ContestTimeline.d.ts.map +1 -0
- package/dist/types/react/MinBidChart.d.ts +12 -0
- package/dist/types/react/MinBidChart.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +12 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/utils/contestChain.d.ts +130 -0
- package/dist/types/utils/contestChain.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +38 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAgB,KAAK,iBAAiB,EAA0B,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAIvC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Thin React wrapper around the vanilla `ContestTimeline` class.
|
|
3
|
+
* Owns container ref + lifecycle; converts emitter events back into the
|
|
4
|
+
* React-style callback props (`onKnobsChange` etc.).
|
|
5
|
+
*
|
|
6
|
+
* Logic lives in `@sly-rentals/core/calculator`.
|
|
7
|
+
*/
|
|
8
|
+
import { type ContestTimelineProps as VanillaContestTimelineProps, type ContestTimelineClassNames } from '../calculator';
|
|
9
|
+
import type { ContestKnob } from '../utils';
|
|
10
|
+
export type { ContestTimelineClassNames };
|
|
11
|
+
export interface ContestTimelineProps extends VanillaContestTimelineProps {
|
|
12
|
+
onKnobsChange: (next: ContestKnob[]) => void;
|
|
13
|
+
onPresetChange: (next: 'even' | 'snipe' | 'custom') => void;
|
|
14
|
+
onCalcDefenderAtDayChange: (atDay: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function ContestTimeline(props: ContestTimelineProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=ContestTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContestTimeline.d.ts","sourceRoot":"","sources":["../../../src/react/ContestTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAEL,KAAK,oBAAoB,IAAI,2BAA2B,EACxD,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,aAAa,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC5D,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAoC1D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Thin React wrapper around the vanilla `MinBidChart` class.
|
|
3
|
+
* Owns container ref + lifecycle; forwards prop changes via `.update()`.
|
|
4
|
+
*
|
|
5
|
+
* Visual + math logic lives in `@sly-rentals/core/calculator` so non-React
|
|
6
|
+
* consumers can use the same code without paying for React.
|
|
7
|
+
*/
|
|
8
|
+
import { DEFAULT_MIN_BID_CHART_THEME, type MinBidChartProps, type MinBidChartTheme, type MinBidChartClassNames } from '../calculator';
|
|
9
|
+
export { DEFAULT_MIN_BID_CHART_THEME };
|
|
10
|
+
export type { MinBidChartProps, MinBidChartTheme, MinBidChartClassNames };
|
|
11
|
+
export declare function MinBidChart(props: MinBidChartProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=MinBidChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinBidChart.d.ts","sourceRoot":"","sources":["../../../src/react/MinBidChart.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAEL,2BAA2B,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;AAE1E,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAmBlD"}
|
|
@@ -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, type MinBidChartProps, type MinBidChartTheme, type MinBidChartClassNames, } from './MinBidChart';
|
|
11
|
+
export { ContestTimeline, type ContestTimelineProps, type ContestTimelineClassNames, } from './ContestTimeline';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Pure-math chain-of-contests simulator.
|
|
3
|
+
*
|
|
4
|
+
* Walks a sequence of reservation events (calc defender + user-added
|
|
5
|
+
* takeovers) and produces per-row floor / bonus / owner-take values
|
|
6
|
+
* plus the segment breakdown UIs use to render piecewise curves.
|
|
7
|
+
*
|
|
8
|
+
* No React, no IO, no RPC. Feeds a calculator/visualization layer
|
|
9
|
+
* (`@sly-rentals/core/react/calculator`) but is callable standalone
|
|
10
|
+
* from any environment.
|
|
11
|
+
*/
|
|
12
|
+
export type Cur = 'ATLAS' | 'POINTS';
|
|
13
|
+
export type EventSource = 'calc' | 'knob';
|
|
14
|
+
export type ContestKnob = {
|
|
15
|
+
id: string;
|
|
16
|
+
atDay: number;
|
|
17
|
+
};
|
|
18
|
+
export type ContestSegment = {
|
|
19
|
+
startDay: number;
|
|
20
|
+
endDay: number;
|
|
21
|
+
/** Defender bid (in stardust) during this segment. May legitimately be
|
|
22
|
+
* 0 when the defender placed a zero-bid first reservation. */
|
|
23
|
+
defenderBidStardust: bigint;
|
|
24
|
+
/** False only for the pre-reservation gap (no defender exists yet).
|
|
25
|
+
* Once the calc defender enters the chain, every following segment
|
|
26
|
+
* has one — even if the recorded bid is 0. */
|
|
27
|
+
hasDefender: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type ContestRow = {
|
|
30
|
+
id: string;
|
|
31
|
+
idx: number;
|
|
32
|
+
atDay: number;
|
|
33
|
+
floorStardust: bigint;
|
|
34
|
+
/** Floor + bonus + owner take, expressed in the caller's display
|
|
35
|
+
* currency. Math is computed in stardust then converted at the end. */
|
|
36
|
+
floorDisplay: number;
|
|
37
|
+
bonusDisplay: number;
|
|
38
|
+
ownerTakeDisplay: number;
|
|
39
|
+
defenderBidStardust: bigint;
|
|
40
|
+
defenderAtDay: number;
|
|
41
|
+
source: EventSource;
|
|
42
|
+
isInitial: boolean;
|
|
43
|
+
/** Running contested_count after this event. */
|
|
44
|
+
contestedCountAfter: number;
|
|
45
|
+
/** True when this event's activation would trigger an on-chain rate
|
|
46
|
+
* bump (`contestedCount >= contestedThreshold`). */
|
|
47
|
+
triggersRateBump: boolean;
|
|
48
|
+
/** Value of the min-bid floor curve at this row's `atDay`, i.e. what
|
|
49
|
+
* the NEXT challenger would need to bid to beat this row. Drives the
|
|
50
|
+
* chart dot so it visually sits on the cyan floor curve instead of
|
|
51
|
+
* at the row's own bid (which for seat-zero with bid=0 or for the
|
|
52
|
+
* on-chain defender would be below the curve). */
|
|
53
|
+
curveAtAtDayDisplay: number;
|
|
54
|
+
};
|
|
55
|
+
export type ContestChain = {
|
|
56
|
+
segments: ContestSegment[];
|
|
57
|
+
rows: ContestRow[];
|
|
58
|
+
totalOwnerDisplay: number;
|
|
59
|
+
totalBonusDisplay: number;
|
|
60
|
+
baselineDisplay: number;
|
|
61
|
+
multiplier: number;
|
|
62
|
+
};
|
|
63
|
+
/** Subset of `ConfigState` the chain math needs. */
|
|
64
|
+
export interface ContestChainConfig {
|
|
65
|
+
contestedMultiplierMaxBps: number;
|
|
66
|
+
captureRateBps: bigint;
|
|
67
|
+
/**
|
|
68
|
+
* Bonus payout multiplier in bps (100 = 1× = no-op).
|
|
69
|
+
*
|
|
70
|
+
* TODO(bonus_multiplier_bps): make this required (drop the `?`) once
|
|
71
|
+
* the on-chain ConfigState includes the field — all callers will
|
|
72
|
+
* source it from chain.
|
|
73
|
+
*
|
|
74
|
+
* Optional today so consumers on older program shapes (no on-chain
|
|
75
|
+
* bonus multiplier field yet) can omit it — math falls back to 100
|
|
76
|
+
* internally.
|
|
77
|
+
*/
|
|
78
|
+
bonusMultiplierBps?: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Convert a stardust value into the caller's display currency.
|
|
82
|
+
*
|
|
83
|
+
* ATLAS: stardust / stardustPerAtlas.
|
|
84
|
+
* POINTS: stardust / (stardustPerAtlas × atlasPerPoint), with a
|
|
85
|
+
* min-capture floor since the on-chain threshold rejects sub-floor bids.
|
|
86
|
+
*/
|
|
87
|
+
export declare function stardustToDisplay(stardust: bigint, cur: Cur, stardustPerAtlas: number, atlasPerPoint: number, minCaptureThresholdPoints: number): number;
|
|
88
|
+
/**
|
|
89
|
+
* Walk a chain of contest events and produce per-contest math + segment
|
|
90
|
+
* breakdown.
|
|
91
|
+
*
|
|
92
|
+
* The chain begins with an optional calc defender row (the simulator's
|
|
93
|
+
* "your bid" entry). Subsequent takeover knobs are computed via
|
|
94
|
+
* `computeMinimumBid` against the previous row's bid.
|
|
95
|
+
*
|
|
96
|
+
* v1 assumes same-currency ATLAS knockoffs; tier-upgrade compensation
|
|
97
|
+
* is not modeled.
|
|
98
|
+
*/
|
|
99
|
+
export declare function computeContestChain(args: {
|
|
100
|
+
cfg: ContestChainConfig;
|
|
101
|
+
rateStardust: bigint;
|
|
102
|
+
activeDays: number;
|
|
103
|
+
/** User-controlled defender from calculator inputs. */
|
|
104
|
+
userDefender?: {
|
|
105
|
+
atDay: number;
|
|
106
|
+
bidStardust: bigint;
|
|
107
|
+
};
|
|
108
|
+
/** Currency the seat-zero defender originally staked. Only used to
|
|
109
|
+
* detect the POINTS-only contest case (same-cur POINTS rotation),
|
|
110
|
+
* which on-chain pays no bonus and routes no escrow to the owner.
|
|
111
|
+
* Defaults to `displayCur` when omitted (back-compat for callers that
|
|
112
|
+
* don't yet plumb the defender's currency through). */
|
|
113
|
+
defenderCur?: Cur;
|
|
114
|
+
/** Takeover knobs added by the user via `+` on the strip. */
|
|
115
|
+
takeoverKnobs: ContestKnob[];
|
|
116
|
+
displayCur: Cur;
|
|
117
|
+
stardustPerAtlas: number;
|
|
118
|
+
atlasPerPoint: number;
|
|
119
|
+
minCaptureThresholdPoints: number;
|
|
120
|
+
/** Contract's `contested_threshold` (0 disables the bump). */
|
|
121
|
+
contestedThreshold: number;
|
|
122
|
+
/** Contract's current `contested_count` at the moment the chain begins. */
|
|
123
|
+
contestedCountStart: number;
|
|
124
|
+
}): ContestChain;
|
|
125
|
+
/** Even spacing across [from, to] excluding endpoints. */
|
|
126
|
+
export declare function distributeEven(count: number, from: number, to: number): number[];
|
|
127
|
+
/** Quadratic bias toward `to` — clusters knobs near the snipe window. */
|
|
128
|
+
export declare function distributeSnipeHeavy(count: number, from: number, to: number): number[];
|
|
129
|
+
export declare const nextKnobId: () => string;
|
|
130
|
+
//# sourceMappingURL=contestChain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contestChain.d.ts","sourceRoot":"","sources":["../../../src/utils/contestChain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;mDAE+C;IAC/C,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB;4EACwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,mBAAmB,EAAE,MAAM,CAAC;IAC5B;yDACqD;IACrD,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;;uDAImD;IACnD,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,GAAG,EACR,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,yBAAyB,EAAE,MAAM,GAChC,MAAM,CAIR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,GAAG,EAAE,kBAAkB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD;;;;4DAIwD;IACxD,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,6DAA6D;IAC7D,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,YAAY,CAqMf;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtF;AAGD,eAAO,MAAM,UAAU,QAAO,MAA6B,CAAC"}
|
|
@@ -12,6 +12,7 @@ export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
|
|
|
12
12
|
export { fetchLookupTable, getLookupTableAddress, type AddressLookupTableData, } from './lookupTable';
|
|
13
13
|
export { hasActiveRental, hasQueuedRental } from './rental';
|
|
14
14
|
export { computeMinimumBid, type MinimumBid } from './bidMath';
|
|
15
|
+
export { computeContestChain, stardustToDisplay, distributeEven, distributeSnipeHeavy, nextKnobId, type ContestChain, type ContestChainConfig, type ContestKnob, type ContestRow, type ContestSegment, type EventSource, type Cur, } from './contestChain';
|
|
15
16
|
export { getContractSnapshot, resolveContractSnapshot, computeMinimumBidFromSnapshot, getMinimumBid, type ContractSnapshot, type FetchedAccount, } from './contractSnapshot';
|
|
16
17
|
export { createDiscount, deserializeDiscountAuth, type CreateDiscountParams, type SerializedDiscountAuth, type MessageSigner, } from './discountAuth';
|
|
17
18
|
export { resolveReferrer, requireValidReferrer } from './referrer';
|
|
@@ -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,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,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"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "
|
|
1
|
+
export declare const VERSION = "3.0.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": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "TypeScript SDK for SRSLY",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -45,6 +45,35 @@
|
|
|
45
45
|
"import": "./dist/esm/audit/index.js",
|
|
46
46
|
"default": "./dist/cjs/audit/index.js"
|
|
47
47
|
},
|
|
48
|
+
"./calculator": {
|
|
49
|
+
"bun": "./src/calculator/index.ts",
|
|
50
|
+
"types": "./dist/types/calculator/index.d.ts",
|
|
51
|
+
"require": "./dist/cjs/calculator/index.js",
|
|
52
|
+
"import": "./dist/esm/calculator/index.js",
|
|
53
|
+
"default": "./dist/cjs/calculator/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./react": {
|
|
56
|
+
"bun": "./src/react/index.ts",
|
|
57
|
+
"types": "./dist/types/react/index.d.ts",
|
|
58
|
+
"require": "./dist/cjs/react/index.js",
|
|
59
|
+
"import": "./dist/esm/react/index.js",
|
|
60
|
+
"default": "./dist/cjs/react/index.js"
|
|
61
|
+
},
|
|
62
|
+
"./react/styles.css": "./src/react/styles.css",
|
|
63
|
+
"./codama": {
|
|
64
|
+
"bun": "./src/generated/codama/index.ts",
|
|
65
|
+
"types": "./dist/types/generated/codama/index.d.ts",
|
|
66
|
+
"require": "./dist/cjs/generated/codama/index.js",
|
|
67
|
+
"import": "./dist/esm/generated/codama/index.js",
|
|
68
|
+
"default": "./dist/cjs/generated/codama/index.js"
|
|
69
|
+
},
|
|
70
|
+
"./cost": {
|
|
71
|
+
"bun": "./src/cost/index.ts",
|
|
72
|
+
"types": "./dist/types/cost/index.d.ts",
|
|
73
|
+
"require": "./dist/cjs/cost/index.js",
|
|
74
|
+
"import": "./dist/esm/cost/index.js",
|
|
75
|
+
"default": "./dist/cjs/cost/index.js"
|
|
76
|
+
},
|
|
48
77
|
"./idl": "./dist/idl/srsly.json",
|
|
49
78
|
"./api.json": "./dist/api.json"
|
|
50
79
|
},
|
|
@@ -70,22 +99,29 @@
|
|
|
70
99
|
"@codama/nodes-from-anchor": "^1.2.9",
|
|
71
100
|
"@codama/renderers-js": "^1.4.2",
|
|
72
101
|
"@solana/kit": "^2.1.1",
|
|
102
|
+
"uplot": "^1.6.32",
|
|
73
103
|
"@sly-rentals/vault": "1.0.1"
|
|
74
104
|
},
|
|
75
105
|
"devDependencies": {
|
|
76
106
|
"@types/node": "^24.0.3",
|
|
107
|
+
"@types/react": "^18.2.0",
|
|
77
108
|
"codama": "^1.3.7",
|
|
109
|
+
"react": "^18.2.0",
|
|
78
110
|
"tsconfig-to-dual-package": "^1.2.0",
|
|
79
111
|
"typescript": "^5.9.2",
|
|
80
112
|
"vitest": "^3.2.4",
|
|
81
113
|
"@sly-rentals/programs": "0.1.0"
|
|
82
114
|
},
|
|
83
115
|
"peerDependencies": {
|
|
84
|
-
"@solana/web3.js": "^1.95.0"
|
|
116
|
+
"@solana/web3.js": "^1.95.0",
|
|
117
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
85
118
|
},
|
|
86
119
|
"peerDependenciesMeta": {
|
|
87
120
|
"@solana/web3.js": {
|
|
88
121
|
"optional": true
|
|
122
|
+
},
|
|
123
|
+
"react": {
|
|
124
|
+
"optional": true
|
|
89
125
|
}
|
|
90
126
|
},
|
|
91
127
|
"scripts": {
|