@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.
- package/README.md +123 -21
- package/dist/cjs/codama/errors/srsly.js +7 -1
- package/dist/cjs/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/contract/create.js +13 -2
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/index.js +25 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/types/paymentFrequency.js +58 -0
- package/dist/cjs/types/paymentFrequency.js.map +1 -0
- package/dist/cjs/utils/constants.js +3 -20
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/duration.js +77 -0
- package/dist/cjs/utils/duration.js.map +1 -0
- package/dist/cjs/utils/index.js +2 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/paymentFrequency.js +60 -0
- package/dist/cjs/utils/paymentFrequency.js.map +1 -0
- package/dist/esm/codama/errors/srsly.js +6 -0
- package/dist/esm/codama/errors/srsly.js.map +1 -1
- package/dist/esm/contract/create.js +13 -2
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/index.js +8 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/types/paymentFrequency.js +53 -0
- package/dist/esm/types/paymentFrequency.js.map +1 -0
- package/dist/esm/utils/constants.js +2 -18
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/duration.js +68 -0
- package/dist/esm/utils/duration.js.map +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/paymentFrequency.js +55 -0
- package/dist/esm/utils/paymentFrequency.js.map +1 -0
- package/dist/types/codama/errors/srsly.d.ts +5 -1
- package/dist/types/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts +7 -5
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/paymentFrequency.d.ts +44 -0
- package/dist/types/types/paymentFrequency.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +0 -13
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/duration.d.ts +56 -0
- package/dist/types/utils/duration.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/paymentFrequency.d.ts +18 -0
- package/dist/types/utils/paymentFrequency.d.ts.map +1 -0
- package/package.json +1 -1
- 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":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,GAIf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,oGAAoG;AACpG,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,CAAC,OAAO;AACpE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,CAAC,OAAO;AACpE,mGAAmG;AACnG,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,CAAC,OAAO;AACpE,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,CAAC,OAAO;AAChE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,CAAC,OAAO;AACxD,8GAA8G;AAC9G,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAAC,CAAC,OAAO;AACrE,qEAAqE;AACrE,MAAM,CAAC,MAAM,4CAA4C,GAAG,MAAM,CAAC,CAAC,OAAO;AAC3E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,6CAA6C,GAAG,MAAM,CAAC,CAAC,OAAO;AAC5E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,CAAC,OAAO;AAC3D,uEAAuE;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,CAAC,OAAO;AAC9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,CAAC,OAAO;AACpE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC,CAAC,OAAO;AAClE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,CAAC,OAAO;AAC5D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,CAAC,OAAO;AAC/D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0CAA0C,GAAG,MAAM,CAAC,CAAC,OAAO;AACzE,wGAAwG;AACxG,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,CAAC,OAAO;AAC5D,yFAAyF;AACzF,MAAM,CAAC,MAAM,oCAAoC,GAAG,MAAM,CAAC,CAAC,OAAO;AACnE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC,CAAC,OAAO;AACtE,yFAAyF;AACzF,MAAM,CAAC,MAAM,0CAA0C,GAAG,MAAM,CAAC,CAAC,OAAO;AACzE,yFAAyF;AACzF,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC,CAAC,OAAO;AAC1E,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC,CAAC,OAAO;
|
|
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,
|
|
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+
|
|
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
|
|
6
|
-
export { PaymentFrequency } from "./
|
|
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
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/esm/package.json
CHANGED
|
@@ -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
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAsB,MAAM,UAAU,CAAC;AAClF,OAAO,EAAgB,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAA+B;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC;AAED,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,iCAAiC;AAE/E,
|
|
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"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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:
|
|
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;
|
|
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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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 "./
|
|
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,
|
|
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;
|
|
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 +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"}
|