@sonarwatch/portfolio-core 0.1.1 → 0.1.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +1 -1
  3. package/src/Cache.d.ts +19 -7
  4. package/src/Cache.js +190 -27
  5. package/src/Cache.js.map +1 -1
  6. package/src/Fetcher.d.ts +3 -3
  7. package/src/Fetcher.js +2 -2
  8. package/src/Fetcher.js.map +1 -1
  9. package/src/Job.d.ts +2 -2
  10. package/src/Portfolio.d.ts +1 -1
  11. package/src/TokenPrice.d.ts +0 -4
  12. package/src/TokenPrice.js.map +1 -1
  13. package/src/constants/index.d.ts +0 -2
  14. package/src/constants/index.js +0 -4
  15. package/src/constants/index.js.map +1 -1
  16. package/src/helpers/sleep.d.ts +1 -0
  17. package/src/helpers/sleep.js +12 -0
  18. package/src/helpers/sleep.js.map +1 -0
  19. package/src/index.d.ts +0 -2
  20. package/src/index.js +0 -2
  21. package/src/index.js.map +1 -1
  22. package/src/utils/assetNetworkId.d.ts +2 -0
  23. package/src/utils/assetNetworkId.js +12 -0
  24. package/src/utils/assetNetworkId.js.map +1 -0
  25. package/src/utils/getUsdValueSum.d.ts +2 -0
  26. package/src/utils/getUsdValueSum.js +8 -0
  27. package/src/utils/getUsdValueSum.js.map +1 -0
  28. package/src/utils/getUsdValueSumStrict.d.ts +2 -0
  29. package/src/utils/getUsdValueSumStrict.js +8 -0
  30. package/src/utils/getUsdValueSumStrict.js.map +1 -0
  31. package/src/utils/index.d.ts +3 -0
  32. package/src/utils/index.js +3 -0
  33. package/src/utils/index.js.map +1 -1
  34. package/src/Context.d.ts +0 -6
  35. package/src/Context.js +0 -3
  36. package/src/Context.js.map +0 -1
  37. package/src/TokenPriceCache.d.ts +0 -13
  38. package/src/TokenPriceCache.js +0 -125
  39. package/src/TokenPriceCache.js.map +0 -1
  40. package/src/constants/platforms.d.ts +0 -5
  41. package/src/constants/platforms.js +0 -24
  42. package/src/constants/platforms.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.1.2](https://github.com/sonarwatch/portfolio/compare/core-0.1.1...core-0.1.2) (2023-07-06)
6
+
7
+
8
+
5
9
  ## [0.1.1](https://github.com/sonarwatch/portfolio/compare/core-0.1.0...core-0.1.1) (2023-07-04)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "@ethersproject/address": "^5.7.0",
package/src/Cache.d.ts CHANGED
@@ -1,17 +1,29 @@
1
- import { StorageValue, Driver } from 'unstorage';
1
+ import { Storage, StorageValue, Driver } from 'unstorage';
2
2
  import { NetworkIdType } from './Network';
3
+ import { TokenPrice, TokenPriceSource } from './TokenPrice';
3
4
  export type TransactionOptions = {
4
5
  prefix: string;
5
6
  networkId?: NetworkIdType;
6
7
  };
7
8
  export declare class Cache {
8
- private readonly storage;
9
+ readonly storage: Storage;
10
+ private tokenPricesCache;
9
11
  constructor(driver: Driver);
10
- has(key: string, opts: TransactionOptions): Promise<boolean>;
11
- get<K extends StorageValue>(key: string, opts: TransactionOptions): Promise<K | undefined>;
12
- set<K extends StorageValue>(key: string, value: K, opts: TransactionOptions): Promise<void>;
13
- remove(key: string, opts: TransactionOptions): Promise<void>;
14
- keys(opts: TransactionOptions): Promise<string[]>;
12
+ hasItem(key: string, opts: TransactionOptions): Promise<boolean>;
13
+ hasTokenPrice(address: string, networkId: NetworkIdType): Promise<boolean>;
14
+ getItem<K extends StorageValue>(key: string, opts: TransactionOptions): Promise<K | undefined>;
15
+ getCachedTokenPrice(address: string, networkId: NetworkIdType): Promise<TokenPrice | undefined>;
16
+ getTokenPrice(address: string, networkId: NetworkIdType): Promise<TokenPrice | undefined>;
17
+ private getTokenPriceSources;
18
+ getItems<K extends StorageValue>(opts: TransactionOptions): Promise<K[]>;
19
+ getItemsAsMap<K extends StorageValue>(opts: TransactionOptions): Promise<Map<string, K>>;
20
+ getTokenPrices(networkId: NetworkIdType): Promise<Map<string, TokenPrice>>;
21
+ setItem<K extends StorageValue>(key: string, value: K, opts: TransactionOptions, ttl?: number): Promise<void>;
22
+ setTokenPriceSource(source: TokenPriceSource): Promise<void>;
23
+ removeItem(key: string, opts: TransactionOptions): Promise<void>;
24
+ getKeys(opts: TransactionOptions): Promise<string[]>;
25
+ getTokenPriceAddresses(networkId: NetworkIdType): Promise<string[]>;
15
26
  dispose(): Promise<void>;
16
27
  }
28
+ export declare function getCacheDriver(): Driver;
17
29
  export declare function getCache(): Cache;
package/src/Cache.js CHANGED
@@ -1,44 +1,197 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCache = exports.Cache = void 0;
3
+ exports.getCache = exports.getCacheDriver = exports.Cache = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const unstorage_1 = require("unstorage");
6
6
  const fs_1 = tslib_1.__importDefault(require("unstorage/drivers/fs"));
7
7
  const mongodb_1 = tslib_1.__importDefault(require("unstorage/drivers/mongodb"));
8
8
  const redis_1 = tslib_1.__importDefault(require("unstorage/drivers/redis"));
9
+ const http_1 = tslib_1.__importDefault(require("unstorage/drivers/http"));
10
+ const TokenPrice_1 = require("./TokenPrice");
11
+ const ttlPrefix = 'ttl';
12
+ const tokenPriceSourcePrefix = 'tokenpricesource';
13
+ const tokenPricesCacheTtl = 10 * 1000;
9
14
  class Cache {
10
15
  constructor(driver) {
16
+ this.tokenPricesCache = new Map();
11
17
  this.storage = (0, unstorage_1.createStorage)({
12
18
  driver,
13
19
  });
14
20
  }
15
- has(key, opts) {
16
- const fullKey = getFullKey(key, opts);
17
- return this.storage.hasItem(fullKey);
21
+ hasItem(key, opts) {
22
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ const item = yield this.getItem(key, opts);
24
+ return item !== undefined;
25
+ });
26
+ }
27
+ hasTokenPrice(address, networkId) {
28
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
+ const tokenPrice = yield this.getTokenPrice(address, networkId);
30
+ return tokenPrice !== undefined;
31
+ });
32
+ }
33
+ getItem(key, opts) {
34
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
+ const fullKey = getFullKey(key, opts);
36
+ let ttl;
37
+ if (opts.prefix !== ttlPrefix) {
38
+ ttl = yield this.getItem(fullKey, {
39
+ prefix: ttlPrefix,
40
+ });
41
+ }
42
+ if (ttl && ttl < Date.now()) {
43
+ yield this.removeItem(key, opts);
44
+ return undefined;
45
+ }
46
+ return this.storage.getItem(fullKey);
47
+ });
48
+ }
49
+ getCachedTokenPrice(address, networkId) {
50
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
+ const cachedTokenPrice = this.tokenPricesCache.get(getTokenPriceCacheKey(address, networkId));
52
+ if (!cachedTokenPrice) {
53
+ this.tokenPricesCache.delete(getTokenPriceCacheKey(address, networkId));
54
+ return undefined;
55
+ }
56
+ if (Date.now() > cachedTokenPrice.ts + tokenPricesCacheTtl) {
57
+ this.tokenPricesCache.delete(getTokenPriceCacheKey(address, networkId));
58
+ return undefined;
59
+ }
60
+ return cachedTokenPrice.tp;
61
+ });
62
+ }
63
+ getTokenPrice(address, networkId) {
64
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
+ // Check if in cache
66
+ const cTokenPrice = yield this.getCachedTokenPrice(address, networkId);
67
+ if (cTokenPrice)
68
+ return cTokenPrice;
69
+ const sources = yield this.getTokenPriceSources(address, networkId);
70
+ if (!sources)
71
+ return undefined;
72
+ const tokenPrice = (0, TokenPrice_1.tokenPriceFromSources)(sources);
73
+ // Set in cache if tokenPrice is valide
74
+ if (tokenPrice) {
75
+ this.tokenPricesCache.set(getTokenPriceCacheKey(address, networkId), {
76
+ tp: tokenPrice,
77
+ ts: Date.now(),
78
+ });
79
+ }
80
+ return tokenPrice;
81
+ });
82
+ }
83
+ getTokenPriceSources(address, networkId) {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
+ return this.getItem(address, {
86
+ prefix: tokenPriceSourcePrefix,
87
+ networkId,
88
+ });
89
+ });
90
+ }
91
+ getItems(opts) {
92
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
93
+ const itemsMap = yield this.getItemsAsMap(opts);
94
+ return Array.from(itemsMap.values());
95
+ });
96
+ }
97
+ getItemsAsMap(opts) {
98
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
99
+ const keys = yield this.getKeys(opts);
100
+ const itemsMap = new Map();
101
+ for (let i = 0; i < keys.length; i += 1) {
102
+ const key = keys[i];
103
+ const item = yield this.getItem(key, opts);
104
+ if (item !== undefined)
105
+ itemsMap.set(key, item);
106
+ }
107
+ return itemsMap;
108
+ });
109
+ }
110
+ getTokenPrices(networkId) {
111
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
+ const addresses = yield this.getTokenPriceAddresses(networkId);
113
+ const tokenPrices = new Map();
114
+ for (let i = 0; i < addresses.length; i += 1) {
115
+ const address = addresses[i];
116
+ const item = yield this.getTokenPrice(address, networkId);
117
+ if (item !== undefined)
118
+ tokenPrices.set(address, item);
119
+ }
120
+ return tokenPrices;
121
+ });
18
122
  }
19
- get(key, opts) {
20
- const fullKey = getFullKey(key, opts);
21
- return this.storage.getItem(fullKey);
123
+ setItem(key, value, opts, ttl) {
124
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
125
+ const fullKey = getFullKey(key, opts);
126
+ if (ttl) {
127
+ yield this.setItem(fullKey, Date.now() + ttl, {
128
+ prefix: ttlPrefix,
129
+ });
130
+ }
131
+ return this.storage.setItem(fullKey, value);
132
+ });
22
133
  }
23
- set(key, value, opts) {
24
- const fullKey = getFullKey(key, opts);
25
- return this.storage.setItem(fullKey, value);
134
+ setTokenPriceSource(source) {
135
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
136
+ let cSources = yield this.getItem(source.address, {
137
+ prefix: tokenPriceSourcePrefix,
138
+ networkId: source.networkId,
139
+ });
140
+ if (!cSources)
141
+ cSources = [];
142
+ const newSources = (0, TokenPrice_1.pushTokenPriceSource)(cSources, source);
143
+ if (!newSources) {
144
+ yield this.removeItem(source.address, {
145
+ prefix: tokenPriceSourcePrefix,
146
+ networkId: source.networkId,
147
+ });
148
+ return;
149
+ }
150
+ yield this.setItem(source.address, newSources, {
151
+ prefix: tokenPriceSourcePrefix,
152
+ networkId: source.networkId,
153
+ });
154
+ });
26
155
  }
27
- remove(key, opts) {
28
- const fullKey = getFullKey(key, opts);
29
- return this.storage.removeItem(fullKey);
156
+ removeItem(key, opts) {
157
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
158
+ const fullKey = getFullKey(key, opts);
159
+ if (opts.prefix !== ttlPrefix) {
160
+ yield this.removeItem(fullKey, {
161
+ prefix: ttlPrefix,
162
+ });
163
+ }
164
+ return this.storage.removeItem(fullKey);
165
+ });
30
166
  }
31
- keys(opts) {
167
+ getKeys(opts) {
32
168
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
169
  const fullBase = getFullBase(opts);
170
+ const keys = (yield this.storage.getKeys(fullBase)).map((s) => s.substring(fullBase.length));
171
+ // Verifying that key is still alive
172
+ for (let i = 0; i < keys.length; i += 1) {
173
+ const key = keys[i];
174
+ yield this.hasItem(key, opts);
175
+ }
34
176
  return (yield this.storage.getKeys(fullBase)).map((s) => s.substring(fullBase.length));
35
177
  });
36
178
  }
179
+ getTokenPriceAddresses(networkId) {
180
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
181
+ return this.getKeys({
182
+ prefix: tokenPriceSourcePrefix,
183
+ networkId,
184
+ });
185
+ });
186
+ }
37
187
  dispose() {
38
188
  return this.storage.dispose();
39
189
  }
40
190
  }
41
191
  exports.Cache = Cache;
192
+ function getTokenPriceCacheKey(address, networkId) {
193
+ return `${address}-${networkId}`;
194
+ }
42
195
  function getFullKey(key, opts) {
43
196
  const { networkId, prefix } = opts;
44
197
  const networkIdKeyPrefix = networkId ? `/${networkId.toString()}` : '';
@@ -50,33 +203,43 @@ function getFullBase(opts) {
50
203
  const fullBase = `${prefix}:${networkIdBasePrefix}`;
51
204
  return fullBase;
52
205
  }
53
- function getDriver() {
54
- switch (process.env['CACHE_DRIVER']) {
206
+ function getCacheDriver() {
207
+ switch (process.env['CACHE_DRIVER_TYPE']) {
55
208
  case 'filesystem':
56
209
  return (0, fs_1.default)({
57
- base: process.env['CACHE_FILESYSTEM_BASE']
58
- ? `${process.env['CACHE_FILESYSTEM_BASE']}/main`
59
- : './cache/main',
210
+ base: process.env['CACHE_DRIVER_FILESYSTEM_BASE'] || './cache',
60
211
  });
61
212
  case 'mongodb':
62
213
  return (0, mongodb_1.default)({
63
- connectionString: process.env['CACHE_MONGODB_CONNECTION'] ||
214
+ connectionString: process.env['CACHE_DRIVER_MONGODB_CONNECTION'] ||
64
215
  'mongodb://localhost:27017/',
65
- databaseName: process.env['CACHE_MONGODB_DATABASE'] || 'portfolio',
66
- collectionName: 'main',
216
+ databaseName: process.env['CACHE_DRIVER_MONGODB_DATABASE'] || 'portfolio',
217
+ collectionName: 'cache',
67
218
  });
68
219
  case 'redis':
69
220
  return (0, redis_1.default)({
70
- url: process.env['CACHE_REDIS_URL'] || '127.0.0.1:6379',
71
- tls: process.env['CACHE_REDIS_TLS'] === 'true' ? {} : undefined,
72
- base: 'main',
221
+ url: process.env['CACHE_DRIVER_REDIS_URL'] || '127.0.0.1:6379',
222
+ tls: process.env['CACHE_DRIVER_REDIS_TLS'] === 'true' ? {} : undefined,
223
+ db: parseInt(process.env['CACHE_DRIVER_REDIS_DB'] || '0', 10),
73
224
  });
74
225
  default:
75
- return (0, fs_1.default)({ base: './cache/main' });
226
+ return (0, fs_1.default)({ base: './cache' });
76
227
  }
77
228
  }
229
+ exports.getCacheDriver = getCacheDriver;
78
230
  function getCache() {
79
- return new Cache(getDriver());
231
+ const base = process.env['CACHE_SERVER_ENDPOINT'] || 'http://localhost:3000/';
232
+ const bearerToken = process.env['CACHE_SERVER_BEARER_TOKEN'];
233
+ const headers = bearerToken
234
+ ? {
235
+ Authorization: `Bearer ${bearerToken}`,
236
+ }
237
+ : undefined;
238
+ const driver = (0, http_1.default)({
239
+ base,
240
+ headers,
241
+ });
242
+ return new Cache(driver);
80
243
  }
81
244
  exports.getCache = getCache;
82
245
  //# sourceMappingURL=Cache.js.map
package/src/Cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../../packages/core/src/Cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../../packages/core/src/Cache.ts"],"names":[],"mappings":"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"}
package/src/Fetcher.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { Context } from './Context';
1
+ import { Cache } from './Cache';
2
2
  import { NetworkIdType } from './Network';
3
3
  import { PortfolioElement } from './Portfolio';
4
- export type FetcherExecutor = (owner: string, context: Context) => Promise<PortfolioElement[]>;
4
+ export type FetcherExecutor = (owner: string, cache: Cache) => Promise<PortfolioElement[]>;
5
5
  export type Fetcher = {
6
6
  id: string;
7
7
  networkId: NetworkIdType;
8
8
  executor: FetcherExecutor;
9
9
  };
10
- export declare function runFetcherExecutor(fetcher: Fetcher, owner: string, context: Context): Promise<PortfolioElement[]>;
10
+ export declare function runFetcherExecutor(fetcher: Fetcher, owner: string, cache: Cache): Promise<PortfolioElement[]>;
package/src/Fetcher.js CHANGED
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runFetcherExecutor = void 0;
4
4
  const utils_1 = require("./utils");
5
- function runFetcherExecutor(fetcher, owner, context) {
5
+ function runFetcherExecutor(fetcher, owner, cache) {
6
6
  const fOwner = (0, utils_1.formatAddress)(owner, fetcher.networkId);
7
- return fetcher.executor(fOwner, context);
7
+ return fetcher.executor(fOwner, cache);
8
8
  }
9
9
  exports.runFetcherExecutor = runFetcherExecutor;
10
10
  //# sourceMappingURL=Fetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Fetcher.js","sourceRoot":"","sources":["../../../../packages/core/src/Fetcher.ts"],"names":[],"mappings":";;;AAGA,mCAAwC;AAYxC,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,KAAa,EACb,OAAgB;IAEhB,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAPD,gDAOC"}
1
+ {"version":3,"file":"Fetcher.js","sourceRoot":"","sources":["../../../../packages/core/src/Fetcher.ts"],"names":[],"mappings":";;;AAGA,mCAAwC;AAYxC,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,KAAa,EACb,KAAY;IAEZ,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAPD,gDAOC"}
package/src/Job.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Context } from './Context';
2
- export type JobExecutor = (context: Context) => Promise<void>;
1
+ import { Cache } from './Cache';
2
+ export type JobExecutor = (cache: Cache) => Promise<void>;
3
3
  export type Job = {
4
4
  id: string;
5
5
  executor: JobExecutor;
@@ -47,8 +47,8 @@ export type PortfolioAssetCollectibleData = {
47
47
  dataUri?: string;
48
48
  collection?: {
49
49
  id: string;
50
- name: string;
51
50
  floorPrice: UsdValue;
51
+ name?: string;
52
52
  };
53
53
  };
54
54
  export type PortfolioAssetCollectible = PortfolioAssetCommon & {
@@ -27,10 +27,6 @@ export type TokenPrice = {
27
27
  sources: TokenPriceSource[];
28
28
  timestamp: number;
29
29
  };
30
- export type TokenPriceCached = {
31
- tokenPrice: TokenPrice;
32
- sources: TokenPriceSource[];
33
- };
34
30
  export declare function tokenPriceFromSources(sources: TokenPriceSource[]): TokenPrice | undefined;
35
31
  export declare function pushTokenPriceSource(sources: TokenPriceSource[], source: TokenPriceSource): TokenPriceSource[] | undefined;
36
32
  export declare function updateTokenPriceSources(sources: TokenPriceSource[]): TokenPriceSource[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TokenPrice.js","sourceRoot":"","sources":["../../../../packages/core/src/TokenPrice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenPrice.js","sourceRoot":"","sources":["../../../../packages/core/src/TokenPrice.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
1
  export * from './addresses';
2
2
  export * from './networks';
3
- export * from './platforms';
4
- export declare const platforms: import("..").Platform[];
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.platforms = void 0;
4
3
  const tslib_1 = require("tslib");
5
- const _platforms = tslib_1.__importStar(require("./platforms"));
6
4
  tslib_1.__exportStar(require("./addresses"), exports);
7
5
  tslib_1.__exportStar(require("./networks"), exports);
8
- tslib_1.__exportStar(require("./platforms"), exports);
9
- exports.platforms = Object.values(_platforms);
10
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/constants/index.ts"],"names":[],"mappings":";;;;AAAA,gEAA0C;AAE1C,sDAA4B;AAC5B,qDAA2B;AAC3B,sDAA4B;AAEf,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/constants/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,qDAA2B"}
@@ -0,0 +1 @@
1
+ export default function sleep(ms?: number): Promise<unknown>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ function sleep(ms = 100) {
5
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
6
+ return new Promise((r) => {
7
+ setTimeout(r, ms);
8
+ });
9
+ });
10
+ }
11
+ exports.default = sleep;
12
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../../packages/core/src/helpers/sleep.ts"],"names":[],"mappings":";;;AAAA,SAA8B,KAAK,CAAC,EAAE,GAAG,GAAG;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAJD,wBAIC"}
package/src/index.d.ts CHANGED
@@ -2,7 +2,6 @@ export * from './constants';
2
2
  export * from './errors';
3
3
  export * from './utils';
4
4
  export * from './Address';
5
- export * from './Context';
6
5
  export * from './UsdValue';
7
6
  export * from './Client';
8
7
  export * from './Network';
@@ -10,7 +9,6 @@ export * from './Platform';
10
9
  export * from './Portfolio';
11
10
  export * from './TokenList';
12
11
  export * from './TokenPrice';
13
- export * from './TokenPriceCache';
14
12
  export * from './Yield';
15
13
  export * from './Job';
16
14
  export * from './Fetcher';
package/src/index.js CHANGED
@@ -5,7 +5,6 @@ tslib_1.__exportStar(require("./constants"), exports);
5
5
  tslib_1.__exportStar(require("./errors"), exports);
6
6
  tslib_1.__exportStar(require("./utils"), exports);
7
7
  tslib_1.__exportStar(require("./Address"), exports);
8
- tslib_1.__exportStar(require("./Context"), exports);
9
8
  tslib_1.__exportStar(require("./UsdValue"), exports);
10
9
  tslib_1.__exportStar(require("./Client"), exports);
11
10
  tslib_1.__exportStar(require("./Network"), exports);
@@ -13,7 +12,6 @@ tslib_1.__exportStar(require("./Platform"), exports);
13
12
  tslib_1.__exportStar(require("./Portfolio"), exports);
14
13
  tslib_1.__exportStar(require("./TokenList"), exports);
15
14
  tslib_1.__exportStar(require("./TokenPrice"), exports);
16
- tslib_1.__exportStar(require("./TokenPriceCache"), exports);
17
15
  tslib_1.__exportStar(require("./Yield"), exports);
18
16
  tslib_1.__exportStar(require("./Job"), exports);
19
17
  tslib_1.__exportStar(require("./Fetcher"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,4DAAkC;AAClC,kDAAwB;AACxB,gDAAsB;AACtB,oDAA0B;AAC1B,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,kDAAwB;AACxB,gDAAsB;AACtB,oDAA0B;AAC1B,kDAAwB"}
@@ -0,0 +1,2 @@
1
+ import { NetworkIdType } from '../Network';
2
+ export declare function assetNetworkId(networkId: string): NetworkIdType;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetNetworkId = void 0;
4
+ const constants_1 = require("../constants");
5
+ function assetNetworkId(networkId) {
6
+ const network = constants_1.networks[networkId];
7
+ if (!network)
8
+ throw new Error(`NetworkId is not valid: ${networkId}`);
9
+ return networkId;
10
+ }
11
+ exports.assetNetworkId = assetNetworkId;
12
+ //# sourceMappingURL=assetNetworkId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetNetworkId.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/assetNetworkId.ts"],"names":[],"mappings":";;;AACA,4CAAwC;AAExC,SAAgB,cAAc,CAAC,SAAiB;IAC9C,MAAM,OAAO,GAAG,oBAAQ,CAAC,SAA0B,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IACtE,OAAO,SAA0B,CAAC;AACpC,CAAC;AAJD,wCAIC"}
@@ -0,0 +1,2 @@
1
+ import { UsdValue } from '../UsdValue';
2
+ export declare function getUsdValueSum(usdValues: UsdValue[]): UsdValue;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUsdValueSum = void 0;
4
+ function getUsdValueSum(usdValues) {
5
+ return usdValues.reduce((sum, currUsdValue) => currUsdValue !== null ? sum + currUsdValue : sum, 0);
6
+ }
7
+ exports.getUsdValueSum = getUsdValueSum;
8
+ //# sourceMappingURL=getUsdValueSum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUsdValueSum.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getUsdValueSum.ts"],"names":[],"mappings":";;;AAEA,SAAgB,cAAc,CAAC,SAAqB;IAClD,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,GAAW,EAAE,YAAY,EAAE,EAAE,CAC5B,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAClD,CAAC,CACF,CAAC;AACJ,CAAC;AAND,wCAMC"}
@@ -0,0 +1,2 @@
1
+ import { UsdValue } from '../UsdValue';
2
+ export declare function getUsdValueSumStrict(usdValues: UsdValue[]): UsdValue;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUsdValueSumStrict = void 0;
4
+ function getUsdValueSumStrict(usdValues) {
5
+ return usdValues.reduce((sum, currUsdValue) => sum !== null && currUsdValue !== null ? sum + currUsdValue : null, 0);
6
+ }
7
+ exports.getUsdValueSumStrict = getUsdValueSumStrict;
8
+ //# sourceMappingURL=getUsdValueSumStrict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUsdValueSumStrict.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/getUsdValueSumStrict.ts"],"names":[],"mappings":";;;AAEA,SAAgB,oBAAoB,CAAC,SAAqB;IACxD,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,CACpB,GAAG,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EACnE,CAAC,CACF,CAAC;AACJ,CAAC;AAND,oDAMC"}
@@ -9,5 +9,8 @@ export * from './formatTokenPrice';
9
9
  export * from './formatUniTokenInfo';
10
10
  export * from './getAssetsFromElement';
11
11
  export * from './getAssetsFromElements';
12
+ export * from './getUsdValueSum';
13
+ export * from './getUsdValueSumStrict';
12
14
  export * from './sortPortfolioElement';
13
15
  export * from './sortPortfolioElements';
16
+ export * from './assetNetworkId';
@@ -12,6 +12,9 @@ tslib_1.__exportStar(require("./formatTokenPrice"), exports);
12
12
  tslib_1.__exportStar(require("./formatUniTokenInfo"), exports);
13
13
  tslib_1.__exportStar(require("./getAssetsFromElement"), exports);
14
14
  tslib_1.__exportStar(require("./getAssetsFromElements"), exports);
15
+ tslib_1.__exportStar(require("./getUsdValueSum"), exports);
16
+ tslib_1.__exportStar(require("./getUsdValueSumStrict"), exports);
15
17
  tslib_1.__exportStar(require("./sortPortfolioElement"), exports);
16
18
  tslib_1.__exportStar(require("./sortPortfolioElements"), exports);
19
+ tslib_1.__exportStar(require("./assetNetworkId"), exports);
17
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,yDAA+B;AAC/B,0DAAgC;AAChC,+DAAqC;AACrC,oEAA0C;AAC1C,wDAA8B;AAC9B,4DAAkC;AAClC,6DAAmC;AACnC,+DAAqC;AACrC,iEAAuC;AACvC,kEAAwC;AACxC,iEAAuC;AACvC,kEAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/core/src/utils/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,yDAA+B;AAC/B,0DAAgC;AAChC,+DAAqC;AACrC,oEAA0C;AAC1C,wDAA8B;AAC9B,4DAAkC;AAClC,6DAAmC;AACnC,+DAAqC;AACrC,iEAAuC;AACvC,kEAAwC;AACxC,2DAAiC;AACjC,iEAAuC;AACvC,iEAAuC;AACvC,kEAAwC;AACxC,2DAAiC"}
package/src/Context.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Cache } from './Cache';
2
- import { TokenPriceCache } from './TokenPriceCache';
3
- export type Context = {
4
- cache: Cache;
5
- tokenPriceCache: TokenPriceCache;
6
- };
package/src/Context.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../packages/core/src/Context.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { Driver } from 'unstorage';
2
- import { NetworkIdType } from './Network';
3
- import { TokenPrice, TokenPriceSource } from './TokenPrice';
4
- export declare class TokenPriceCache {
5
- private readonly cache;
6
- constructor(driver: Driver);
7
- has(address: string, networkId: NetworkIdType): Promise<boolean>;
8
- get(address: string, networkId: NetworkIdType): Promise<TokenPrice | undefined>;
9
- refresh(address: string, networkId: NetworkIdType): Promise<void>;
10
- refreshAll(networkId: NetworkIdType): Promise<void>;
11
- set(source: TokenPriceSource): Promise<void>;
12
- }
13
- export declare function getTokenPriceCache(): TokenPriceCache;
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTokenPriceCache = exports.TokenPriceCache = void 0;
4
- const tslib_1 = require("tslib");
5
- const fs_1 = tslib_1.__importDefault(require("unstorage/drivers/fs"));
6
- const mongodb_1 = tslib_1.__importDefault(require("unstorage/drivers/mongodb"));
7
- const redis_1 = tslib_1.__importDefault(require("unstorage/drivers/redis"));
8
- const Cache_1 = require("./Cache");
9
- const TokenPrice_1 = require("./TokenPrice");
10
- const TOKEN_PRICE_TIMEOUT = 60 * 1000;
11
- const TOKEN_PRICE_PREFIX = 'tokenprice';
12
- class TokenPriceCache {
13
- constructor(driver) {
14
- this.cache = new Cache_1.Cache(driver);
15
- }
16
- has(address, networkId) {
17
- return this.cache.has(address, { prefix: TOKEN_PRICE_PREFIX, networkId });
18
- }
19
- get(address, networkId) {
20
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- const tokenPrice = yield this.cache.get(address, {
22
- prefix: TOKEN_PRICE_PREFIX,
23
- networkId,
24
- });
25
- // Refresh tokenPrice is old
26
- if (tokenPrice && Date.now() - TOKEN_PRICE_TIMEOUT > tokenPrice.timestamp)
27
- this.refresh(address, networkId);
28
- return tokenPrice;
29
- });
30
- }
31
- refresh(address, networkId) {
32
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
- const cachedTokenPrice = yield this.cache.get(address, {
34
- prefix: TOKEN_PRICE_PREFIX,
35
- networkId,
36
- });
37
- if (!cachedTokenPrice)
38
- return;
39
- const newTokenPrice = (0, TokenPrice_1.tokenPriceFromSources)(cachedTokenPrice.sources);
40
- if (!newTokenPrice) {
41
- yield this.cache.remove(address, {
42
- prefix: TOKEN_PRICE_PREFIX,
43
- networkId,
44
- });
45
- return;
46
- }
47
- yield this.cache.set(newTokenPrice.address, newTokenPrice, {
48
- prefix: TOKEN_PRICE_PREFIX,
49
- networkId: newTokenPrice.networkId,
50
- });
51
- });
52
- }
53
- refreshAll(networkId) {
54
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
55
- const addresses = yield this.cache.keys({
56
- prefix: TOKEN_PRICE_PREFIX,
57
- networkId,
58
- });
59
- for (let i = 0; i < addresses.length; i += 1) {
60
- const address = addresses[i];
61
- yield this.refresh(address, networkId);
62
- }
63
- });
64
- }
65
- set(source) {
66
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
- const cachedTokenPrice = yield this.cache.get(source.address, {
68
- prefix: TOKEN_PRICE_PREFIX,
69
- networkId: source.networkId,
70
- });
71
- const cachedSources = (cachedTokenPrice === null || cachedTokenPrice === void 0 ? void 0 : cachedTokenPrice.sources) || [];
72
- const newSources = (0, TokenPrice_1.pushTokenPriceSource)(cachedSources, source);
73
- if (!newSources) {
74
- yield this.cache.remove(source.address, {
75
- prefix: TOKEN_PRICE_PREFIX,
76
- networkId: source.networkId,
77
- });
78
- return;
79
- }
80
- const newTokenPrice = (0, TokenPrice_1.tokenPriceFromSources)(newSources);
81
- if (!newTokenPrice) {
82
- yield this.cache.remove(source.address, {
83
- prefix: TOKEN_PRICE_PREFIX,
84
- networkId: source.networkId,
85
- });
86
- return;
87
- }
88
- yield this.cache.set(newTokenPrice.address, newTokenPrice, {
89
- prefix: TOKEN_PRICE_PREFIX,
90
- networkId: newTokenPrice.networkId,
91
- });
92
- });
93
- }
94
- }
95
- exports.TokenPriceCache = TokenPriceCache;
96
- function getDriver() {
97
- switch (process.env['CACHE_DRIVER']) {
98
- case 'filesystem':
99
- return (0, fs_1.default)({
100
- base: process.env['CACHE_FILESYSTEM_BASE']
101
- ? `${process.env['CACHE_FILESYSTEM_BASE']}/tokencache`
102
- : './cache/tokencache',
103
- });
104
- case 'mongodb':
105
- return (0, mongodb_1.default)({
106
- connectionString: process.env['CACHE_MONGODB_CONNECTION'] ||
107
- 'mongodb://localhost:27017/',
108
- databaseName: process.env['CACHE_MONGODB_DATABASE'] || 'portfolio',
109
- collectionName: 'tokencache',
110
- });
111
- case 'redis':
112
- return (0, redis_1.default)({
113
- url: process.env['CACHE_REDIS_URL'] || '127.0.0.1:6379',
114
- tls: process.env['CACHE_REDIS_TLS'] === 'true' ? {} : undefined,
115
- base: 'tokencache',
116
- });
117
- default:
118
- return (0, fs_1.default)({ base: './cache/tokencache' });
119
- }
120
- }
121
- function getTokenPriceCache() {
122
- return new TokenPriceCache(getDriver());
123
- }
124
- exports.getTokenPriceCache = getTokenPriceCache;
125
- //# sourceMappingURL=TokenPriceCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenPriceCache.js","sourceRoot":"","sources":["../../../../packages/core/src/TokenPriceCache.ts"],"names":[],"mappings":";;;;AACA,sEAA4C;AAC5C,gFAAsD;AACtD,4EAAkD;AAGlD,mCAAgC;AAChC,6CAKsB;AAEtB,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,MAAa,eAAe;IAG1B,YAAY,MAAc;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,SAAwB;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEK,GAAG,CAAC,OAAe,EAAE,SAAwB;;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,OAAO,EAAE;gBAC3D,MAAM,EAAE,kBAAkB;gBAC1B,SAAS;aACV,CAAC,CAAC;YAEH,4BAA4B;YAC5B,IAAI,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,GAAG,UAAU,CAAC,SAAS;gBACvE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEnC,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAEK,OAAO,CAAC,OAAe,EAAE,SAAwB;;YACrD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,OAAO,EAAE;gBACjE,MAAM,EAAE,kBAAkB;gBAC1B,SAAS;aACV,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YAC9B,MAAM,aAAa,GAAG,IAAA,kCAAqB,EAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;oBAC/B,MAAM,EAAE,kBAAkB;oBAC1B,SAAS;iBACV,CAAC,CAAC;gBACH,OAAO;aACR;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;gBACzD,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,UAAU,CAAC,SAAwB;;YACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtC,MAAM,EAAE,kBAAkB;gBAC1B,SAAS;aACV,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;aACxC;QACH,CAAC;KAAA;IAEK,GAAG,CAAC,MAAwB;;YAChC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,MAAM,CAAC,OAAO,EAAE;gBACxE,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,EAAE,CAAC;YAEtD,MAAM,UAAU,GAAG,IAAA,iCAAoB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;oBACtC,MAAM,EAAE,kBAAkB;oBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,OAAO;aACR;YACD,MAAM,aAAa,GAAG,IAAA,kCAAqB,EAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;oBACtC,MAAM,EAAE,kBAAkB;oBAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,OAAO;aACR;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;gBACzD,MAAM,EAAE,kBAAkB;gBAC1B,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAnFD,0CAmFC;AAED,SAAS,SAAS;IAChB,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QACnC,KAAK,YAAY;YACf,OAAO,IAAA,YAAQ,EAAC;gBACd,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;oBACxC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,aAAa;oBACtD,CAAC,CAAC,oBAAoB;aACzB,CAAC,CAAC;QACL,KAAK,SAAS;YACZ,OAAO,IAAA,iBAAa,EAAC;gBACnB,gBAAgB,EACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;oBACvC,4BAA4B;gBAC9B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,WAAW;gBAClE,cAAc,EAAE,YAAY;aAC7B,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,IAAA,eAAW,EAAC;gBACjB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,gBAAgB;gBACvD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC/D,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL;YACE,OAAO,IAAA,YAAQ,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;KACnD;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1C,CAAC;AAFD,gDAEC"}
@@ -1,5 +0,0 @@
1
- import { Platform } from '../Platform';
2
- export declare const marinadePlatform: Platform;
3
- export declare const aavePlatform: Platform;
4
- export declare const walletnftsPlatform: Platform;
5
- export declare const wallettokensPlatform: Platform;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wallettokensPlatform = exports.walletnftsPlatform = exports.aavePlatform = exports.marinadePlatform = void 0;
4
- exports.marinadePlatform = {
5
- id: 'marinade',
6
- name: 'Marinade',
7
- image: 'https://beta.sonar.watch/img/platforms/marinade.png',
8
- };
9
- exports.aavePlatform = {
10
- id: 'aave',
11
- name: 'AAVE',
12
- image: 'https://beta.sonar.watch/img/platforms/aave.png',
13
- };
14
- exports.walletnftsPlatform = {
15
- id: 'walletnfts',
16
- name: 'NFTs',
17
- image: 'https://beta.sonar.watch/img/platforms/walletnfts.png',
18
- };
19
- exports.wallettokensPlatform = {
20
- id: 'wallettokens',
21
- name: 'Tokens',
22
- image: 'https://beta.sonar.watch/img/platforms/wallettokens.png',
23
- };
24
- //# sourceMappingURL=platforms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../../../packages/core/src/constants/platforms.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAa;IACxC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,qDAAqD;CAC7D,CAAC;AACW,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iDAAiD;CACzD,CAAC;AACW,QAAA,kBAAkB,GAAa;IAC1C,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,uDAAuD;CAC/D,CAAC;AACW,QAAA,oBAAoB,GAAa;IAC5C,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,yDAAyD;CACjE,CAAC"}