@pendle/sdk-boros 0.3.46 → 0.3.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/cacheDecorators.d.ts +19 -0
- package/dist/common/cacheDecorators.js +112 -0
- package/dist/common/cacheDecorators.js.map +1 -0
- package/dist/common/time.d.ts +19 -0
- package/dist/common/time.js +102 -0
- package/dist/common/time.js.map +1 -0
- package/dist/contracts/amm.d.ts +600 -0
- package/dist/contracts/amm.js +36 -0
- package/dist/contracts/amm.js.map +1 -0
- package/dist/contracts/consts.d.ts +1 -0
- package/dist/contracts/consts.js +5 -0
- package/dist/contracts/consts.js.map +1 -0
- package/dist/contracts/contracts.factory.d.ts +4 -0
- package/dist/contracts/contracts.factory.js +8 -0
- package/dist/contracts/contracts.factory.js.map +1 -1
- package/dist/contracts/market.d.ts +1700 -0
- package/dist/contracts/market.js +85 -0
- package/dist/contracts/market.js.map +1 -0
- package/dist/entities/exchange/exchange.d.ts +10 -1
- package/dist/entities/exchange/exchange.js +48 -1
- package/dist/entities/exchange/exchange.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const CacheGetter: () => MethodDecorator;
|
|
2
|
+
export declare const NoArgsCache: () => MethodDecorator;
|
|
3
|
+
export type CacheEntry<T = unknown> = {
|
|
4
|
+
result: T;
|
|
5
|
+
updatedAt_ms: number;
|
|
6
|
+
};
|
|
7
|
+
export type GenerateLookupKeyFn<ThisObj, Args> = (thisObj: ThisObj, args: Args) => string | undefined;
|
|
8
|
+
export type Invalidatable<ThisObj, Args> = {
|
|
9
|
+
invalidate(thisObj: ThisObj, args: Args): void;
|
|
10
|
+
invalidateAll(): void;
|
|
11
|
+
};
|
|
12
|
+
export declare const GlobalCache: <ThisObj extends object, MethodName extends keyof ThisObj | undefined = undefined, Args = undefined extends MethodName ? readonly unknown[] : ThisObj[NonNullable<MethodName>] extends (..._args: infer InferredArgs extends readonly unknown[]) => unknown ? InferredArgs : readonly unknown[]>(params: {
|
|
13
|
+
generateLookupKey: (thisObj: ThisObj, args: Args) => string | undefined;
|
|
14
|
+
ttl_ms?: number | "infinity";
|
|
15
|
+
maxEntriesToCleanUpPerAccess?: number;
|
|
16
|
+
}) => MethodDecorator;
|
|
17
|
+
export declare function getGlobalCacheInvalidator<T, const Method extends keyof T>(klass: {
|
|
18
|
+
prototype: T;
|
|
19
|
+
}, method: Method): T[Method] extends (..._params: infer Args) => unknown ? Invalidatable<T, Args> | undefined : never;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalCache = exports.NoArgsCache = exports.CacheGetter = void 0;
|
|
4
|
+
exports.getGlobalCacheInvalidator = getGlobalCacheInvalidator;
|
|
5
|
+
function getConstructorName(obj) {
|
|
6
|
+
const name = obj.constructor.name;
|
|
7
|
+
if (!name)
|
|
8
|
+
return '<unnamed>';
|
|
9
|
+
return name;
|
|
10
|
+
}
|
|
11
|
+
function getStringifyMethodName(obj, property) {
|
|
12
|
+
return `${getConstructorName(obj)}#${String(property)}`;
|
|
13
|
+
}
|
|
14
|
+
const CacheGetter = () => {
|
|
15
|
+
const data = new WeakMap();
|
|
16
|
+
return (_target, property, descriptor) => {
|
|
17
|
+
const getter = descriptor.get;
|
|
18
|
+
if (getter === undefined)
|
|
19
|
+
return;
|
|
20
|
+
descriptor.get = function () {
|
|
21
|
+
if (data.has(this)) {
|
|
22
|
+
return data.get(this);
|
|
23
|
+
}
|
|
24
|
+
const res = getter.apply(this);
|
|
25
|
+
data.set(this, res);
|
|
26
|
+
return res;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.CacheGetter = CacheGetter;
|
|
31
|
+
const NoArgsCache = () => {
|
|
32
|
+
const data = new WeakMap();
|
|
33
|
+
return (_target, property, descriptor) => {
|
|
34
|
+
const oldMethod = descriptor.value;
|
|
35
|
+
if (typeof oldMethod !== 'function')
|
|
36
|
+
return;
|
|
37
|
+
descriptor.value = function () {
|
|
38
|
+
if (data.has(this)) {
|
|
39
|
+
return data.get(this);
|
|
40
|
+
}
|
|
41
|
+
const res = oldMethod.apply(this);
|
|
42
|
+
data.set(this, res);
|
|
43
|
+
return res;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
exports.NoArgsCache = NoArgsCache;
|
|
48
|
+
const GlobalCache = (params) => {
|
|
49
|
+
const { generateLookupKey, ttl_ms = 5 * 60 * 1000, maxEntriesToCleanUpPerAccess = 2 } = params;
|
|
50
|
+
const data = new Map();
|
|
51
|
+
const cleanUp = (expiryTime_ms) => {
|
|
52
|
+
for (let i = 0; i < maxEntriesToCleanUpPerAccess; ++i) {
|
|
53
|
+
const { done, value } = data.entries().next();
|
|
54
|
+
if (done)
|
|
55
|
+
break;
|
|
56
|
+
if (value[1].updatedAt_ms > expiryTime_ms)
|
|
57
|
+
break;
|
|
58
|
+
data.delete(value[0]);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return (_target, property, descriptor) => {
|
|
62
|
+
const oldMethod = descriptor.value;
|
|
63
|
+
if (typeof oldMethod != 'function')
|
|
64
|
+
return;
|
|
65
|
+
const res = function (...args) {
|
|
66
|
+
const key = generateLookupKey(this, args);
|
|
67
|
+
if (key == undefined) {
|
|
68
|
+
return oldMethod.apply(this, args);
|
|
69
|
+
}
|
|
70
|
+
const entry = data.get(key);
|
|
71
|
+
const now_ms = Date.now();
|
|
72
|
+
const expiryTime_ms = ttl_ms === 'infinity' ? Number.NEGATIVE_INFINITY : now_ms - ttl_ms;
|
|
73
|
+
if (entry != undefined) {
|
|
74
|
+
const isStillValid = entry.updatedAt_ms > expiryTime_ms;
|
|
75
|
+
if (isStillValid) {
|
|
76
|
+
return entry.result;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const result = oldMethod.apply(this, args);
|
|
80
|
+
data.delete(key);
|
|
81
|
+
data.set(key, { result, updatedAt_ms: now_ms });
|
|
82
|
+
cleanUp(expiryTime_ms);
|
|
83
|
+
return result;
|
|
84
|
+
};
|
|
85
|
+
res.invalidate = (thisObj, args) => {
|
|
86
|
+
const key = generateLookupKey(thisObj, args);
|
|
87
|
+
if (key)
|
|
88
|
+
data.delete(key);
|
|
89
|
+
};
|
|
90
|
+
res.invalidateAll = () => {
|
|
91
|
+
data.clear();
|
|
92
|
+
};
|
|
93
|
+
descriptor.value = res;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
exports.GlobalCache = GlobalCache;
|
|
97
|
+
function getGlobalCacheInvalidator(klass, method) {
|
|
98
|
+
const proto = klass.prototype;
|
|
99
|
+
const fn = proto[method];
|
|
100
|
+
if (typeof fn !== 'function')
|
|
101
|
+
return undefined;
|
|
102
|
+
if (!('invalidate' in fn))
|
|
103
|
+
return undefined;
|
|
104
|
+
if (typeof fn['invalidate'] !== 'function')
|
|
105
|
+
return undefined;
|
|
106
|
+
if (!('invalidateAll' in fn))
|
|
107
|
+
return undefined;
|
|
108
|
+
if (typeof fn['invalidateAll'] !== 'function')
|
|
109
|
+
return undefined;
|
|
110
|
+
return fn;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=cacheDecorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheDecorators.js","sourceRoot":"","sources":["../../src/common/cacheDecorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function truncateTimestamp(timestamp: Date, minutes?: number): Date;
|
|
2
|
+
export declare function truncateTimestampToSeconds(timestamp: Date, seconds?: number): Date;
|
|
3
|
+
export declare function truncateTimestampToSeconds(timestamp: number, seconds?: number): number;
|
|
4
|
+
export declare function timestampToSeconds(timestamp: Date): number;
|
|
5
|
+
export declare function secondsToTimestamp(seconds: number): Date;
|
|
6
|
+
export declare function startOfHour(timestamp: Date): Date;
|
|
7
|
+
export declare function startOfHour(timestamp: number): number;
|
|
8
|
+
export declare function startOfDayUTC(timestamp: Date): Date;
|
|
9
|
+
export declare function startOfDayUTC(timestamp: number): number;
|
|
10
|
+
export declare function startOfWeekUTC(timestamp: Date): Date;
|
|
11
|
+
export declare function startOfWeekUTC(timestamp: number): number;
|
|
12
|
+
export declare function startOfWeekThursdayUTC(timestamp: Date): Date;
|
|
13
|
+
export declare function startOfWeekThursdayUTC(timestamp: number): number;
|
|
14
|
+
export declare function startOfDayUTCOrPrev(timestamp: Date): Date;
|
|
15
|
+
export declare function getPreviousMonthEpochTimestamp(nowTimestamp: Date): Date;
|
|
16
|
+
export declare function secondToTimeUTC(seconds: number): Date;
|
|
17
|
+
export declare function getCurrentTimestampInMilliseconds(): number;
|
|
18
|
+
export declare function getCurrentTimestamp(): number;
|
|
19
|
+
export declare function getTimestampInSeconds(timestamp: Date): number;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.truncateTimestamp = truncateTimestamp;
|
|
4
|
+
exports.truncateTimestampToSeconds = truncateTimestampToSeconds;
|
|
5
|
+
exports.timestampToSeconds = timestampToSeconds;
|
|
6
|
+
exports.secondsToTimestamp = secondsToTimestamp;
|
|
7
|
+
exports.startOfHour = startOfHour;
|
|
8
|
+
exports.startOfDayUTC = startOfDayUTC;
|
|
9
|
+
exports.startOfWeekUTC = startOfWeekUTC;
|
|
10
|
+
exports.startOfWeekThursdayUTC = startOfWeekThursdayUTC;
|
|
11
|
+
exports.startOfDayUTCOrPrev = startOfDayUTCOrPrev;
|
|
12
|
+
exports.getPreviousMonthEpochTimestamp = getPreviousMonthEpochTimestamp;
|
|
13
|
+
exports.secondToTimeUTC = secondToTimeUTC;
|
|
14
|
+
exports.getCurrentTimestampInMilliseconds = getCurrentTimestampInMilliseconds;
|
|
15
|
+
exports.getCurrentTimestamp = getCurrentTimestamp;
|
|
16
|
+
exports.getTimestampInSeconds = getTimestampInSeconds;
|
|
17
|
+
const date_fns_1 = require("date-fns");
|
|
18
|
+
const constants_1 = require("../multicall/constants");
|
|
19
|
+
function truncateTimestamp(timestamp, minutes = 5) {
|
|
20
|
+
const x = 1000 * 60 * (minutes ?? 5);
|
|
21
|
+
return new Date(Math.floor(timestamp.getTime() / x) * x);
|
|
22
|
+
}
|
|
23
|
+
function truncateTimestampToSeconds(timestamp, seconds = 30) {
|
|
24
|
+
if (typeof timestamp === 'number') {
|
|
25
|
+
return timestamp - (timestamp % seconds);
|
|
26
|
+
}
|
|
27
|
+
const x = 1000 * seconds;
|
|
28
|
+
return new Date(Math.floor(timestamp.getTime() / x) * x);
|
|
29
|
+
}
|
|
30
|
+
function timestampToSeconds(timestamp) {
|
|
31
|
+
return Math.floor(timestamp.getTime() / 1000);
|
|
32
|
+
}
|
|
33
|
+
function secondsToTimestamp(seconds) {
|
|
34
|
+
return new Date(seconds * 1000);
|
|
35
|
+
}
|
|
36
|
+
function startOfHour(timestamp) {
|
|
37
|
+
if (typeof timestamp === 'number') {
|
|
38
|
+
return timestamp - (timestamp % constants_1.SECONDS_PER_HOUR);
|
|
39
|
+
}
|
|
40
|
+
const millisecondsSinceStart = timestamp.getTime();
|
|
41
|
+
return new Date(millisecondsSinceStart - (millisecondsSinceStart % constants_1.MILLISECONDS_IN_AN_HOUR));
|
|
42
|
+
}
|
|
43
|
+
function startOfDayUTC(timestamp) {
|
|
44
|
+
if (typeof timestamp === 'number') {
|
|
45
|
+
return timestamp - (timestamp % constants_1.SECONDS_PER_DAY);
|
|
46
|
+
}
|
|
47
|
+
const millisecondsSinceStart = timestamp.getTime();
|
|
48
|
+
return new Date(millisecondsSinceStart - (millisecondsSinceStart % constants_1.MILLISECONDS_IN_A_DAY));
|
|
49
|
+
}
|
|
50
|
+
function startOfWeekUTC(timestamp) {
|
|
51
|
+
const type = typeof timestamp;
|
|
52
|
+
if (type === 'number') {
|
|
53
|
+
timestamp = new Date(timestamp * constants_1.MILLISECONDS_IN_A_SECOND);
|
|
54
|
+
}
|
|
55
|
+
const millisecondsSinceStart = timestamp.getTime();
|
|
56
|
+
const millisecondsUntilFirstMonday = 4 * constants_1.MILLISECONDS_IN_A_DAY;
|
|
57
|
+
const weekHasPasses = Math.floor((millisecondsSinceStart - millisecondsUntilFirstMonday) / constants_1.MILLISECONDS_IN_A_WEEK);
|
|
58
|
+
const lastMondayInMilliseconds = millisecondsUntilFirstMonday + weekHasPasses * constants_1.MILLISECONDS_IN_A_WEEK;
|
|
59
|
+
if (type === 'number') {
|
|
60
|
+
return lastMondayInMilliseconds / constants_1.MILLISECONDS_IN_A_SECOND;
|
|
61
|
+
}
|
|
62
|
+
return new Date(lastMondayInMilliseconds);
|
|
63
|
+
}
|
|
64
|
+
function startOfWeekThursdayUTC(timestamp) {
|
|
65
|
+
if (typeof timestamp === 'number') {
|
|
66
|
+
return timestamp - (timestamp % constants_1.SECONDS_PER_WEEK);
|
|
67
|
+
}
|
|
68
|
+
const millisecondsSinceStart = timestamp.getTime();
|
|
69
|
+
const weekHasPasses = Math.floor(millisecondsSinceStart / constants_1.MILLISECONDS_IN_A_WEEK);
|
|
70
|
+
const lastThursdayInMilliseconds = weekHasPasses * constants_1.MILLISECONDS_IN_A_WEEK;
|
|
71
|
+
return new Date(lastThursdayInMilliseconds);
|
|
72
|
+
}
|
|
73
|
+
function startOfDayUTCOrPrev(timestamp) {
|
|
74
|
+
let startDate = startOfDayUTC(timestamp);
|
|
75
|
+
if ((0, date_fns_1.isEqual)(timestamp, startDate)) {
|
|
76
|
+
startDate = (0, date_fns_1.subDays)(startDate, 1);
|
|
77
|
+
}
|
|
78
|
+
return startDate;
|
|
79
|
+
}
|
|
80
|
+
function getPreviousMonthEpochTimestamp(nowTimestamp) {
|
|
81
|
+
let prevMonthTimestamp = new Date(Math.floor(nowTimestamp.getTime() / constants_1.MILLISECONDS_IN_A_WEEK) * constants_1.MILLISECONDS_IN_A_WEEK);
|
|
82
|
+
if ((0, date_fns_1.addDays)(prevMonthTimestamp, 7).getUTCMonth() !== nowTimestamp.getUTCMonth()) {
|
|
83
|
+
return prevMonthTimestamp;
|
|
84
|
+
}
|
|
85
|
+
while (prevMonthTimestamp.getUTCMonth() === nowTimestamp.getUTCMonth() && prevMonthTimestamp.getDate() !== 1) {
|
|
86
|
+
prevMonthTimestamp = (0, date_fns_1.subDays)(prevMonthTimestamp, 7);
|
|
87
|
+
}
|
|
88
|
+
return prevMonthTimestamp;
|
|
89
|
+
}
|
|
90
|
+
function secondToTimeUTC(seconds) {
|
|
91
|
+
return new Date(seconds * constants_1.MILLISECONDS_IN_A_SECOND);
|
|
92
|
+
}
|
|
93
|
+
function getCurrentTimestampInMilliseconds() {
|
|
94
|
+
return Date.now();
|
|
95
|
+
}
|
|
96
|
+
function getCurrentTimestamp() {
|
|
97
|
+
return Math.floor(Date.now() / constants_1.MILLISECONDS_IN_A_SECOND);
|
|
98
|
+
}
|
|
99
|
+
function getTimestampInSeconds(timestamp) {
|
|
100
|
+
return Math.floor(timestamp.getTime() / constants_1.MILLISECONDS_IN_A_SECOND);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/common/time.ts"],"names":[],"mappings":"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"}
|