@paraswap/dex-lib 4.0.6-rfq-pub-sub.0 → 4.0.6-rfq-pub-sub.2
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/build/dex-helper/dummy-dex-helper.js +2 -1
- package/build/dex-helper/dummy-dex-helper.js.map +1 -1
- package/build/dex-helper/icache.d.ts +1 -1
- package/build/lib/pub-sub.d.ts +3 -0
- package/build/lib/pub-sub.js +14 -2
- package/build/lib/pub-sub.js.map +1 -1
- package/package.json +1 -1
- package/src/dex-helper/dummy-dex-helper.ts +3 -2
- package/src/dex-helper/icache.ts +1 -5
- package/src/lib/pub-sub.ts +24 -2
|
@@ -30,7 +30,8 @@ class DummyCache {
|
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
32
|
async ttl(dexKey, network, cacheKey) {
|
|
33
|
-
|
|
33
|
+
const key = `${network}_${dexKey}_${cacheKey}`.toLowerCase();
|
|
34
|
+
return this.storage[key] ? 1 : -1;
|
|
34
35
|
}
|
|
35
36
|
async rawget(key) {
|
|
36
37
|
return this.storage[key] ? this.storage[key] : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy-dex-helper.js","sourceRoot":"","sources":["../../src/dex-helper/dummy-dex-helper.ts"],"names":[],"mappings":";;;;;;AAOA,kDAA6C;AAE7C,uDAAuD;AACvD,wDAA2E;AAC3E,yEAA8C;AAC9C,oDAA4B;AAC5B,0CAA0C;AAC1C,gDAAwB;AAExB,sCAAyD;AACzD,wDAAoD;AAGpD,gEAA4D;AAC5D,kEAA8D;AAC9D,4CAAgD;AAEhD,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,gBAAgB,CAAC,CAAC;AAE3C,6CAA6C;AAC7C,MAAM,UAAU;IACN,OAAO,GAA2B,EAAE,CAAC;IACrC,WAAW,GAA2C,EAAE,CAAC;IAEzD,MAAM,GAAgC,EAAE,CAAC;IAEjD,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAe,EACf,QAAgB;QAEhB,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAe,EACf,QAAgB;QAEhB,OAAO,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"dummy-dex-helper.js","sourceRoot":"","sources":["../../src/dex-helper/dummy-dex-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface ICache {
|
|
2
2
|
get(dexKey: string, network: number, cacheKey: string): Promise<string | null>;
|
|
3
|
-
ttl(dexKey: string, network: number, cacheKey: string): Promise<
|
|
3
|
+
ttl(dexKey: string, network: number, cacheKey: string): Promise<number>;
|
|
4
4
|
rawget(key: string): Promise<string | null>;
|
|
5
5
|
rawset(key: string, value: string, ttl: number): Promise<string | null>;
|
|
6
6
|
rawdel(key: string): Promise<void>;
|
package/build/lib/pub-sub.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import NodeCache from 'node-cache';
|
|
2
2
|
import { Network } from '../constants';
|
|
3
3
|
import { IDexHelper } from '../dex-helper';
|
|
4
|
+
import { Logger } from '../types';
|
|
4
5
|
type JsonPubSubMsg = {
|
|
5
6
|
expiresAt: number;
|
|
6
7
|
data: Record<string, unknown>;
|
|
@@ -12,6 +13,7 @@ export declare class JsonPubSub {
|
|
|
12
13
|
channel: string;
|
|
13
14
|
network: Network;
|
|
14
15
|
localCache: NodeCache;
|
|
16
|
+
logger: Logger;
|
|
15
17
|
constructor(dexHelper: IDexHelper, dexKey: string, channel: string);
|
|
16
18
|
initialize(): void;
|
|
17
19
|
subscribe(): void;
|
|
@@ -25,6 +27,7 @@ export declare class SetPubSub {
|
|
|
25
27
|
channel: string;
|
|
26
28
|
network: Network;
|
|
27
29
|
set: Set<string>;
|
|
30
|
+
logger: Logger;
|
|
28
31
|
constructor(dexHelper: IDexHelper, dexKey: string, channel: string);
|
|
29
32
|
initialize(key: string): Promise<void>;
|
|
30
33
|
subscribe(): void;
|
package/build/lib/pub-sub.js
CHANGED
|
@@ -11,26 +11,32 @@ class JsonPubSub {
|
|
|
11
11
|
channel;
|
|
12
12
|
network;
|
|
13
13
|
localCache = new node_cache_1.default();
|
|
14
|
+
// TODO-rfq-ps: temporary logger
|
|
15
|
+
logger;
|
|
14
16
|
constructor(dexHelper, dexKey, channel) {
|
|
15
17
|
this.dexHelper = dexHelper;
|
|
16
18
|
this.dexKey = dexKey;
|
|
17
19
|
this.network = this.dexHelper.config.data.network;
|
|
18
20
|
this.channel = `${this.network}_${this.dexKey}_${channel}`;
|
|
21
|
+
this.logger = this.dexHelper.getLogger(`JsonPubSub_${this.channel}`);
|
|
19
22
|
}
|
|
20
23
|
initialize() {
|
|
21
24
|
this.subscribe();
|
|
22
25
|
}
|
|
23
26
|
subscribe() {
|
|
27
|
+
this.logger.info(`Subscribing to ${this.channel}`);
|
|
24
28
|
this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
|
|
25
29
|
const decodedMsg = JSON.parse(msg);
|
|
26
30
|
this.handleSubscription(decodedMsg);
|
|
27
31
|
});
|
|
28
32
|
}
|
|
29
33
|
publish(data, ttl) {
|
|
34
|
+
this.logger.info(`Publishing to ${this.channel}`);
|
|
30
35
|
const expiresAt = Math.round(Date.now() / 1000) + ttl;
|
|
31
36
|
this.dexHelper.cache.publish(this.channel, JSON.stringify({ expiresAt, data }));
|
|
32
37
|
}
|
|
33
38
|
handleSubscription(json) {
|
|
39
|
+
this.logger.info(`Received message from ${this.channel}`);
|
|
34
40
|
const { expiresAt, data } = json;
|
|
35
41
|
const now = Math.round(Date.now() / 1000);
|
|
36
42
|
// calculating ttl as message might come with the delay
|
|
@@ -49,11 +55,11 @@ class JsonPubSub {
|
|
|
49
55
|
this.dexHelper.cache.get(this.dexKey, this.network, key),
|
|
50
56
|
this.dexHelper.cache.ttl(this.dexKey, this.network, key),
|
|
51
57
|
]);
|
|
52
|
-
if (value) {
|
|
58
|
+
if (value && ttl > 0) {
|
|
53
59
|
// setting ttl same as in cache
|
|
54
60
|
// TODO-ps: check if ttl is not null
|
|
55
61
|
const parsedValue = JSON.parse(value);
|
|
56
|
-
this.localCache.set(key, parsedValue,
|
|
62
|
+
this.localCache.set(key, parsedValue, ttl);
|
|
57
63
|
return parsedValue;
|
|
58
64
|
}
|
|
59
65
|
return null;
|
|
@@ -66,11 +72,14 @@ class SetPubSub {
|
|
|
66
72
|
channel;
|
|
67
73
|
network;
|
|
68
74
|
set = new Set();
|
|
75
|
+
// TODO-rfq-ps: temporary logger
|
|
76
|
+
logger;
|
|
69
77
|
constructor(dexHelper, dexKey, channel) {
|
|
70
78
|
this.dexHelper = dexHelper;
|
|
71
79
|
this.dexKey = dexKey;
|
|
72
80
|
this.network = this.dexHelper.config.data.network;
|
|
73
81
|
this.channel = `${this.network}_${this.dexKey}_${channel}`;
|
|
82
|
+
this.logger = this.dexHelper.getLogger(`SetPubSub_${this.channel}`);
|
|
74
83
|
}
|
|
75
84
|
async initialize(key) {
|
|
76
85
|
// as there's no lazy load, we need to initialize the set
|
|
@@ -81,12 +90,14 @@ class SetPubSub {
|
|
|
81
90
|
this.subscribe();
|
|
82
91
|
}
|
|
83
92
|
subscribe() {
|
|
93
|
+
this.logger.info(`Subscribing to ${this.channel}`);
|
|
84
94
|
this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
|
|
85
95
|
const decodedMsg = JSON.parse(msg);
|
|
86
96
|
this.handleSubscription(decodedMsg);
|
|
87
97
|
});
|
|
88
98
|
}
|
|
89
99
|
publish(set) {
|
|
100
|
+
this.logger.info(`Publishing to ${this.channel}`);
|
|
90
101
|
// as there's no lazy load, also store locally
|
|
91
102
|
for (const key of set) {
|
|
92
103
|
this.set.add(key);
|
|
@@ -94,6 +105,7 @@ class SetPubSub {
|
|
|
94
105
|
this.dexHelper.cache.publish(this.channel, JSON.stringify(set));
|
|
95
106
|
}
|
|
96
107
|
handleSubscription(set) {
|
|
108
|
+
this.logger.info(`Received message from ${this.channel}`);
|
|
97
109
|
for (const key of set) {
|
|
98
110
|
this.set.add(key);
|
|
99
111
|
}
|
package/build/lib/pub-sub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pub-sub.js","sourceRoot":"","sources":["../../src/lib/pub-sub.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;
|
|
1
|
+
{"version":3,"file":"pub-sub.js","sourceRoot":"","sources":["../../src/lib/pub-sub.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -47,8 +47,9 @@ class DummyCache implements ICache {
|
|
|
47
47
|
dexKey: string,
|
|
48
48
|
network: number,
|
|
49
49
|
cacheKey: string,
|
|
50
|
-
): Promise<
|
|
51
|
-
|
|
50
|
+
): Promise<number> {
|
|
51
|
+
const key = `${network}_${dexKey}_${cacheKey}`.toLowerCase();
|
|
52
|
+
return this.storage[key] ? 1 : -1;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
async rawget(key: string): Promise<string | null> {
|
package/src/dex-helper/icache.ts
CHANGED
|
@@ -5,11 +5,7 @@ export interface ICache {
|
|
|
5
5
|
cacheKey: string,
|
|
6
6
|
): Promise<string | null>;
|
|
7
7
|
|
|
8
|
-
ttl(
|
|
9
|
-
dexKey: string,
|
|
10
|
-
network: number,
|
|
11
|
-
cacheKey: string,
|
|
12
|
-
): Promise<string | null>;
|
|
8
|
+
ttl(dexKey: string, network: number, cacheKey: string): Promise<number>;
|
|
13
9
|
|
|
14
10
|
rawget(key: string): Promise<string | null>;
|
|
15
11
|
|
package/src/lib/pub-sub.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import NodeCache from 'node-cache';
|
|
2
2
|
import { Network } from '../constants';
|
|
3
3
|
import { IDexHelper } from '../dex-helper';
|
|
4
|
+
import { Logger } from '../types';
|
|
4
5
|
|
|
5
6
|
type JsonPubSubMsg = {
|
|
6
7
|
expiresAt: number;
|
|
@@ -14,6 +15,9 @@ export class JsonPubSub {
|
|
|
14
15
|
network: Network;
|
|
15
16
|
localCache: NodeCache = new NodeCache();
|
|
16
17
|
|
|
18
|
+
// TODO-rfq-ps: temporary logger
|
|
19
|
+
logger: Logger;
|
|
20
|
+
|
|
17
21
|
constructor(
|
|
18
22
|
private dexHelper: IDexHelper,
|
|
19
23
|
private dexKey: string,
|
|
@@ -21,6 +25,8 @@ export class JsonPubSub {
|
|
|
21
25
|
) {
|
|
22
26
|
this.network = this.dexHelper.config.data.network;
|
|
23
27
|
this.channel = `${this.network}_${this.dexKey}_${channel}`;
|
|
28
|
+
|
|
29
|
+
this.logger = this.dexHelper.getLogger(`JsonPubSub_${this.channel}`);
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
initialize() {
|
|
@@ -28,6 +34,8 @@ export class JsonPubSub {
|
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
subscribe() {
|
|
37
|
+
this.logger.info(`Subscribing to ${this.channel}`);
|
|
38
|
+
|
|
31
39
|
this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
|
|
32
40
|
const decodedMsg = JSON.parse(msg) as JsonPubSubMsg;
|
|
33
41
|
this.handleSubscription(decodedMsg);
|
|
@@ -35,6 +43,8 @@ export class JsonPubSub {
|
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
publish(data: Record<string, unknown>, ttl: number) {
|
|
46
|
+
this.logger.info(`Publishing to ${this.channel}`);
|
|
47
|
+
|
|
38
48
|
const expiresAt = Math.round(Date.now() / 1000) + ttl;
|
|
39
49
|
this.dexHelper.cache.publish(
|
|
40
50
|
this.channel,
|
|
@@ -43,6 +53,8 @@ export class JsonPubSub {
|
|
|
43
53
|
}
|
|
44
54
|
|
|
45
55
|
handleSubscription(json: JsonPubSubMsg) {
|
|
56
|
+
this.logger.info(`Received message from ${this.channel}`);
|
|
57
|
+
|
|
46
58
|
const { expiresAt, data } = json;
|
|
47
59
|
|
|
48
60
|
const now = Math.round(Date.now() / 1000);
|
|
@@ -67,11 +79,11 @@ export class JsonPubSub {
|
|
|
67
79
|
this.dexHelper.cache.ttl(this.dexKey, this.network, key),
|
|
68
80
|
]);
|
|
69
81
|
|
|
70
|
-
if (value) {
|
|
82
|
+
if (value && ttl > 0) {
|
|
71
83
|
// setting ttl same as in cache
|
|
72
84
|
// TODO-ps: check if ttl is not null
|
|
73
85
|
const parsedValue = JSON.parse(value);
|
|
74
|
-
this.localCache.set(key, parsedValue,
|
|
86
|
+
this.localCache.set(key, parsedValue, ttl);
|
|
75
87
|
return parsedValue;
|
|
76
88
|
}
|
|
77
89
|
|
|
@@ -84,6 +96,9 @@ export class SetPubSub {
|
|
|
84
96
|
network: Network;
|
|
85
97
|
set = new Set<string>();
|
|
86
98
|
|
|
99
|
+
// TODO-rfq-ps: temporary logger
|
|
100
|
+
logger: Logger;
|
|
101
|
+
|
|
87
102
|
constructor(
|
|
88
103
|
private dexHelper: IDexHelper,
|
|
89
104
|
private dexKey: string,
|
|
@@ -91,6 +106,8 @@ export class SetPubSub {
|
|
|
91
106
|
) {
|
|
92
107
|
this.network = this.dexHelper.config.data.network;
|
|
93
108
|
this.channel = `${this.network}_${this.dexKey}_${channel}`;
|
|
109
|
+
|
|
110
|
+
this.logger = this.dexHelper.getLogger(`SetPubSub_${this.channel}`);
|
|
94
111
|
}
|
|
95
112
|
|
|
96
113
|
async initialize(key: string) {
|
|
@@ -104,6 +121,8 @@ export class SetPubSub {
|
|
|
104
121
|
}
|
|
105
122
|
|
|
106
123
|
subscribe() {
|
|
124
|
+
this.logger.info(`Subscribing to ${this.channel}`);
|
|
125
|
+
|
|
107
126
|
this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
|
|
108
127
|
const decodedMsg = JSON.parse(msg) as SetPubSubMsg;
|
|
109
128
|
this.handleSubscription(decodedMsg);
|
|
@@ -111,6 +130,8 @@ export class SetPubSub {
|
|
|
111
130
|
}
|
|
112
131
|
|
|
113
132
|
publish(set: SetPubSubMsg) {
|
|
133
|
+
this.logger.info(`Publishing to ${this.channel}`);
|
|
134
|
+
|
|
114
135
|
// as there's no lazy load, also store locally
|
|
115
136
|
for (const key of set) {
|
|
116
137
|
this.set.add(key);
|
|
@@ -119,6 +140,7 @@ export class SetPubSub {
|
|
|
119
140
|
}
|
|
120
141
|
|
|
121
142
|
handleSubscription(set: SetPubSubMsg) {
|
|
143
|
+
this.logger.info(`Received message from ${this.channel}`);
|
|
122
144
|
for (const key of set) {
|
|
123
145
|
this.set.add(key);
|
|
124
146
|
}
|