@sly-rentals/core 1.1.2 → 1.2.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 (61) hide show
  1. package/dist/api.json +8611 -6670
  2. package/dist/cjs/instructions/acceptRental.js +39 -53
  3. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  4. package/dist/cjs/instructions/closeContract.js +15 -13
  5. package/dist/cjs/instructions/closeContract.js.map +1 -1
  6. package/dist/cjs/instructions/closeRental.js +19 -15
  7. package/dist/cjs/instructions/closeRental.js.map +1 -1
  8. package/dist/cjs/instructions/reserveRental.js +34 -46
  9. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  10. package/dist/cjs/legacy/index.js +1 -0
  11. package/dist/cjs/legacy/index.js.map +1 -1
  12. package/dist/cjs/package.json +1 -1
  13. package/dist/cjs/utils/bidMath.js +6 -115
  14. package/dist/cjs/utils/bidMath.js.map +1 -1
  15. package/dist/cjs/utils/contractSnapshot.js +207 -0
  16. package/dist/cjs/utils/contractSnapshot.js.map +1 -0
  17. package/dist/cjs/utils/contractSnapshot.test.js +247 -0
  18. package/dist/cjs/utils/contractSnapshot.test.js.map +1 -0
  19. package/dist/cjs/utils/index.js +8 -3
  20. package/dist/cjs/utils/index.js.map +1 -1
  21. package/dist/cjs/version.js +1 -1
  22. package/dist/esm/instructions/acceptRental.js +40 -54
  23. package/dist/esm/instructions/acceptRental.js.map +1 -1
  24. package/dist/esm/instructions/closeContract.js +15 -13
  25. package/dist/esm/instructions/closeContract.js.map +1 -1
  26. package/dist/esm/instructions/closeRental.js +20 -16
  27. package/dist/esm/instructions/closeRental.js.map +1 -1
  28. package/dist/esm/instructions/reserveRental.js +34 -46
  29. package/dist/esm/instructions/reserveRental.js.map +1 -1
  30. package/dist/esm/legacy/index.js +1 -0
  31. package/dist/esm/legacy/index.js.map +1 -1
  32. package/dist/esm/package.json +1 -1
  33. package/dist/esm/utils/bidMath.js +6 -114
  34. package/dist/esm/utils/bidMath.js.map +1 -1
  35. package/dist/esm/utils/contractSnapshot.js +201 -0
  36. package/dist/esm/utils/contractSnapshot.js.map +1 -0
  37. package/dist/esm/utils/contractSnapshot.test.js +245 -0
  38. package/dist/esm/utils/contractSnapshot.test.js.map +1 -0
  39. package/dist/esm/utils/index.js +4 -2
  40. package/dist/esm/utils/index.js.map +1 -1
  41. package/dist/esm/version.js +1 -1
  42. package/dist/types/instructions/acceptRental.d.ts +8 -0
  43. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  44. package/dist/types/instructions/closeContract.d.ts +9 -0
  45. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  46. package/dist/types/instructions/closeRental.d.ts +8 -0
  47. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  48. package/dist/types/instructions/reserveRental.d.ts +8 -0
  49. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  50. package/dist/types/legacy/index.d.ts +1 -0
  51. package/dist/types/legacy/index.d.ts.map +1 -1
  52. package/dist/types/utils/bidMath.d.ts +6 -44
  53. package/dist/types/utils/bidMath.d.ts.map +1 -1
  54. package/dist/types/utils/contractSnapshot.d.ts +123 -0
  55. package/dist/types/utils/contractSnapshot.d.ts.map +1 -0
  56. package/dist/types/utils/contractSnapshot.test.d.ts +2 -0
  57. package/dist/types/utils/contractSnapshot.test.d.ts.map +1 -0
  58. package/dist/types/utils/index.d.ts +2 -1
  59. package/dist/types/utils/index.d.ts.map +1 -1
  60. package/dist/types/version.d.ts +1 -1
  61. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  // Auto-generated from package.json - DO NOT EDIT
2
2
  // Run "pnpm run generate:version" to update
3
- export const VERSION = '1.1.2';
3
+ export const VERSION = '1.2.0';
4
4
  //# sourceMappingURL=version.js.map
@@ -9,6 +9,7 @@ import { type SdkConfig } from '../utils/config';
9
9
  import { type UniversalSigner } from '../utils/signer';
10
10
  import { type AmountParam } from '../params/amount';
11
11
  import { type DurationParam } from '../params/duration';
12
+ import { type ContractSnapshot } from '../utils/contractSnapshot';
12
13
  import { prepareInstructions } from '../utils/instructions';
13
14
  import { type SerializedDiscountAuth } from '../utils/discountAuth';
14
15
  /**
@@ -74,6 +75,13 @@ export interface AcceptRentalParams {
74
75
  * fetching the active rental state.
75
76
  */
76
77
  expiredBorrowerState?: Address | string;
78
+ /**
79
+ * Optional pre-fetched `ContractSnapshot`. When supplied, skips the
80
+ * aggregated RPC fetch. If the snapshot is stale (contract pointer set
81
+ * but rental account null), the SDK lazy-refetches once and throws if
82
+ * still inconsistent.
83
+ */
84
+ snapshot?: ContractSnapshot;
77
85
  }
78
86
  /**
79
87
  * Activate a rental: transfer fleet control to the borrower for the
@@ -1 +1 @@
1
- {"version":3,"file":"acceptRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAA0B,MAAM,aAAa,CAAC;AAEzF,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAezE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,KAAK,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAuPjD"}
1
+ {"version":3,"file":"acceptRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/acceptRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAA0B,MAAM,aAAa,CAAC;AAEzF,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAK3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,KAAK,sBAAsB,EAA2B,MAAM,uBAAuB,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CA4OjD"}
@@ -7,6 +7,7 @@
7
7
  import { type Address } from '@solana/kit';
8
8
  import { type SdkConfig } from '../utils/config';
9
9
  import { type UniversalSigner } from '../utils/signer';
10
+ import { type ContractSnapshot } from '../utils/contractSnapshot';
10
11
  import { prepareInstructions } from '../utils/instructions';
11
12
  /**
12
13
  * Parameters for closing a rental contract
@@ -43,6 +44,14 @@ export interface CloseContractParams {
43
44
  * @example 400000
44
45
  */
45
46
  computeUnits?: number;
47
+ /**
48
+ * Optional pre-fetched `ContractSnapshot`. When supplied, skips the
49
+ * aggregated RPC fetch. If the snapshot is stale (contract pointer set
50
+ * but rental account null), the SDK lazy-refetches once and throws if
51
+ * still inconsistent. Ignored when `contract` is not provided and the
52
+ * address must be derived from `fleet`.
53
+ */
54
+ snapshot?: ContractSnapshot;
46
55
  }
47
56
  /**
48
57
  * Close a rental contract and refund rent to the owner. Idempotent —
@@ -1 +1 @@
1
- {"version":3,"file":"closeContract.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAKnF,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAgLjD"}
1
+ {"version":3,"file":"closeContract.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAoB,MAAM,aAAa,CAAC;AAKnF,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAI3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE/B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAqLjD"}
@@ -7,6 +7,7 @@
7
7
  import { type Address } from '@solana/kit';
8
8
  import { type SdkConfig } from '../utils/config';
9
9
  import { type UniversalSigner } from '../utils/signer';
10
+ import { type ContractSnapshot } from '../utils/contractSnapshot';
10
11
  import { prepareInstructions } from '../utils/instructions';
11
12
  /**
12
13
  * Parameters for closing a rental
@@ -32,6 +33,13 @@ export interface CloseRentalParams {
32
33
  * @example 400000
33
34
  */
34
35
  computeUnits?: number;
36
+ /**
37
+ * Optional pre-fetched `ContractSnapshot`. When supplied, skips the
38
+ * aggregated RPC fetch. If the snapshot is stale (contract pointer set
39
+ * but rental account null), the SDK lazy-refetches once and throws if
40
+ * still inconsistent.
41
+ */
42
+ snapshot?: ContractSnapshot;
35
43
  }
36
44
  /**
37
45
  * Finalize a completed rental and return the fleet to the owner.
@@ -1 +1 @@
1
- {"version":3,"file":"closeRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgB5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CA+HjD"}
1
+ {"version":3,"file":"closeRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAG5E,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAM3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAqIjD"}
@@ -10,6 +10,7 @@ import { type UniversalSigner } from '../utils/signer';
10
10
  import { type AmountParam } from '../params/amount';
11
11
  import { type DurationParam } from '../params/duration';
12
12
  import { prepareInstructions } from '../utils/instructions';
13
+ import { type ContractSnapshot } from '../utils/contractSnapshot';
13
14
  /**
14
15
  * Parameters for reserving a rental contract
15
16
  */
@@ -64,6 +65,13 @@ export interface ReserveRentalParams {
64
65
  * @example 200000
65
66
  */
66
67
  computeUnits?: number;
68
+ /**
69
+ * Optional pre-fetched `ContractSnapshot`. When supplied, skips the
70
+ * aggregated RPC fetch. If the snapshot is stale (contract pointer set
71
+ * but rental account null), the SDK lazy-refetches once and throws if
72
+ * still inconsistent.
73
+ */
74
+ snapshot?: ContractSnapshot;
67
75
  }
68
76
  /**
69
77
  * Bid on a contract via the GBM-style reservation auction. The winner
@@ -1 +1 @@
1
- {"version":3,"file":"reserveRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,EAAE,eAAe,CAAC;IAE5B;;OAEG;IACH,iBAAiB,EAAE,OAAO,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CA6JjD"}
1
+ {"version":3,"file":"reserveRental.d.ts","sourceRoot":"","sources":["../../../src/instructions/reserveRental.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAazE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,EAAE,eAAe,CAAC;IAE5B;;OAEG;IACH,iBAAiB,EAAE,OAAO,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC1B,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAoJjD"}
@@ -27,6 +27,7 @@ export * from '../utils';
27
27
  export * from '../accounts';
28
28
  export * from '../params';
29
29
  export * from '../pda';
30
+ export * from '../cost';
30
31
  export { VERSION } from '../version';
31
32
  export * as codama from '../generated/codama';
32
33
  export * as audit from '../audit';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +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 { type Address } from '@solana/kit';
11
10
  /**
12
11
  * Pure math: contest minimum-bid floor in stardust.
13
12
  *
@@ -49,41 +48,4 @@ export type MinimumBid = {
49
48
  /** Active rental's start_time in unix seconds, if one exists. */
50
49
  activeStartSeconds: number | null;
51
50
  };
52
- /**
53
- * High-level helper: compute the contest minimum bid for a contract right
54
- * now (or at `now + delaySeconds`).
55
- *
56
- * Fetches `ConfigState`, `ContractState`, and the active/queued `RentalState`
57
- * accounts, derives `closeness` from the active rental window, and returns
58
- * the floor a challenger must clear plus enough context to render a UI.
59
- *
60
- * @example
61
- * ```ts
62
- * const floor = await getMinimumBid({ contractAddress: 'Abc...' });
63
- * console.log('Bid at least', floor.minBidStardust, 'stardust');
64
- *
65
- * // Preview the floor 4 hours from now (snipe-window pricing):
66
- * const later = await getMinimumBid({
67
- * contractAddress: 'Abc...',
68
- * delaySeconds: 4 * 60 * 60,
69
- * });
70
- * ```
71
- *
72
- * If the contract has no active rental yet, closeness = 0 and the floor
73
- * collapses to the rate-bump floor (`rate × captureRate`).
74
- */
75
- export declare function getMinimumBid(args: {
76
- contractAddress: Address | string;
77
- /** Seconds to advance the evaluation past `now`. Negative values are
78
- * clamped to 0 (no back-dating). Default 0. */
79
- delaySeconds?: number;
80
- /** Override the evaluation moment outright (unix seconds). Takes priority
81
- * over `delaySeconds`. */
82
- nowSeconds?: number;
83
- /** ATLAS-per-point conversion (whole-ATLAS per whole-point). Defaults to
84
- * the cached `cfg.atlasPerPoint`; override if you want to project a
85
- * different conversion. */
86
- atlasPerPoint?: bigint;
87
- rpcUrl?: string;
88
- }): Promise<MinimumBid>;
89
51
  //# sourceMappingURL=bidMath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bidMath.d.ts","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAa3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAYT;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB;4DACwD;IACxD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;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;;gCAE4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyFtB"}
1
+ {"version":3,"file":"bidMath.d.ts","sourceRoot":"","sources":["../../../src/utils/bidMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAYT;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB;4DACwD;IACxD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * @purpose Aggregated point-in-time view of a contract and its rentals
3
+ *
4
+ * One-shot fetch that pulls every on-chain account relevant to a single
5
+ * contract — `ConfigState`, `ContractState`, and the active / queued
6
+ * `RentalState`s (when they exist) — and also computes the contest
7
+ * minimum-bid floor evaluated at "now". The raw account states are
8
+ * exposed verbatim so callers decide what matters; `minimumBid` is the
9
+ * one piece of derived data that nearly every consumer of this snapshot
10
+ * needs.
11
+ *
12
+ * Granular `fetchConfig` / `fetchContract` / `fetchRental` remain
13
+ * available for narrow lookups that don't need the whole picture.
14
+ */
15
+ import { type Address } from '@solana/kit';
16
+ import type { ConfigState } from '../generated/codama/accounts/configState';
17
+ import type { ContractState } from '../generated/codama/accounts/contractState';
18
+ import type { RentalState } from '../generated/codama/accounts/rentalState';
19
+ import { type MinimumBid } from './bidMath';
20
+ export type FetchedAccount<T> = {
21
+ data: T;
22
+ address: Address;
23
+ };
24
+ export type ContractSnapshot = {
25
+ config: FetchedAccount<ConfigState>;
26
+ contract: FetchedAccount<ContractState>;
27
+ /** Null when contract.activeRental points at SystemProgram, or when the
28
+ * rental account has been closed since the contract was last touched. */
29
+ activeRental: FetchedAccount<RentalState> | null;
30
+ /** Null when contract.queuedRental points at SystemProgram, or when the
31
+ * rental account has been closed since the contract was last touched. */
32
+ queuedRental: FetchedAccount<RentalState> | null;
33
+ /** Contest minimum-bid floor evaluated at the snapshot's fetch time. For
34
+ * time-projected floors (`delaySeconds`, custom `nowSeconds`), call
35
+ * `computeMinimumBidFromSnapshot(snap, opts)` — no extra RPC needed. */
36
+ minimumBid: MinimumBid;
37
+ };
38
+ /**
39
+ * Fetch a contract and every account directly attached to it in one shot,
40
+ * then derive the contest minimum-bid floor at "now".
41
+ *
42
+ * Strategy: fetch `ConfigState` and `ContractState` in parallel, then read
43
+ * the contract's `activeRental` / `queuedRental` pointers and fetch
44
+ * whichever ones exist (in parallel). Pointers that equal SystemProgram
45
+ * are skipped without an RPC call. The bid floor is computed locally
46
+ * once all states are in.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const snap = await getContractSnapshot({ contractAddress: 'Abc...' });
51
+ * const rate = snap.contract.data.rate;
52
+ * const defenderBid = snap.queuedRental?.data.bidAtlas ?? 0n;
53
+ * const floorNow = snap.minimumBid.minBidStardust;
54
+ *
55
+ * // Project the floor 4 hours forward without re-fetching:
56
+ * const floorLater = computeMinimumBidFromSnapshot(snap, {
57
+ * delaySeconds: 4 * 60 * 60,
58
+ * });
59
+ * ```
60
+ */
61
+ export declare function getContractSnapshot(args: {
62
+ contractAddress: Address | string;
63
+ rpcUrl?: string;
64
+ }): Promise<ContractSnapshot>;
65
+ /**
66
+ * Resolve a `ContractSnapshot` from caller-supplied data or fetch fresh.
67
+ *
68
+ * Designed for callers (e.g. UIs) that already have a snapshot in hand and
69
+ * want to skip the RPC roundtrip when building an instruction. Behavior:
70
+ *
71
+ * 1. If no snapshot is supplied → fetch a fresh one.
72
+ * 2. If snapshot's contract address doesn't match `contractAddress` →
73
+ * throw immediately (programmer error).
74
+ * 3. If snapshot's rental fields are stale relative to the contract's
75
+ * pointers (contract says a rental exists but snapshot has `null` —
76
+ * typical when the snapshot was fetched mid-state-change) → lazy
77
+ * refetch the snapshot once.
78
+ * 4. If still stale after the refetch → throw. The on-chain reality
79
+ * conflicts with itself; let the caller decide how to recover.
80
+ */
81
+ export declare function resolveContractSnapshot(args: {
82
+ contractAddress: Address | string;
83
+ rpcUrl?: string;
84
+ snapshot?: ContractSnapshot;
85
+ }): Promise<ContractSnapshot>;
86
+ /**
87
+ * Pure derivation of `MinimumBid` from an already-fetched snapshot. No RPC.
88
+ *
89
+ * Use when the caller has a snapshot and wants the floor at a custom time
90
+ * projection (`delaySeconds` / `nowSeconds`) or with an overridden
91
+ * `atlasPerPoint` ratio. For the at-fetch-time floor, read
92
+ * `snap.minimumBid` directly.
93
+ */
94
+ export declare function computeMinimumBidFromSnapshot(snap: Omit<ContractSnapshot, 'minimumBid'>, opts?: {
95
+ delaySeconds?: number;
96
+ nowSeconds?: number;
97
+ atlasPerPoint?: bigint;
98
+ }): MinimumBid;
99
+ /**
100
+ * Convenience wrapper: fetch a snapshot and return only its `minimumBid`.
101
+ *
102
+ * Same fetches as `getContractSnapshot` — if you need the contract / rental
103
+ * states too, call `getContractSnapshot` directly so you don't fetch twice.
104
+ *
105
+ * For time-projected floors, pass `delaySeconds` or `nowSeconds`; the
106
+ * underlying fetch is identical.
107
+ */
108
+ export declare function getMinimumBid(args: {
109
+ contractAddress: Address | string;
110
+ /** Seconds to advance the evaluation past `now`. Negative values are
111
+ * clamped to 0 (no back-dating). Default 0. */
112
+ delaySeconds?: number;
113
+ /** Override the evaluation moment outright (unix seconds). Takes priority
114
+ * over `delaySeconds`. */
115
+ nowSeconds?: number;
116
+ /** ATLAS-per-point conversion override. Defaults to `cfg.atlasPerPoint`. */
117
+ atlasPerPoint?: bigint;
118
+ rpcUrl?: string;
119
+ /** Optional pre-fetched snapshot — when supplied, no RPC fetches happen
120
+ * and `contractAddress` / `rpcUrl` are ignored. */
121
+ snapshot?: ContractSnapshot;
122
+ }): Promise<MinimumBid>;
123
+ //# sourceMappingURL=contractSnapshot.d.ts.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;GAsBG;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,CA0DZ;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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contractSnapshot.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractSnapshot.test.d.ts","sourceRoot":"","sources":["../../../src/utils/contractSnapshot.test.ts"],"names":[],"mappings":""}
@@ -11,7 +11,8 @@ export { InstructionResult, type LegacyInstruction } from './instructionResult';
11
11
  export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
12
12
  export { fetchLookupTable, getLookupTableAddress, type AddressLookupTableData, } from './lookupTable';
13
13
  export { hasActiveRental, hasQueuedRental } from './rental';
14
- export { computeMinimumBid, getMinimumBid, type MinimumBid } from './bidMath';
14
+ export { computeMinimumBid, type MinimumBid } from './bidMath';
15
+ export { getContractSnapshot, resolveContractSnapshot, computeMinimumBidFromSnapshot, getMinimumBid, type ContractSnapshot, type FetchedAccount, } from './contractSnapshot';
15
16
  export { createDiscount, deserializeDiscountAuth, type CreateDiscountParams, type SerializedDiscountAuth, type MessageSigner, } from './discountAuth';
16
17
  export { resolveReferrer, requireValidReferrer } from './referrer';
17
18
  //# 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,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAG9E,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,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,2 +1,2 @@
1
- export declare const VERSION = "1.1.2";
1
+ export declare const VERSION = "1.2.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": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "TypeScript SDK for SRSLY",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",