@sonarwatch/portfolio-plugins 0.14.45 → 0.14.46
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/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/plugins/cetus/clmmsFetcher.js +12 -20
- package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
- package/src/plugins/cetus/getPools.d.ts +2 -2
- package/src/plugins/cetus/getPools.js +20 -7
- package/src/plugins/cetus/getPools.js.map +1 -1
- package/src/plugins/cetus/index.js +2 -1
- package/src/plugins/cetus/index.js.map +1 -1
- package/src/plugins/cetus/poolsStatsJob.d.ts +3 -0
- package/src/plugins/cetus/poolsStatsJob.js +45 -0
- package/src/plugins/cetus/poolsStatsJob.js.map +1 -0
- package/src/plugins/cetus/types.d.ts +7 -0
- package/src/plugins/cetus/types.js.map +1 -1
- package/src/plugins/coinmarketcap/constants.d.ts +3 -9
- package/src/plugins/coinmarketcap/constants.js +20 -4
- package/src/plugins/coinmarketcap/constants.js.map +1 -1
- package/src/plugins/coinmarketcap/pricingJob.js +7 -5
- package/src/plugins/coinmarketcap/pricingJob.js.map +1 -1
- package/src/plugins/coinmarketcap/types.d.ts +21 -0
- package/src/plugins/coinmarketcap/types.js +3 -0
- package/src/plugins/coinmarketcap/types.js.map +1 -0
- package/src/plugins/flowx/stakingPoolV3Fetcher.js +12 -44
- package/src/plugins/flowx/stakingPoolV3Fetcher.js.map +1 -1
- package/src/plugins/kriya/clmmsFetcher.js +19 -22
- package/src/plugins/kriya/clmmsFetcher.js.map +1 -1
- package/src/plugins/kriya/constants.d.ts +3 -0
- package/src/plugins/kriya/constants.js +4 -1
- package/src/plugins/kriya/constants.js.map +1 -1
- package/src/plugins/kriya/index.js +7 -1
- package/src/plugins/kriya/index.js.map +1 -1
- package/src/plugins/kriya/poolsStatsJob.d.ts +3 -0
- package/src/plugins/kriya/poolsStatsJob.js +46 -0
- package/src/plugins/kriya/poolsStatsJob.js.map +1 -0
- package/src/plugins/kriya/types/pools.d.ts +8 -0
- package/src/plugins/orca/getWhirlpoolPositions.js +49 -107
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
- package/src/plugins/orca/index.js +2 -1
- package/src/plugins/orca/index.js.map +1 -1
- package/src/plugins/orca/types.d.ts +6 -0
- package/src/plugins/orca/types.js +3 -0
- package/src/plugins/orca/types.js.map +1 -0
- package/src/plugins/orca/whirlpoolsStatsJob.d.ts +3 -0
- package/src/plugins/orca/whirlpoolsStatsJob.js +51 -0
- package/src/plugins/orca/whirlpoolsStatsJob.js.map +1 -0
- package/src/plugins/raydium/getRaydiumCLMMPositions.js +32 -91
- package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -1
- package/src/plugins/turbos/clmmVaultFetcher.js +13 -51
- package/src/plugins/turbos/clmmVaultFetcher.js.map +1 -1
- package/src/plugins/turbos/clmmsPositionsFetcher.js +11 -48
- package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.d.ts +6 -0
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.js +72 -0
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.js.map +1 -0
- package/src/utils/elementbuilder/AssetBuilder.js +3 -3
- package/src/utils/elementbuilder/AssetBuilder.js.map +1 -1
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.d.ts +16 -0
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.js +3 -0
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.js.map +1 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.d.ts +13 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js +71 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js.map +1 -0
- package/src/utils/elementbuilder/ElementRegistry.d.ts +5 -1
- package/src/utils/elementbuilder/ElementRegistry.js +10 -4
- package/src/utils/elementbuilder/ElementRegistry.js.map +1 -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.14.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.45...plugins-0.14.46) (2024-11-28)
|
6
|
+
|
7
|
+
|
8
|
+
|
5
9
|
## [0.14.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.44...plugins-0.14.45) (2024-11-25)
|
6
10
|
|
7
11
|
|
package/package.json
CHANGED
@@ -8,16 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
12
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
17
13
|
const constants_1 = require("./constants");
|
18
14
|
const clients_1 = require("../../utils/clients");
|
19
15
|
const helpers_1 = require("./helpers");
|
20
|
-
const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
|
21
16
|
const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
|
22
17
|
const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
|
23
18
|
const getPools_1 = require("./getPools");
|
@@ -86,19 +81,18 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
86
81
|
return;
|
87
82
|
const fees = allFees[i];
|
88
83
|
const rewards = allRewards[i];
|
89
|
-
const
|
90
|
-
const
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
amount: tokenAmountB,
|
84
|
+
const element = elementRegistry.addElementConcentratedLiquidity();
|
85
|
+
const liquidity = element.setLiquidity({
|
86
|
+
addressA: pool.coinTypeA,
|
87
|
+
addressB: pool.coinTypeB,
|
88
|
+
liquidity: clmmPosition.liquidity,
|
89
|
+
tickCurrentIndex: pool.current_tick_index,
|
90
|
+
tickLowerIndex: clmmPosition.tick_lower_index,
|
91
|
+
tickUpperIndex: clmmPosition.tick_upper_index,
|
92
|
+
poolLiquidity: pool.liquidity,
|
93
|
+
currentSqrtPrice: pool.current_sqrt_price,
|
94
|
+
feeRate: Number(pool.fee_rate) / 10000,
|
95
|
+
swapVolume24h: pool.vol_in_usd_24h,
|
102
96
|
});
|
103
97
|
liquidity.addRewardAsset({
|
104
98
|
address: pool.coinTypeA,
|
@@ -114,8 +108,6 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
114
108
|
amount: rewarderAmountOwed.amount_owed,
|
115
109
|
});
|
116
110
|
});
|
117
|
-
if (tokenAmountA.isZero() || tokenAmountB.isZero())
|
118
|
-
element.addTag('Out Of Range');
|
119
111
|
});
|
120
112
|
return elementRegistry.getElements(cache);
|
121
113
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,2CAAsE;AACtE,iDAAmD;AACnD,uCAKmB;AAGnB,qEAAkE;AAClE,gFAA6E;AAC7E,yCAAsC;AAEtC,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAe,EAAC,MAAM,EAAE,KAAK,EAAE;QACpD,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,MAAM,EAAE,EAAE,OAAO,EAAE,6BAAiB,EAAE;KACvC,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,aAAa,GAAe,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QAClE,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,YAAY,KAAK,oBAAQ,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,eAAe,CAAC,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IAE1D,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,GAAG,EAAE,sBAAU,CAAC,CAAC;IAEvE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,IAAA,2BAAiB,EACf,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACnC,WAAW,EAAE,YAAY,CAAC,IAAI;YAC9B,UAAU,EAAE,YAAY,CAAC,aAAa;YACtC,SAAS,EAAE,YAAY,CAAC,WAAW;YACnC,SAAS,EAAE,YAAY,CAAC,WAAW;SACpC,CAAC,CAAC,CACJ;QACD,IAAA,iCAAuB,EACrB,aAAa;aACV,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACpB,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,OAAO;gBACL,WAAW,EAAE,YAAY,CAAC,IAAI;gBAC9B,UAAU,EAAE,YAAY,CAAC,aAAa;gBACtC,SAAS,EAAE,YAAY,CAAC,WAAW;gBACnC,SAAS,EAAE,YAAY,CAAC,WAAW;gBACnC,YAAY,EAAE,IAAI,CAAC,cAAc;aAClC,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAA2B,CACvD;KACF,CAAC,CAAC;IAEH,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,eAAe,CAAC,+BAA+B,EAAE,CAAC;QAElE,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;YACzC,cAAc,EAAE,YAAY,CAAC,gBAAgB;YAC7C,cAAc,EAAE,YAAY,CAAC,gBAAgB;YAC7C,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;YACzC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK;YACtC,aAAa,EAAE,IAAI,CAAC,cAAc;SACnC,CAAC,CAAC;QAEH,SAAS,CAAC,cAAc,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC,CAAC;QAEH,SAAS,CAAC,cAAc,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC,CAAC;QAEH,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;YACxD,SAAS,CAAC,cAAc,CAAC;gBACvB,OAAO,EAAE,kBAAkB,CAAC,YAAY;gBACxC,MAAM,EAAE,kBAAkB,CAAC,WAAW;aACvC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,GAAG;IACxB,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { Pool } from './types';
|
1
|
+
import { Pool, PoolStat } from './types';
|
2
2
|
import { Cache } from '../../Cache';
|
3
|
-
export declare const getPools: (poolIds: string[], cache: Cache) => Promise<(Pool | null)[]>;
|
3
|
+
export declare const getPools: (poolIds: string[], cache: Cache) => Promise<((Pool & PoolStat) | null)[]>;
|
@@ -20,27 +20,40 @@ const helpers_1 = require("./helpers");
|
|
20
20
|
const getPools = (poolIds, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
21
21
|
var _a;
|
22
22
|
const pools = [];
|
23
|
-
const cachedPools = yield
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
const [cachedPools, cachedPoolsStats] = yield Promise.all([
|
24
|
+
cache.getItems(poolIds, {
|
25
|
+
prefix: constants_1.clmmPoolsPrefix,
|
26
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
27
|
+
}),
|
28
|
+
cache.getItems(poolIds, {
|
29
|
+
prefix: `${constants_1.clmmPoolsPrefix}-stats`,
|
30
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
31
|
+
}),
|
32
|
+
]);
|
27
33
|
const client = (0, clients_1.getClientSui)();
|
28
34
|
for (const poolId of poolIds) {
|
29
35
|
const i = poolIds.indexOf(poolId);
|
30
36
|
const cachedPool = cachedPools[i];
|
37
|
+
const cachedPoolStat = cachedPoolsStats[i];
|
38
|
+
let pool;
|
31
39
|
if (cachedPool) {
|
32
|
-
|
40
|
+
pool = cachedPool;
|
33
41
|
}
|
34
42
|
else {
|
35
43
|
const poolObject = yield (0, getObject_1.getObject)(client, poolId);
|
36
|
-
|
44
|
+
pool = (0, helpers_1.getPoolFromObject)(poolObject);
|
37
45
|
if (((_a = poolObject.data) === null || _a === void 0 ? void 0 : _a.objectId) !== poolId || !pool) {
|
38
|
-
|
46
|
+
pool = null;
|
39
47
|
}
|
40
48
|
yield cache.setItem(poolId, pool, {
|
41
49
|
prefix: constants_1.clmmPoolsPrefix,
|
42
50
|
networkId: portfolio_core_1.NetworkId.sui,
|
43
51
|
});
|
52
|
+
}
|
53
|
+
if (pool && cachedPoolStat) {
|
54
|
+
pools.push(Object.assign(Object.assign({}, pool), cachedPoolStat));
|
55
|
+
}
|
56
|
+
else {
|
44
57
|
pools.push(pool);
|
45
58
|
}
|
46
59
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/getPools.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA8C;AAE9C,iDAAmD;AACnD,yDAAsD;AACtD,uCAA8C;AAE9C,4CAA4C;AAC5C,sDAAsD;AAC/C,MAAM,QAAQ,GAAG,CACtB,OAAiB,EACjB,KAAY,
|
1
|
+
{"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/getPools.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA8C;AAE9C,iDAAmD;AACnD,yDAAsD;AACtD,uCAA8C;AAE9C,4CAA4C;AAC5C,sDAAsD;AAC/C,MAAM,QAAQ,GAAG,CACtB,OAAiB,EACjB,KAAY,EAC2B,EAAE;;IACzC,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,KAAK,CAAC,QAAQ,CAAO,OAAO,EAAE;YAC5B,MAAM,EAAE,2BAAe;YACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;SACzB,CAAC;QACF,KAAK,CAAC,QAAQ,CAAW,OAAO,EAAE;YAChC,MAAM,EAAE,GAAG,2BAAe,QAAQ;YAClC,SAAS,EAAE,0BAAS,CAAC,GAAG;SACzB,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC;QAET,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,GAAG,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC;YAErC,IAAI,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,QAAQ,MAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,MAAM,EAAE,2BAAe;gBACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,iCAAM,IAAI,GAAK,cAAc,EAAG,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAA,CAAC;AAlDW,QAAA,QAAQ,YAkDnB"}
|
@@ -11,8 +11,9 @@ const vaultsJob_1 = __importDefault(require("./vaultsJob"));
|
|
11
11
|
const farmsFetcher_1 = __importDefault(require("./farmsFetcher"));
|
12
12
|
const limitFetcher_1 = __importDefault(require("./limitFetcher"));
|
13
13
|
const dcaFetcher_1 = __importDefault(require("./dcaFetcher"));
|
14
|
+
const poolsStatsJob_1 = __importDefault(require("./poolsStatsJob"));
|
14
15
|
exports.platforms = [constants_1.platform];
|
15
|
-
exports.jobs = [poolsJob_1.default, vaultsJob_1.default];
|
16
|
+
exports.jobs = [poolsJob_1.default, poolsStatsJob_1.default, vaultsJob_1.default];
|
16
17
|
exports.fetchers = [
|
17
18
|
clmmsFetcher_1.default,
|
18
19
|
farmsFetcher_1.default,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/index.ts"],"names":[],"mappings":";;;;;;AAGA,0DAAkC;AAClC,kEAAiD;AACjD,2CAAuC;AACvC,4DAAoC;AACpC,kEAA0C;AAC1C,kEAA0C;AAC1C,8DAAsC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/index.ts"],"names":[],"mappings":";;;;;;AAGA,0DAAkC;AAClC,kEAAiD;AACjD,2CAAuC;AACvC,4DAAoC;AACpC,kEAA0C;AAC1C,kEAA0C;AAC1C,8DAAsC;AACtC,oEAA4C;AAE/B,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,EAAE,uBAAa,EAAE,mBAAS,CAAC,CAAC;AACnD,QAAA,QAAQ,GAAc;IACjC,sBAAmB;IACnB,sBAAY;IACZ,sBAAY;IACZ,oBAAU;CACX,CAAC"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
17
|
+
const constants_1 = require("./constants");
|
18
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
19
|
+
const apiRes = yield axios_1.default.get(`https://api-sui.cetus.zone/v2/sui/swap/count`);
|
20
|
+
const cacheItems = [];
|
21
|
+
apiRes.data.data.pools.forEach((p) => {
|
22
|
+
cacheItems.push({
|
23
|
+
key: p.swap_account,
|
24
|
+
value: {
|
25
|
+
vol_in_usd: p.vol_in_usd,
|
26
|
+
apr_24h: p.apr_24h,
|
27
|
+
apr_7day: p.apr_7day,
|
28
|
+
apr_30day: p.apr_30day,
|
29
|
+
vol_in_usd_24h: p.vol_in_usd_24h,
|
30
|
+
},
|
31
|
+
});
|
32
|
+
});
|
33
|
+
// always use getPools helper to retrieve cetus pools
|
34
|
+
yield cache.setItems(cacheItems, {
|
35
|
+
prefix: `${constants_1.clmmPoolsPrefix}-stats`,
|
36
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
37
|
+
});
|
38
|
+
});
|
39
|
+
const job = {
|
40
|
+
id: `${constants_1.platformId}-pools-stats`,
|
41
|
+
executor,
|
42
|
+
label: 'normal',
|
43
|
+
};
|
44
|
+
exports.default = job;
|
45
|
+
//# sourceMappingURL=poolsStatsJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"poolsStatsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/poolsStatsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA6C;AAG7C,2CAA0D;AAG1D,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAWP,MAAM,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAErE,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,EAAE,CAAC,CAAC,YAAY;YACnB,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,cAAc,EAAE,CAAC,CAAC,cAAc;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;QAC/B,MAAM,EAAE,GAAG,2BAAe,QAAQ;QAClC,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,cAAc;IAC/B,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
@@ -34,6 +34,13 @@ export type Pool = {
|
|
34
34
|
uri: string;
|
35
35
|
name: string;
|
36
36
|
} & PoolImmutables;
|
37
|
+
export type PoolStat = {
|
38
|
+
vol_in_usd?: string;
|
39
|
+
vol_in_usd_24h?: string;
|
40
|
+
apr_24h?: string;
|
41
|
+
apr_7day?: string;
|
42
|
+
apr_30day?: string;
|
43
|
+
};
|
37
44
|
export type SuiStructTag = {
|
38
45
|
full_address: string;
|
39
46
|
source_address: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/types.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/types.ts"],"names":[],"mappings":";;;AAiEA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;IACnB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
|
@@ -1,11 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { Platform } from '@sonarwatch/portfolio-core';
|
2
|
+
import { CmcToken } from './types';
|
2
3
|
export declare const platformId = "coinmarketcap";
|
3
4
|
export declare const platform: Platform;
|
4
|
-
export declare const cmcTokens:
|
5
|
-
slug: string;
|
6
|
-
tokens: {
|
7
|
-
mint: string;
|
8
|
-
decimals: number;
|
9
|
-
networkId: NetworkIdType;
|
10
|
-
}[];
|
11
|
-
}[];
|
5
|
+
export declare const cmcTokens: CmcToken[];
|
@@ -8,10 +8,6 @@ exports.platformId = 'coinmarketcap';
|
|
8
8
|
exports.platform = {
|
9
9
|
id: exports.platformId,
|
10
10
|
name: 'CoinMarketCap',
|
11
|
-
image: 'https://sonar.watch/img/platforms/coinmarketcap.webp',
|
12
|
-
// defiLlamaId: 'pyth-network', // from https://defillama.com/docs/api
|
13
|
-
website: 'https://coinmarketcap.com/',
|
14
|
-
// twitter: 'https://twitter.com/PythNetwork',
|
15
11
|
};
|
16
12
|
exports.cmcTokens = [
|
17
13
|
{
|
@@ -84,5 +80,25 @@ exports.cmcTokens = [
|
|
84
80
|
},
|
85
81
|
],
|
86
82
|
},
|
83
|
+
{
|
84
|
+
slug: 'bonk1',
|
85
|
+
tokens: [
|
86
|
+
{
|
87
|
+
mint: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263',
|
88
|
+
decimals: 5,
|
89
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
90
|
+
},
|
91
|
+
],
|
92
|
+
},
|
93
|
+
{
|
94
|
+
slug: 'dogwifhat',
|
95
|
+
tokens: [
|
96
|
+
{
|
97
|
+
mint: 'EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm',
|
98
|
+
decimals: 6,
|
99
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
100
|
+
},
|
101
|
+
],
|
102
|
+
},
|
87
103
|
];
|
88
104
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/constants.ts"],"names":[],"mappings":";;;AAAA,+
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/constants.ts"],"names":[],"mappings":";;;AAAA,+DAUoC;AACpC,yDAKmC;AACnC,+CAAwE;AAG3D,QAAA,UAAU,GAAG,eAAe,CAAC;AAC7B,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,eAAe;CACtB,CAAC;AAEW,QAAA,SAAS,GAAe;IACnC;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,oCAAmB;gBACzB,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;YACD;gBACE,IAAI,EAAE,2CAA0B;gBAChC,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,iCAAgB;gBACtB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,mCAAkB;gBACxB,QAAQ,EAAE,oCAAmB;gBAC7B,SAAS,EAAE,0BAAS,CAAC,KAAK;aAC3B;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,wBAAY;gBAClB,QAAQ,EAAE,4BAAgB;gBAC1B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAW;gBACjB,QAAQ,EAAE,2BAAe;gBACzB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAc;gBACpB,QAAQ,EAAE,2BAAkB;gBAC5B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;CACF,CAAC"}
|
@@ -16,19 +16,21 @@ const axios_1 = __importDefault(require("axios"));
|
|
16
16
|
const constants_1 = require("../tokens/constants");
|
17
17
|
const constants_2 = require("./constants");
|
18
18
|
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
19
|
+
if (!process.env['PORTFOLIO_CMC_API_KEY'])
|
20
|
+
throw Error('PORTFOLIO_CMC_API_KEY is not defined');
|
19
21
|
const url = `https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest?slug=${constants_2.cmcTokens
|
20
22
|
.map((t) => t.slug)
|
21
|
-
.join(',')}&CMC_PRO_API_KEY=${'
|
22
|
-
const quotesRes = yield axios_1.default.get(url)
|
23
|
+
.join(',')}&CMC_PRO_API_KEY=${process.env['PORTFOLIO_CMC_API_KEY']}`;
|
24
|
+
const quotesRes = yield axios_1.default.get(url);
|
23
25
|
const sources = [];
|
24
|
-
Object.values(
|
26
|
+
Object.values(quotesRes.data.data || {}).forEach((coin) => {
|
25
27
|
const tokenConf = constants_2.cmcTokens.find((t) => t.slug === coin.slug);
|
26
28
|
if (!tokenConf)
|
27
29
|
return;
|
28
30
|
tokenConf.tokens.forEach((token) => {
|
29
31
|
sources.push({
|
30
32
|
address: token.mint,
|
31
|
-
id:
|
33
|
+
id: `${constants_2.platformId}-${coin.slug}`,
|
32
34
|
decimals: token.decimals,
|
33
35
|
networkId: token.networkId,
|
34
36
|
platformId: constants_1.walletTokensPlatform.id,
|
@@ -43,7 +45,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
45
|
const job = {
|
44
46
|
id: `${constants_2.platformId}-pricing`,
|
45
47
|
executor,
|
46
|
-
label: '
|
48
|
+
label: 'coingecko',
|
47
49
|
};
|
48
50
|
exports.default = job;
|
49
51
|
//# sourceMappingURL=pricingJob.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pricingJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/pricingJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA6C;AAC7C,mDAA2D;AAG3D,2CAAoD;
|
1
|
+
{"version":3,"file":"pricingJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/pricingJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA6C;AAC7C,mDAA2D;AAG3D,2CAAoD;AAGpD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvC,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEtD,MAAM,GAAG,GAAG,0EAA0E,qBAAS;SAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;IAEvE,MAAM,SAAS,GAA6B,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK,CAAC,IAAI;gBACnB,EAAE,EAAE,GAAG,sBAAU,IAAI,IAAI,CAAC,IAAI,EAAE;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,gCAAoB,CAAC,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,QAAQ;IACR,KAAK,EAAE,WAAW;CACnB,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { NetworkIdType } from '@sonarwatch/portfolio-core';
|
2
|
+
export type QuotesRes = {
|
3
|
+
data: {
|
4
|
+
[key: string]: {
|
5
|
+
slug: string;
|
6
|
+
quote: {
|
7
|
+
USD: {
|
8
|
+
price: number;
|
9
|
+
};
|
10
|
+
};
|
11
|
+
};
|
12
|
+
};
|
13
|
+
};
|
14
|
+
export type CmcToken = {
|
15
|
+
slug: string;
|
16
|
+
tokens: {
|
17
|
+
mint: string;
|
18
|
+
decimals: number;
|
19
|
+
networkId: NetworkIdType;
|
20
|
+
}[];
|
21
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/types.ts"],"names":[],"mappings":""}
|
@@ -8,19 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
12
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
17
13
|
const constants_1 = require("./constants");
|
18
14
|
const clients_1 = require("../../utils/clients");
|
19
15
|
const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
|
20
|
-
const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
|
21
|
-
const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
|
22
16
|
const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
|
23
17
|
const bitsToNumber_1 = require("../../utils/sui/bitsToNumber");
|
18
|
+
const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
|
24
19
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
25
20
|
const client = (0, clients_1.getClientSui)();
|
26
21
|
const positions = yield (0, getOwnedObjects_1.getOwnedObjects)(client, owner, {
|
@@ -41,11 +36,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
41
36
|
if ((_f = (_e = position.data) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.fields.pool_id)
|
42
37
|
poolsIds.add((_h = (_g = position.data) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.fields.pool_id);
|
43
38
|
});
|
44
|
-
const
|
45
|
-
|
46
|
-
(0, multiGetObjects_1.multiGetObjects)(client, Array.from(poolsIds.values())),
|
47
|
-
]);
|
48
|
-
const liquidities = [];
|
39
|
+
const pools = yield (0, multiGetObjects_1.multiGetObjects)(client, Array.from(poolsIds.values()));
|
40
|
+
const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
|
49
41
|
positions.forEach((position) => {
|
50
42
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
51
43
|
if (!((_b = (_a = position.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.liquidity))
|
@@ -55,41 +47,17 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
55
47
|
const pool = pools.find((p) => { var _a, _b, _c; return ((_a = p.data) === null || _a === void 0 ? void 0 : _a.objectId) === ((_c = (_b = position.data) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.fields.pool_id); });
|
56
48
|
if (!((_f = (_e = pool === null || pool === void 0 ? void 0 : pool.data) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.fields))
|
57
49
|
return;
|
58
|
-
const
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
.
|
66
|
-
const assetY = (0, tokenPriceToAssetToken_1.default)(tokenPriceY.address, tokenAmounts.tokenAmountB
|
67
|
-
.dividedBy(Math.pow(10, tokenPriceY.decimals))
|
68
|
-
.toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceY);
|
69
|
-
const value = (0, portfolio_core_1.getUsdValueSum)([assetX.value, assetY.value]);
|
70
|
-
liquidities.push({
|
71
|
-
assets: [assetX, assetY],
|
72
|
-
assetsValue: value,
|
73
|
-
rewardAssets: [],
|
74
|
-
rewardAssetsValue: null,
|
75
|
-
value,
|
76
|
-
yields: [],
|
50
|
+
const element = elementRegistry.addElementConcentratedLiquidity();
|
51
|
+
element.setLiquidity({
|
52
|
+
addressA: position.data.content.fields.coin_type_x.fields.name,
|
53
|
+
addressB: position.data.content.fields.coin_type_y.fields.name,
|
54
|
+
liquidity: (_h = (_g = position.data) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.fields.liquidity,
|
55
|
+
tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)((_k = (_j = pool === null || pool === void 0 ? void 0 : pool.data) === null || _j === void 0 ? void 0 : _j.content) === null || _k === void 0 ? void 0 : _k.fields.tick_index.fields.bits),
|
56
|
+
tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)((_m = (_l = position.data) === null || _l === void 0 ? void 0 : _l.content) === null || _m === void 0 ? void 0 : _m.fields.tick_lower_index.fields.bits),
|
57
|
+
tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)((_p = (_o = position.data) === null || _o === void 0 ? void 0 : _o.content) === null || _p === void 0 ? void 0 : _p.fields.tick_upper_index.fields.bits),
|
77
58
|
});
|
78
59
|
});
|
79
|
-
|
80
|
-
return [];
|
81
|
-
return [
|
82
|
-
{
|
83
|
-
type: portfolio_core_1.PortfolioElementType.liquidity,
|
84
|
-
networkId: portfolio_core_1.NetworkId.sui,
|
85
|
-
platformId: constants_1.platformId,
|
86
|
-
label: 'LiquidityPool',
|
87
|
-
value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((a) => a.value)),
|
88
|
-
data: {
|
89
|
-
liquidities,
|
90
|
-
},
|
91
|
-
},
|
92
|
-
];
|
60
|
+
return elementRegistry.getElements(cache);
|
93
61
|
});
|
94
62
|
const fetcher = {
|
95
63
|
id: `${constants_1.platformId}-staking-pool-v3`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stakingPoolV3Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/flowx/stakingPoolV3Fetcher.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"stakingPoolV3Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/flowx/stakingPoolV3Fetcher.ts"],"names":[],"mappings":"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"}
|
@@ -8,15 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
12
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
17
13
|
const constants_1 = require("./constants");
|
18
14
|
const clients_1 = require("../../utils/clients");
|
19
|
-
const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
|
20
15
|
const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
|
21
16
|
const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
|
22
17
|
const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
|
@@ -39,8 +34,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
39
34
|
return [];
|
40
35
|
const poolsIds = clmmPositions.map((position) => position.pool_id);
|
41
36
|
const poolsById = new Map();
|
42
|
-
const poolsObjects = yield
|
43
|
-
...new Set(poolsIds),
|
37
|
+
const [poolsObjects, poolsStats] = yield Promise.all([
|
38
|
+
(0, multiGetObjects_1.multiGetObjects)(client, [...new Set(poolsIds)]),
|
39
|
+
cache.getItem(constants_1.farmsStatsInfoKey, {
|
40
|
+
prefix: constants_1.platformId,
|
41
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
42
|
+
}),
|
44
43
|
]);
|
45
44
|
poolsObjects.forEach((poolObj) => {
|
46
45
|
var _a, _b, _c, _d;
|
@@ -50,25 +49,23 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
50
49
|
});
|
51
50
|
const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
|
52
51
|
clmmPositions.forEach((clmmPosition) => {
|
52
|
+
var _a;
|
53
53
|
const pool = poolsById.get(clmmPosition.pool_id);
|
54
54
|
if (!pool)
|
55
55
|
return;
|
56
|
-
const
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
amount: tokenAmountB,
|
56
|
+
const element = elementRegistry.addElementConcentratedLiquidity();
|
57
|
+
element.setLiquidity({
|
58
|
+
addressA: pool.type_x.fields.name,
|
59
|
+
addressB: pool.type_y.fields.name,
|
60
|
+
liquidity: clmmPosition.liquidity,
|
61
|
+
tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)(pool.tick_index.fields.bits),
|
62
|
+
tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits),
|
63
|
+
tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits),
|
64
|
+
currentSqrtPrice: pool.sqrt_price,
|
65
|
+
poolLiquidity: pool.liquidity,
|
66
|
+
feeRate: Number(pool.swap_fee_rate) / 10000,
|
67
|
+
swapVolume24h: (_a = (poolsStats || []).find((p) => p.pool_id === clmmPosition.pool_id)) === null || _a === void 0 ? void 0 : _a.volume_24h,
|
69
68
|
});
|
70
|
-
if (tokenAmountA.isZero() || tokenAmountB.isZero())
|
71
|
-
element.addTag('Out Of Range');
|
72
69
|
});
|
73
70
|
return elementRegistry.getElements(cache);
|
74
71
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kriya/clmmsFetcher.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kriya/clmmsFetcher.ts"],"names":[],"mappings":"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"}
|