@wuwei-labs/srsly 2.0.0-beta.24 → 2.0.0-beta.25

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 (53) hide show
  1. package/README.md +123 -21
  2. package/dist/cjs/codama/errors/srsly.js +7 -1
  3. package/dist/cjs/codama/errors/srsly.js.map +1 -1
  4. package/dist/cjs/contract/create.js +13 -2
  5. package/dist/cjs/contract/create.js.map +1 -1
  6. package/dist/cjs/index.js +25 -4
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/package.json +1 -1
  9. package/dist/cjs/types/paymentFrequency.js +58 -0
  10. package/dist/cjs/types/paymentFrequency.js.map +1 -0
  11. package/dist/cjs/utils/constants.js +3 -20
  12. package/dist/cjs/utils/constants.js.map +1 -1
  13. package/dist/cjs/utils/duration.js +77 -0
  14. package/dist/cjs/utils/duration.js.map +1 -0
  15. package/dist/cjs/utils/index.js +2 -0
  16. package/dist/cjs/utils/index.js.map +1 -1
  17. package/dist/cjs/utils/paymentFrequency.js +60 -0
  18. package/dist/cjs/utils/paymentFrequency.js.map +1 -0
  19. package/dist/esm/codama/errors/srsly.js +6 -0
  20. package/dist/esm/codama/errors/srsly.js.map +1 -1
  21. package/dist/esm/contract/create.js +13 -2
  22. package/dist/esm/contract/create.js.map +1 -1
  23. package/dist/esm/index.js +8 -2
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/package.json +1 -1
  26. package/dist/esm/types/paymentFrequency.js +53 -0
  27. package/dist/esm/types/paymentFrequency.js.map +1 -0
  28. package/dist/esm/utils/constants.js +2 -18
  29. package/dist/esm/utils/constants.js.map +1 -1
  30. package/dist/esm/utils/duration.js +68 -0
  31. package/dist/esm/utils/duration.js.map +1 -0
  32. package/dist/esm/utils/index.js +2 -0
  33. package/dist/esm/utils/index.js.map +1 -1
  34. package/dist/esm/utils/paymentFrequency.js +55 -0
  35. package/dist/esm/utils/paymentFrequency.js.map +1 -0
  36. package/dist/types/codama/errors/srsly.d.ts +5 -1
  37. package/dist/types/codama/errors/srsly.d.ts.map +1 -1
  38. package/dist/types/contract/create.d.ts +7 -5
  39. package/dist/types/contract/create.d.ts.map +1 -1
  40. package/dist/types/index.d.ts +4 -1
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/dist/types/types/paymentFrequency.d.ts +44 -0
  43. package/dist/types/types/paymentFrequency.d.ts.map +1 -0
  44. package/dist/types/utils/constants.d.ts +0 -13
  45. package/dist/types/utils/constants.d.ts.map +1 -1
  46. package/dist/types/utils/duration.d.ts +56 -0
  47. package/dist/types/utils/duration.d.ts.map +1 -0
  48. package/dist/types/utils/index.d.ts +2 -0
  49. package/dist/types/utils/index.d.ts.map +1 -1
  50. package/dist/types/utils/paymentFrequency.d.ts +18 -0
  51. package/dist/types/utils/paymentFrequency.d.ts.map +1 -0
  52. package/package.json +1 -1
  53. package/target/idl/srsly.json +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentFrequency.js","sourceRoot":"","sources":["../../../src/utils/paymentFrequency.ts"],"names":[],"mappings":";;AA2BA,8DAkBC;AAMD,0EAOC;AAMD,8DAYC;AA5ED,uEAAoE;AACpE,gEAImC;AAEnC;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,8CAA2B,CAAC;AAEhC;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,SAA2B;IACnE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,mCAAgB,CAAC,UAAU;YAC9B,OAAO,sBAAsB,CAAC;QAChC,KAAK,mCAAgB,CAAC,MAAM;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,mCAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,mCAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,mCAAgB,CAAC,QAAQ;YAC5B,OAAO,eAAe,CAAC;QACzB,KAAK,mCAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,mCAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC;QAC3B;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,+BAA+B,CAAC,eAAuC;IACrF,MAAM,SAAS,GAAG,wCAAqB,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CACvC,QAAyB,EACzB,eAAuC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,mCAAmC,eAAe,eAAe,gBAAgB,WAAW,CAClH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -49,6 +49,10 @@ export const SRSLY_ERROR__INVALID_ATLAS_CONVERSION_RATE = 0x1782; // 6018
49
49
  export const SRSLY_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM = 0x1783; // 6019
50
50
  /** InvalidOwnerProfile: Fleet owner profile does not match the provided owner profile. */
51
51
  export const SRSLY_ERROR__INVALID_OWNER_PROFILE = 0x1784; // 6020
52
+ /** InvalidDurationMinimumAlignment: Duration minimum must be a multiple of the payment frequency interval. */
53
+ export const SRSLY_ERROR__INVALID_DURATION_MINIMUM_ALIGNMENT = 0x1785; // 6021
54
+ /** InvalidDurationMaximumAlignment: Duration maximum must be a multiple of the payment frequency interval. */
55
+ export const SRSLY_ERROR__INVALID_DURATION_MAXIMUM_ALIGNMENT = 0x1786; // 6022
52
56
  let srslyErrorMessages;
53
57
  if (process.env.NODE_ENV !== 'production') {
54
58
  srslyErrorMessages = {
@@ -60,7 +64,9 @@ if (process.env.NODE_ENV !== 'production') {
60
64
  [SRSLY_ERROR__INSUFFICIENT_CANCELLATION_NOTICE]: `Rental time remaining is less than minimum cancellation notice required.`,
61
65
  [SRSLY_ERROR__INVALID_ATLAS_CONVERSION_RATE]: `Invalid ATLAS conversion rate. Must be greater than 0.`,
62
66
  [SRSLY_ERROR__INVALID_DURATION_MAXIMUM]: `Invalid duration maximum. Must be greater than or equal to the duration minimum.`,
67
+ [SRSLY_ERROR__INVALID_DURATION_MAXIMUM_ALIGNMENT]: `Duration maximum must be a multiple of the payment frequency interval.`,
63
68
  [SRSLY_ERROR__INVALID_DURATION_MINIMUM]: `Invalid duration minimum. Must be between 1 and the duration maximum.`,
69
+ [SRSLY_ERROR__INVALID_DURATION_MINIMUM_ALIGNMENT]: `Duration minimum must be a multiple of the payment frequency interval.`,
64
70
  [SRSLY_ERROR__INVALID_FEE_RATE]: `Invalid fee rate. Service fee must be <= 50%, referral fee <= 100%, base_bps > 0.`,
65
71
  [SRSLY_ERROR__INVALID_OWNER_PROFILE]: `Fleet owner profile does not match the provided owner profile.`,
66
72
  [SRSLY_ERROR__INVALID_PAYMENT_FREQUENCY]: `Invalid payment frequency. Must be one of: @hourly, @daily, @weekly, @monthly.`,
@@ -1 +1 @@
1
- {"version":3,"file":"srsly.js","sourceRoot":"","sources":["../../../../src/codama/errors/srsly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"srsly.js","sourceRoot":"","sources":["../../../../src/codama/errors/srsly.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  import { getModule, createConfigSelector } from '../utils/config';
2
2
  import { getSageGameId, getSageProgramAddress, getAtlasMint, toAddress } from '../utils/constants';
3
+ import { validateDurationAlignment, paymentFrequencyStringToSeconds } from '../utils/paymentFrequency';
4
+ import { isValidPaymentFrequency } from '../types/paymentFrequency';
3
5
  /**
4
6
  * Internal function to create a contract instruction with configuration options
5
7
  */
6
8
  async function _createContract(params, config) {
7
- const { owner, fleet, ownerProfile, rate, durationMin, durationMax, paymentsFreq, ownerKeyIndex = 0, gameId, mint, } = params;
9
+ const { owner, fleet, ownerProfile, rate, durationMax, paymentsFreq, ownerKeyIndex = 0, gameId, mint, } = params;
10
+ // Validate payment frequency using auto-generated validation
11
+ if (!isValidPaymentFrequency(paymentsFreq)) {
12
+ throw new Error(`Invalid payment frequency: ${paymentsFreq}. Valid values are auto-generated from Rust PaymentFrequency enum.`);
13
+ }
14
+ // Calculate durationMin from payment frequency
15
+ const durationMin = paymentFrequencyStringToSeconds(paymentsFreq);
16
+ // Validate that durationMax is a multiple of the payment frequency
17
+ // Uses the codama-generated PaymentFrequency enum and mirrors Rust implementation
18
+ validateDurationAlignment(durationMax, paymentsFreq);
8
19
  // Get the actual game ID to use (param override, config override, or network default)
9
20
  const actualGameId = gameId ? toAddress(gameId) : await getSageGameId(config);
10
21
  // Get codama functions
@@ -24,7 +35,7 @@ async function _createContract(params, config) {
24
35
  rate: BigInt(rate),
25
36
  durationMin: BigInt(durationMin),
26
37
  durationMax: BigInt(durationMax),
27
- paymentsFeq: paymentsFreq,
38
+ paymentsFeq: `@${paymentsFreq}`,
28
39
  ownerKeyIndex,
29
40
  sageProgram: toAddress(await getSageProgramAddress(config)),
30
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/contract/create.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAA2C,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA+DnG;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,MAA4B,EAC5B,MAAsB;IAEtB,MAAM,EACJ,KAAK,EACL,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,GAAG,CAAC,EACjB,MAAM,EACN,IAAI,GACL,GAAG,MAAM,CAAC;IAEX,sFAAsF;IACtF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAE9E,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,EAAE,iCAAiC,EAAE,GAAG,kBAAkB,CAAC;IACjE,MAAM,EAAE,qBAAqB,EAAE,GAAG,cAAc,CAAC;IAEjD,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtE,kFAAkF;IAClF,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;QACvB,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;QACrC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,YAAY;QACzB,aAAa;QACb,WAAW,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC5D,CAAC;IAEF,OAAO,iCAAiC,CACtC,KAAK,EACL,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4B;IAE5B,OAAO,oBAAoB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAU,EAAE,OAAa;IACzE,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/contract/create.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAA2C,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAA0B,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA+D5F;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,MAA4B,EAC5B,MAAsB;IAEtB,MAAM,EACJ,KAAK,EACL,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,aAAa,GAAG,CAAC,EACjB,MAAM,EACN,IAAI,GACL,GAAG,MAAM,CAAC;IAEX,6DAA6D;IAC7D,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,oEAAoE,CAAC,CAAC;IAClI,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IAElE,mEAAmE;IACnE,kFAAkF;IAClF,yBAAyB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAErD,sFAAsF;IACtF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAE9E,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,EAAE,iCAAiC,EAAE,GAAG,kBAAkB,CAAC;IACjE,MAAM,EAAE,qBAAqB,EAAE,GAAG,cAAc,CAAC;IAEjD,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtE,kFAAkF;IAClF,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;QACvB,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;QACrC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,WAAW,EAAE,IAAI,YAAY,EAAE;QAC/B,aAAa;QACb,WAAW,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;KAC5D,CAAC;IAEF,OAAO,iCAAiC,CACtC,KAAK,EACL,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4B;IAE5B,OAAO,oBAAoB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAAU,EAAE,OAAa;IACzE,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC,iCAAiC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/esm/index.js CHANGED
@@ -2,6 +2,12 @@
2
2
  export * from "./contract";
3
3
  export * from "./rental";
4
4
  export * from "./utils";
5
- // Export PaymentFrequency from utils since it's not in codama
6
- export { PaymentFrequency } from "./utils/constants";
5
+ // Export PaymentFrequency from codama (generated from Rust)
6
+ export { PaymentFrequency } from "./codama/types/paymentFrequency";
7
+ // Export auto-generated payment frequency types and utilities
8
+ export { VALID_PAYMENT_FREQUENCIES, PAYMENT_FREQUENCY_MAP, PAYMENT_FREQUENCY_CONSTANTS, getPaymentFrequencyFromString, isValidPaymentFrequency } from "./types/paymentFrequency";
9
+ // Export payment frequency utilities that mirror Rust implementation
10
+ export { paymentFrequencyToSeconds, paymentFrequencyStringToSeconds, validateDurationAlignment } from "./utils/paymentFrequency";
11
+ // Export duration helper functions for convenient time unit conversion
12
+ export { decaseconds, minutes, hours, days, weeks, months, duration } from "./utils/duration";
7
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAsBxB,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAsBxB,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,8DAA8D;AAC9D,OAAO,EAEL,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,qEAAqE;AACrE,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,uEAAuE;AACvE,OAAO,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACT,MAAM,kBAAkB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuwei-labs/srsly",
3
- "version": "2.0.0-beta.24",
3
+ "version": "2.0.0-beta.25",
4
4
  "description": "",
5
5
  "source": "./src/index.ts",
6
6
  "sideEffects": false,
@@ -0,0 +1,53 @@
1
+ /**
2
+ * This code was AUTO-GENERATED from the Rust PaymentFrequency implementation.
3
+ * Please DO NOT EDIT THIS FILE manually - it will be overwritten.
4
+ *
5
+ * Source: programs/srsly/src/utils.rs
6
+ * Generated by: generate.mjs
7
+ */
8
+ import { PaymentFrequency } from '../codama/types/paymentFrequency';
9
+ /**
10
+ * Array of all valid payment frequency strings
11
+ * Auto-generated from Rust PaymentFrequency enum
12
+ */
13
+ export const VALID_PAYMENT_FREQUENCIES = [
14
+ 'hourly',
15
+ 'daily',
16
+ 'weekly',
17
+ 'monthly'
18
+ ];
19
+ /**
20
+ * Mapping from user-friendly strings to PaymentFrequency enum values
21
+ * Auto-generated from Rust PaymentFrequency enum
22
+ */
23
+ export const PAYMENT_FREQUENCY_MAP = {
24
+ 'hourly': PaymentFrequency.Hourly,
25
+ 'daily': PaymentFrequency.Daily,
26
+ 'weekly': PaymentFrequency.Weekly,
27
+ 'monthly': PaymentFrequency.Monthly
28
+ };
29
+ /**
30
+ * Constants extracted from Rust constants.rs
31
+ * Auto-synced with Rust implementation
32
+ */
33
+ export const PAYMENT_FREQUENCY_CONSTANTS = {
34
+ SECONDS_PER_DECASECOND: 10,
35
+ SECONDS_PER_MINUTE: 60,
36
+ SECONDS_PER_HOUR: 3600,
37
+ SECONDS_PER_DAY: 86400,
38
+ SECONDS_PER_WEEK: 604800,
39
+ SECONDS_PER_MONTH: 2678400
40
+ };
41
+ /**
42
+ * Get PaymentFrequency enum value from user-friendly string
43
+ */
44
+ export function getPaymentFrequencyFromString(frequencyString) {
45
+ return PAYMENT_FREQUENCY_MAP[frequencyString];
46
+ }
47
+ /**
48
+ * Check if a string is a valid payment frequency
49
+ */
50
+ export function isValidPaymentFrequency(value) {
51
+ return VALID_PAYMENT_FREQUENCIES.includes(value);
52
+ }
53
+ //# sourceMappingURL=paymentFrequency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentFrequency.js","sourceRoot":"","sources":["../../../src/types/paymentFrequency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;CACD,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqD;IACrF,QAAQ,EAAE,gBAAgB,CAAC,MAAM;IACjC,OAAO,EAAE,gBAAgB,CAAC,KAAK;IAC/B,QAAQ,EAAE,gBAAgB,CAAC,MAAM;IACjC,SAAS,EAAE,gBAAgB,CAAC,OAAO;CAC3B,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,sBAAsB,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;IACtB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,MAAM;IACxB,iBAAiB,EAAE,OAAO;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,eAAuC;IACnF,OAAO,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,yBAAyB,CAAC,QAAQ,CAAC,KAA+B,CAAC,CAAC;AAC7E,CAAC"}
@@ -14,18 +14,7 @@ export const SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
14
14
  export const PROFILE_FACTION_SEED = 'profile_faction';
15
15
  // Token conversion constants
16
16
  export const ATLAS_TO_STARDUST = 100_000_000; // 1 ATLAS = 100,000,000 stardust
17
- // PaymentFrequency enum to match the Rust program
18
- export var PaymentFrequency;
19
- (function (PaymentFrequency) {
20
- PaymentFrequency[PaymentFrequency["Hourly"] = 0] = "Hourly";
21
- PaymentFrequency[PaymentFrequency["Daily"] = 1] = "Daily";
22
- PaymentFrequency[PaymentFrequency["DailyOld"] = 2] = "DailyOld";
23
- PaymentFrequency[PaymentFrequency["Weekly"] = 3] = "Weekly";
24
- PaymentFrequency[PaymentFrequency["Monthly"] = 4] = "Monthly";
25
- // Development-only frequencies (not available on mainnet)
26
- PaymentFrequency[PaymentFrequency["Decasecond"] = 5] = "Decasecond";
27
- PaymentFrequency[PaymentFrequency["Minute"] = 6] = "Minute";
28
- })(PaymentFrequency || (PaymentFrequency = {}));
17
+ // PaymentFrequency enum is now exported from codama-generated types
29
18
  // Network constants are now managed in config.ts
30
19
  export async function getSrslyProgramAddress(config) {
31
20
  const globalConfig = getConfig();
@@ -74,10 +63,5 @@ export const FACTION_MAPPING = {
74
63
  2: 'oni',
75
64
  3: 'ustur'
76
65
  };
77
- /**
78
- * Convert PaymentFrequency enum to string
79
- */
80
- export function paymentFrequencyToString(freq) {
81
- return PaymentFrequency[freq].toLowerCase();
82
- }
66
+ // PaymentFrequency utilities are now in utils/paymentFrequency.ts
83
67
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
2
+ /**
3
+ * Duration helper functions for converting time units to seconds
4
+ * Uses the same constants as the payment frequency system for consistency
5
+ */
6
+ const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
7
+ /**
8
+ * Convert decaseconds (10 seconds) to seconds
9
+ * @param amount Number of decaseconds
10
+ * @returns Number of seconds
11
+ */
12
+ export function decaseconds(amount) {
13
+ return amount * SECONDS_PER_DECASECOND;
14
+ }
15
+ /**
16
+ * Convert minutes to seconds
17
+ * @param amount Number of minutes
18
+ * @returns Number of seconds
19
+ */
20
+ export function minutes(amount) {
21
+ return amount * SECONDS_PER_MINUTE;
22
+ }
23
+ /**
24
+ * Convert hours to seconds
25
+ * @param amount Number of hours
26
+ * @returns Number of seconds
27
+ */
28
+ export function hours(amount) {
29
+ return amount * SECONDS_PER_HOUR;
30
+ }
31
+ /**
32
+ * Convert days to seconds
33
+ * @param amount Number of days
34
+ * @returns Number of seconds
35
+ */
36
+ export function days(amount) {
37
+ return amount * SECONDS_PER_DAY;
38
+ }
39
+ /**
40
+ * Convert weeks to seconds
41
+ * @param amount Number of weeks
42
+ * @returns Number of seconds
43
+ */
44
+ export function weeks(amount) {
45
+ return amount * SECONDS_PER_WEEK;
46
+ }
47
+ /**
48
+ * Convert months to seconds
49
+ * @param amount Number of months (31 days each)
50
+ * @returns Number of seconds
51
+ */
52
+ export function months(amount) {
53
+ return amount * SECONDS_PER_MONTH;
54
+ }
55
+ /**
56
+ * All duration helper functions
57
+ */
58
+ export const duration = {
59
+ decaseconds,
60
+ minutes,
61
+ hours,
62
+ days,
63
+ weeks,
64
+ months,
65
+ // Also expose the raw constants for advanced users
66
+ constants: PAYMENT_FREQUENCY_CONSTANTS,
67
+ };
68
+ //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/utils/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;GAGG;AAEH,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,GAAG,sBAAsB,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAO,MAAM,GAAG,kBAAkB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc;IACjC,OAAO,MAAM,GAAG,eAAe,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,MAAM,GAAG,iBAAiB,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IAEN,mDAAmD;IACnD,SAAS,EAAE,2BAA2B;CAC9B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from "./constants";
2
2
  export * from "./profiles";
3
3
  export * from "./config";
4
+ export * from "./paymentFrequency";
5
+ export * from "./duration";
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { PaymentFrequency } from '../codama/types/paymentFrequency';
2
+ import { PAYMENT_FREQUENCY_MAP, PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
3
+ /**
4
+ * Payment frequency conversion utilities
5
+ * Mirrors the Rust implementation in programs/srsly/src/utils.rs
6
+ * Uses auto-generated constants and mappings from Rust source
7
+ */
8
+ // Auto-synced constants from Rust constants.rs
9
+ const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
10
+ /**
11
+ * Converts a PaymentFrequency enum value to seconds
12
+ * Mirrors the to_seconds() method from the Rust implementation
13
+ */
14
+ export function paymentFrequencyToSeconds(frequency) {
15
+ switch (frequency) {
16
+ case PaymentFrequency.Decasecond:
17
+ return SECONDS_PER_DECASECOND;
18
+ case PaymentFrequency.Minute:
19
+ return SECONDS_PER_MINUTE;
20
+ case PaymentFrequency.Hourly:
21
+ return SECONDS_PER_HOUR;
22
+ case PaymentFrequency.Daily:
23
+ case PaymentFrequency.DailyOld:
24
+ return SECONDS_PER_DAY;
25
+ case PaymentFrequency.Weekly:
26
+ return SECONDS_PER_WEEK;
27
+ case PaymentFrequency.Monthly:
28
+ return SECONDS_PER_MONTH;
29
+ default:
30
+ throw new Error(`Unknown payment frequency: ${frequency}`);
31
+ }
32
+ }
33
+ /**
34
+ * Converts a payment frequency string to seconds
35
+ * Uses auto-generated mapping from Rust PaymentFrequency enum
36
+ */
37
+ export function paymentFrequencyStringToSeconds(frequencyString) {
38
+ const frequency = PAYMENT_FREQUENCY_MAP[frequencyString];
39
+ if (frequency === undefined) {
40
+ throw new Error(`Invalid payment frequency string: ${frequencyString}`);
41
+ }
42
+ return paymentFrequencyToSeconds(frequency);
43
+ }
44
+ /**
45
+ * Validates that a duration is a multiple of the payment frequency
46
+ * Uses auto-generated types from Rust PaymentFrequency enum
47
+ */
48
+ export function validateDurationAlignment(duration, frequencyString) {
49
+ const durationNumber = Number(duration);
50
+ const frequencySeconds = paymentFrequencyStringToSeconds(frequencyString);
51
+ if (durationNumber % frequencySeconds !== 0) {
52
+ throw new Error(`Duration (${duration} seconds) must be a multiple of ${frequencyString} frequency (${frequencySeconds} seconds)`);
53
+ }
54
+ }
55
+ //# sourceMappingURL=paymentFrequency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentFrequency.js","sourceRoot":"","sources":["../../../src/utils/paymentFrequency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAEL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAA2B;IACnE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,sBAAsB,CAAC;QAChC,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,eAAe,CAAC;QACzB,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC;QAC3B;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAAuC;IACrF,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,eAAuC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,mCAAmC,eAAe,eAAe,gBAAgB,WAAW,CAClH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -48,7 +48,11 @@ export declare const SRSLY_ERROR__INVALID_ATLAS_CONVERSION_RATE = 6018;
48
48
  export declare const SRSLY_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM = 6019;
49
49
  /** InvalidOwnerProfile: Fleet owner profile does not match the provided owner profile. */
50
50
  export declare const SRSLY_ERROR__INVALID_OWNER_PROFILE = 6020;
51
- export type SrslyError = typeof SRSLY_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM | typeof SRSLY_ERROR__CONTRACT_CLOSED | typeof SRSLY_ERROR__DEV_ONLY_FREQUENCY | typeof SRSLY_ERROR__EXPECTED_DAILY_FREQUENCY | typeof SRSLY_ERROR__FLEET_ALREADY_RENTED | typeof SRSLY_ERROR__INSUFFICIENT_CANCELLATION_NOTICE | typeof SRSLY_ERROR__INVALID_ATLAS_CONVERSION_RATE | typeof SRSLY_ERROR__INVALID_DURATION_MAXIMUM | typeof SRSLY_ERROR__INVALID_DURATION_MINIMUM | typeof SRSLY_ERROR__INVALID_FEE_RATE | typeof SRSLY_ERROR__INVALID_OWNER_PROFILE | typeof SRSLY_ERROR__INVALID_PAYMENT_FREQUENCY | typeof SRSLY_ERROR__INVALID_RATE | typeof SRSLY_ERROR__INVALID_RATE_CALCULATION | typeof SRSLY_ERROR__INVALID_RENTAL_DURATION | typeof SRSLY_ERROR__INVALID_SUB_PROFILE_INVALIDATOR | typeof SRSLY_ERROR__INVALID_THREAD_CONTEXT | typeof SRSLY_ERROR__RENTAL_IS_ACTIVE | typeof SRSLY_ERROR__RENTAL_STATE_EXISTS | typeof SRSLY_ERROR__UNAUTHORIZED_CONFIG_UPDATE | typeof SRSLY_ERROR__UNSUPPORTED_MIGRATION_VERSION;
51
+ /** InvalidDurationMinimumAlignment: Duration minimum must be a multiple of the payment frequency interval. */
52
+ export declare const SRSLY_ERROR__INVALID_DURATION_MINIMUM_ALIGNMENT = 6021;
53
+ /** InvalidDurationMaximumAlignment: Duration maximum must be a multiple of the payment frequency interval. */
54
+ export declare const SRSLY_ERROR__INVALID_DURATION_MAXIMUM_ALIGNMENT = 6022;
55
+ export type SrslyError = typeof SRSLY_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM | typeof SRSLY_ERROR__CONTRACT_CLOSED | typeof SRSLY_ERROR__DEV_ONLY_FREQUENCY | typeof SRSLY_ERROR__EXPECTED_DAILY_FREQUENCY | typeof SRSLY_ERROR__FLEET_ALREADY_RENTED | typeof SRSLY_ERROR__INSUFFICIENT_CANCELLATION_NOTICE | typeof SRSLY_ERROR__INVALID_ATLAS_CONVERSION_RATE | typeof SRSLY_ERROR__INVALID_DURATION_MAXIMUM | typeof SRSLY_ERROR__INVALID_DURATION_MAXIMUM_ALIGNMENT | typeof SRSLY_ERROR__INVALID_DURATION_MINIMUM | typeof SRSLY_ERROR__INVALID_DURATION_MINIMUM_ALIGNMENT | typeof SRSLY_ERROR__INVALID_FEE_RATE | typeof SRSLY_ERROR__INVALID_OWNER_PROFILE | typeof SRSLY_ERROR__INVALID_PAYMENT_FREQUENCY | typeof SRSLY_ERROR__INVALID_RATE | typeof SRSLY_ERROR__INVALID_RATE_CALCULATION | typeof SRSLY_ERROR__INVALID_RENTAL_DURATION | typeof SRSLY_ERROR__INVALID_SUB_PROFILE_INVALIDATOR | typeof SRSLY_ERROR__INVALID_THREAD_CONTEXT | typeof SRSLY_ERROR__RENTAL_IS_ACTIVE | typeof SRSLY_ERROR__RENTAL_STATE_EXISTS | typeof SRSLY_ERROR__UNAUTHORIZED_CONFIG_UPDATE | typeof SRSLY_ERROR__UNSUPPORTED_MIGRATION_VERSION;
52
56
  export declare function getSrslyErrorMessage(code: SrslyError): string;
53
57
  export declare function isSrslyError<TProgramErrorCode extends SrslyError>(error: unknown, transactionMessage: {
54
58
  instructions: Record<number, {
@@ -1 +1 @@
1
- {"version":3,"file":"srsly.d.ts","sourceRoot":"","sources":["../../../../src/codama/errors/srsly.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,oGAAoG;AACpG,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,+GAA+G;AAC/G,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,mGAAmG;AACnG,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,OAAS,CAAC;AAChD,8GAA8G;AAC9G,eAAO,MAAM,sCAAsC,OAAS,CAAC;AAC7D,qEAAqE;AACrE,eAAO,MAAM,4CAA4C,OAAS,CAAC;AACnE,+GAA+G;AAC/G,eAAO,MAAM,6CAA6C,OAAS,CAAC;AACpE,8CAA8C;AAC9C,eAAO,MAAM,4BAA4B,OAAS,CAAC;AACnD,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,OAAS,CAAC;AACtD,wFAAwF;AACxF,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,4DAA4D;AAC5D,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,8CAA8C;AAC9C,eAAO,MAAM,6BAA6B,OAAS,CAAC;AACpD,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,8EAA8E;AAC9E,eAAO,MAAM,0CAA0C,OAAS,CAAC;AACjE,wGAAwG;AACxG,eAAO,MAAM,6BAA6B,OAAS,CAAC;AACpD,yFAAyF;AACzF,eAAO,MAAM,oCAAoC,OAAS,CAAC;AAC3D,+EAA+E;AAC/E,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAC9D,yFAAyF;AACzF,eAAO,MAAM,0CAA0C,OAAS,CAAC;AACjE,yFAAyF;AACzF,eAAO,MAAM,2CAA2C,OAAS,CAAC;AAClE,0FAA0F;AAC1F,eAAO,MAAM,kCAAkC,OAAS,CAAC;AAEzD,MAAM,MAAM,UAAU,GAClB,OAAO,2CAA2C,GAClD,OAAO,4BAA4B,GACnC,OAAO,+BAA+B,GACtC,OAAO,qCAAqC,GAC5C,OAAO,iCAAiC,GACxC,OAAO,6CAA6C,GACpD,OAAO,0CAA0C,GACjD,OAAO,qCAAqC,GAC5C,OAAO,qCAAqC,GAC5C,OAAO,6BAA6B,GACpC,OAAO,kCAAkC,GACzC,OAAO,sCAAsC,GAC7C,OAAO,yBAAyB,GAChC,OAAO,qCAAqC,GAC5C,OAAO,oCAAoC,GAC3C,OAAO,4CAA4C,GACnD,OAAO,mCAAmC,GAC1C,OAAO,6BAA6B,GACpC,OAAO,gCAAgC,GACvC,OAAO,uCAAuC,GAC9C,OAAO,0CAA0C,CAAC;AA6BtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAM7D;AAED,wBAAgB,YAAY,CAAC,iBAAiB,SAAS,UAAU,EAC/D,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3D,EACD,IAAI,CAAC,EAAE,iBAAiB,GACvB,KAAK,IAAI,WAAW,CAAC,OAAO,uCAAuC,CAAC,GACrE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAO7D"}
1
+ {"version":3,"file":"srsly.d.ts","sourceRoot":"","sources":["../../../../src/codama/errors/srsly.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,oGAAoG;AACpG,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,+GAA+G;AAC/G,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,mGAAmG;AACnG,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,OAAS,CAAC;AAChD,8GAA8G;AAC9G,eAAO,MAAM,sCAAsC,OAAS,CAAC;AAC7D,qEAAqE;AACrE,eAAO,MAAM,4CAA4C,OAAS,CAAC;AACnE,+GAA+G;AAC/G,eAAO,MAAM,6CAA6C,OAAS,CAAC;AACpE,8CAA8C;AAC9C,eAAO,MAAM,4BAA4B,OAAS,CAAC;AACnD,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,OAAS,CAAC;AACtD,wFAAwF;AACxF,eAAO,MAAM,qCAAqC,OAAS,CAAC;AAC5D,4DAA4D;AAC5D,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,8CAA8C;AAC9C,eAAO,MAAM,6BAA6B,OAAS,CAAC;AACpD,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,8EAA8E;AAC9E,eAAO,MAAM,0CAA0C,OAAS,CAAC;AACjE,wGAAwG;AACxG,eAAO,MAAM,6BAA6B,OAAS,CAAC;AACpD,yFAAyF;AACzF,eAAO,MAAM,oCAAoC,OAAS,CAAC;AAC3D,+EAA+E;AAC/E,eAAO,MAAM,uCAAuC,OAAS,CAAC;AAC9D,yFAAyF;AACzF,eAAO,MAAM,0CAA0C,OAAS,CAAC;AACjE,yFAAyF;AACzF,eAAO,MAAM,2CAA2C,OAAS,CAAC;AAClE,0FAA0F;AAC1F,eAAO,MAAM,kCAAkC,OAAS,CAAC;AACzD,8GAA8G;AAC9G,eAAO,MAAM,+CAA+C,OAAS,CAAC;AACtE,8GAA8G;AAC9G,eAAO,MAAM,+CAA+C,OAAS,CAAC;AAEtE,MAAM,MAAM,UAAU,GAClB,OAAO,2CAA2C,GAClD,OAAO,4BAA4B,GACnC,OAAO,+BAA+B,GACtC,OAAO,qCAAqC,GAC5C,OAAO,iCAAiC,GACxC,OAAO,6CAA6C,GACpD,OAAO,0CAA0C,GACjD,OAAO,qCAAqC,GAC5C,OAAO,+CAA+C,GACtD,OAAO,qCAAqC,GAC5C,OAAO,+CAA+C,GACtD,OAAO,6BAA6B,GACpC,OAAO,kCAAkC,GACzC,OAAO,sCAAsC,GAC7C,OAAO,yBAAyB,GAChC,OAAO,qCAAqC,GAC5C,OAAO,oCAAoC,GAC3C,OAAO,4CAA4C,GACnD,OAAO,mCAAmC,GAC1C,OAAO,6BAA6B,GACpC,OAAO,gCAAgC,GACvC,OAAO,uCAAuC,GAC9C,OAAO,0CAA0C,CAAC;AA+BtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAM7D;AAED,wBAAgB,YAAY,CAAC,iBAAiB,SAAS,UAAU,EAC/D,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3D,EACD,IAAI,CAAC,EAAE,iBAAiB,GACvB,KAAK,IAAI,WAAW,CAAC,OAAO,uCAAuC,CAAC,GACrE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAO7D"}
@@ -1,5 +1,6 @@
1
1
  import { Address, TransactionSigner } from '@solana/kit';
2
2
  import { type ConfigSelector } from '../utils/config';
3
+ import { PaymentFrequencyString } from '../types/paymentFrequency';
3
4
  type CreateContractInstruction = any;
4
5
  /**
5
6
  * Simplified parameters for creating a rental contract
@@ -21,18 +22,19 @@ export interface CreateContractParams {
21
22
  * The rental rate in ATLAS tokens
22
23
  */
23
24
  rate: number | bigint;
24
- /**
25
- * The minimum rental duration in seconds
26
- */
27
- durationMin: number | bigint;
28
25
  /**
29
26
  * The maximum rental duration in seconds
27
+ * Must be a multiple of the payment frequency interval
28
+ * e.g., 2592000 for "30 days" with daily frequency, 86400 for "24 hours" with hourly frequency
30
29
  */
31
30
  durationMax: number | bigint;
32
31
  /**
33
32
  * The payment frequency (e.g., "daily", "weekly", "monthly")
33
+ * Valid values are auto-generated from Rust PaymentFrequency enum
34
+ * Note: Do not include the '@' prefix - it will be added automatically
35
+ * The minimum rental duration will be automatically set to the payment frequency interval
34
36
  */
35
- paymentsFreq: string;
37
+ paymentsFreq: PaymentFrequencyString;
36
38
  /**
37
39
  * The owner key index
38
40
  * Typically 0 unless the owner has multiple authorized keys
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/contract/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAmC,KAAK,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAI3G,KAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC;AAuDD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAAC,yBAAyB,CAAC,CAE3C;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAKhG"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/contract/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAmC,KAAK,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAG3G,OAAO,EAAE,sBAAsB,EAA2B,MAAM,2BAA2B,CAAC;AAG5F,KAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,YAAY,EAAE,sBAAsB,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC;AAkED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAAC,yBAAyB,CAAC,CAE3C;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAKhG"}
@@ -2,5 +2,8 @@ export * from "./contract";
2
2
  export * from "./rental";
3
3
  export * from "./utils";
4
4
  export type { ContractState, RentalState, CreateContractInstruction, AcceptRentalInstruction, CancelRentalInstruction, CloseRentalInstruction, CloseContractInstruction, ResetRentalInstruction, ClockData, ThreadResponse } from "./codama";
5
- export { PaymentFrequency } from "./utils/constants";
5
+ export { PaymentFrequency } from "./codama/types/paymentFrequency";
6
+ export { PaymentFrequencyString, VALID_PAYMENT_FREQUENCIES, PAYMENT_FREQUENCY_MAP, PAYMENT_FREQUENCY_CONSTANTS, getPaymentFrequencyFromString, isValidPaymentFrequency } from "./types/paymentFrequency";
7
+ export { paymentFrequencyToSeconds, paymentFrequencyStringToSeconds, validateDurationAlignment } from "./utils/paymentFrequency";
8
+ export { decaseconds, minutes, hours, days, weeks, months, duration } from "./utils/duration";
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAIxB,YAAY,EAEV,aAAa,EACb,WAAW,EAGX,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EAGtB,SAAS,EACT,cAAc,EACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAIxB,YAAY,EAEV,aAAa,EACb,WAAW,EAGX,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EAGtB,SAAS,EACT,cAAc,EACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACT,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * This code was AUTO-GENERATED from the Rust PaymentFrequency implementation.
3
+ * Please DO NOT EDIT THIS FILE manually - it will be overwritten.
4
+ *
5
+ * Source: programs/srsly/src/utils.rs
6
+ * Generated by: generate.mjs
7
+ */
8
+ import { PaymentFrequency } from '../codama/types/paymentFrequency';
9
+ /**
10
+ * User-facing payment frequency string type
11
+ * Auto-generated from Rust PaymentFrequency enum
12
+ */
13
+ export type PaymentFrequencyString = 'hourly' | 'daily' | 'weekly' | 'monthly';
14
+ /**
15
+ * Array of all valid payment frequency strings
16
+ * Auto-generated from Rust PaymentFrequency enum
17
+ */
18
+ export declare const VALID_PAYMENT_FREQUENCIES: readonly PaymentFrequencyString[];
19
+ /**
20
+ * Mapping from user-friendly strings to PaymentFrequency enum values
21
+ * Auto-generated from Rust PaymentFrequency enum
22
+ */
23
+ export declare const PAYMENT_FREQUENCY_MAP: Record<PaymentFrequencyString, PaymentFrequency>;
24
+ /**
25
+ * Constants extracted from Rust constants.rs
26
+ * Auto-synced with Rust implementation
27
+ */
28
+ export declare const PAYMENT_FREQUENCY_CONSTANTS: {
29
+ readonly SECONDS_PER_DECASECOND: 10;
30
+ readonly SECONDS_PER_MINUTE: 60;
31
+ readonly SECONDS_PER_HOUR: 3600;
32
+ readonly SECONDS_PER_DAY: 86400;
33
+ readonly SECONDS_PER_WEEK: 604800;
34
+ readonly SECONDS_PER_MONTH: 2678400;
35
+ };
36
+ /**
37
+ * Get PaymentFrequency enum value from user-friendly string
38
+ */
39
+ export declare function getPaymentFrequencyFromString(frequencyString: PaymentFrequencyString): PaymentFrequency;
40
+ /**
41
+ * Check if a string is a valid payment frequency
42
+ */
43
+ export declare function isValidPaymentFrequency(value: string): value is PaymentFrequencyString;
44
+ //# sourceMappingURL=paymentFrequency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentFrequency.d.ts","sourceRoot":"","sources":["../../../src/types/paymentFrequency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,sBAAsB,EAK7D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,CAKzE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;CAO9B,CAAC;AAEX;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,sBAAsB,GAAG,gBAAgB,CAEvG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,sBAAsB,CAEtF"}
@@ -10,15 +10,6 @@ export declare const STARBASE_PLAYER_SEED = "starbase_player";
10
10
  export declare const SAGE_PLAYER_PROFILE_SEED = "sage_player_profile";
11
11
  export declare const PROFILE_FACTION_SEED = "profile_faction";
12
12
  export declare const ATLAS_TO_STARDUST = 100000000;
13
- export declare enum PaymentFrequency {
14
- Hourly = 0,
15
- Daily = 1,
16
- DailyOld = 2,
17
- Weekly = 3,
18
- Monthly = 4,
19
- Decasecond = 5,
20
- Minute = 6
21
- }
22
13
  export declare function getSrslyProgramAddress(config?: ConfigOptions): Promise<Address<string>>;
23
14
  export declare function getProgramId(): Promise<Address<string>>;
24
15
  export declare function getSageProgramAddress(config?: ConfigOptions): Promise<Address<string>>;
@@ -30,8 +21,4 @@ export declare const FACTION_SPECIFIC_CSS: Record<string, {
30
21
  y: number;
31
22
  }>;
32
23
  export declare const FACTION_MAPPING: Record<number, string>;
33
- /**
34
- * Convert PaymentFrequency enum to string
35
- */
36
- export declare function paymentFrequencyToString(freq: PaymentFrequency): string;
37
24
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1E;AAGD,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAGtD,eAAO,MAAM,iBAAiB,YAAc,CAAC;AAG7C,oBAAY,gBAAgB;IAC1B,MAAM,IAAI;IACV,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,OAAO,IAAI;IAEX,UAAU,IAAI;IACd,MAAM,IAAI;CACX;AAID,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAM7F;AAGD,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAE7D;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAO5F;AAED,wBAAsB,+BAA+B,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMtG;AAED,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMpF;AAED,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMnF;AAGD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAIzE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEvE"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1E;AAGD,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAGtD,eAAO,MAAM,iBAAiB,YAAc,CAAC;AAM7C,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAM7F;AAGD,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAE7D;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAO5F;AAED,wBAAsB,+BAA+B,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMtG;AAED,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMpF;AAED,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAMnF;AAGD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAIzE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIlD,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Convert decaseconds (10 seconds) to seconds
3
+ * @param amount Number of decaseconds
4
+ * @returns Number of seconds
5
+ */
6
+ export declare function decaseconds(amount: number): number;
7
+ /**
8
+ * Convert minutes to seconds
9
+ * @param amount Number of minutes
10
+ * @returns Number of seconds
11
+ */
12
+ export declare function minutes(amount: number): number;
13
+ /**
14
+ * Convert hours to seconds
15
+ * @param amount Number of hours
16
+ * @returns Number of seconds
17
+ */
18
+ export declare function hours(amount: number): number;
19
+ /**
20
+ * Convert days to seconds
21
+ * @param amount Number of days
22
+ * @returns Number of seconds
23
+ */
24
+ export declare function days(amount: number): number;
25
+ /**
26
+ * Convert weeks to seconds
27
+ * @param amount Number of weeks
28
+ * @returns Number of seconds
29
+ */
30
+ export declare function weeks(amount: number): number;
31
+ /**
32
+ * Convert months to seconds
33
+ * @param amount Number of months (31 days each)
34
+ * @returns Number of seconds
35
+ */
36
+ export declare function months(amount: number): number;
37
+ /**
38
+ * All duration helper functions
39
+ */
40
+ export declare const duration: {
41
+ readonly decaseconds: typeof decaseconds;
42
+ readonly minutes: typeof minutes;
43
+ readonly hours: typeof hours;
44
+ readonly days: typeof days;
45
+ readonly weeks: typeof weeks;
46
+ readonly months: typeof months;
47
+ readonly constants: {
48
+ readonly SECONDS_PER_DECASECOND: 10;
49
+ readonly SECONDS_PER_MINUTE: 60;
50
+ readonly SECONDS_PER_HOUR: 3600;
51
+ readonly SECONDS_PER_DAY: 86400;
52
+ readonly SECONDS_PER_WEEK: 604800;
53
+ readonly SECONDS_PER_MONTH: 2678400;
54
+ };
55
+ };
56
+ //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../../src/utils/duration.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;CAUX,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from "./constants";
2
2
  export * from "./profiles";
3
3
  export * from "./config";
4
+ export * from "./paymentFrequency";
5
+ export * from "./duration";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}