@clober/v2-sdk 1.0.0-rc.24 → 1.0.0-rc.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/entities/analytics/apis/index.js +49 -2
- package/dist/cjs/entities/analytics/apis/index.js.map +1 -1
- package/dist/esm/entities/analytics/apis/index.js +49 -2
- package/dist/esm/entities/analytics/apis/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/entities/analytics/apis/index.d.ts.map +1 -1
- package/dist/types/entities/analytics/types.d.ts +5 -0
- package/dist/types/entities/analytics/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.fetchUserNativeVolume = exports.fetchTopUsersByNativeVolume = exports.fetchUserVolumeSnapshots = exports.fetchProtocolAnalytics = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const subgraph_1 = require("../../../constants/chain-configs/subgraph");
|
|
6
|
+
const bigint_1 = require("../../../utils/bigint");
|
|
6
7
|
const FUNCTION_SIG_MAP = {
|
|
7
8
|
'0x7d773110': 'Limit',
|
|
8
9
|
'0xfe815746': 'Limit',
|
|
@@ -18,6 +19,36 @@ const FUNCTION_SIG_MAP = {
|
|
|
18
19
|
};
|
|
19
20
|
async function fetchProtocolAnalytics(chainId) {
|
|
20
21
|
const { data: { cloberDayDatas }, } = await subgraph_1.Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount } tokenDayData { volumeUSD totalValueLockedUSD protocolFeesUSD token { id name symbol decimals priceUSD } } } }', {});
|
|
22
|
+
const { data: { pools }, } = await subgraph_1.Subgraph.get(chainId, 'getDailyPoolSnapshot', 'query getDailyPoolSnapshot { pools { id tokenA { id name symbol decimals tokenDayData(first: 1000, orderBy: date, orderDirection: desc) { date priceUSD } } tokenB { id name symbol decimals tokenDayData(first: 1000, orderBy: date, orderDirection: desc) { date priceUSD } } poolDayData(first: 1000, orderBy: date, orderDirection: desc) { date liquidityA liquidityB totalValueLockedUSD } } }', {});
|
|
23
|
+
const poolTvlMap = pools.reduce((acc, pool) => {
|
|
24
|
+
pool.poolDayData.forEach((poolDayData) => {
|
|
25
|
+
const date = poolDayData.date;
|
|
26
|
+
if (!acc[date]) {
|
|
27
|
+
acc[date] = {
|
|
28
|
+
usd: 0,
|
|
29
|
+
tvlMap: {},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
acc[date].usd += Number(poolDayData.totalValueLockedUSD);
|
|
33
|
+
const tokenA = (0, viem_1.getAddress)(pool.tokenA.id);
|
|
34
|
+
const tokenAPriceUSD = Number(pool.tokenA.tokenDayData.find((item) => item.date === date)
|
|
35
|
+
?.priceUSD ?? '0');
|
|
36
|
+
const tokenB = (0, viem_1.getAddress)(pool.tokenB.id);
|
|
37
|
+
const tokenBPriceUSD = Number(pool.tokenB.tokenDayData.find((item) => item.date === date)
|
|
38
|
+
?.priceUSD ?? '0');
|
|
39
|
+
if (!acc[date].tvlMap[tokenA]) {
|
|
40
|
+
acc[date].tvlMap[tokenA] = 0;
|
|
41
|
+
}
|
|
42
|
+
if (!acc[date].tvlMap[tokenB]) {
|
|
43
|
+
acc[date].tvlMap[tokenB] = 0;
|
|
44
|
+
}
|
|
45
|
+
acc[date].tvlMap[tokenA] +=
|
|
46
|
+
(0, bigint_1.convertTokenToDecimal)(BigInt(poolDayData.liquidityA), Number(pool.tokenA.decimals)) * tokenAPriceUSD;
|
|
47
|
+
acc[date].tvlMap[tokenB] +=
|
|
48
|
+
(0, bigint_1.convertTokenToDecimal)(BigInt(poolDayData.liquidityB), Number(pool.tokenB.decimals)) * tokenBPriceUSD;
|
|
49
|
+
});
|
|
50
|
+
return acc;
|
|
51
|
+
}, {});
|
|
21
52
|
const analyticsSnapshots = cloberDayDatas.map((item) => ({
|
|
22
53
|
timestamp: item.date,
|
|
23
54
|
activeUsers: Number(item.walletCount),
|
|
@@ -52,7 +83,21 @@ async function fetchProtocolAnalytics(chainId) {
|
|
|
52
83
|
usd: Number(token.protocolFeesUSD),
|
|
53
84
|
},
|
|
54
85
|
])),
|
|
55
|
-
|
|
86
|
+
poolTotalValueLockedUSD: poolTvlMap?.[item.date]?.usd ?? 0,
|
|
87
|
+
poolTotalValueLockedUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
|
|
88
|
+
(0, viem_1.getAddress)(token.token.id),
|
|
89
|
+
{
|
|
90
|
+
currency: {
|
|
91
|
+
address: (0, viem_1.getAddress)(token.token.id),
|
|
92
|
+
name: token.token.name,
|
|
93
|
+
symbol: token.token.symbol,
|
|
94
|
+
decimals: Number(token.token.decimals),
|
|
95
|
+
},
|
|
96
|
+
usd: Number(poolTvlMap?.[item.date]?.tvlMap?.[(0, viem_1.getAddress)(token.token.id)] ?? 0),
|
|
97
|
+
},
|
|
98
|
+
])),
|
|
99
|
+
totalValueLockedUSD: (poolTvlMap?.[item.date]?.usd ?? 0) +
|
|
100
|
+
item.tokenDayData.reduce((acc, token) => acc + Number(token.totalValueLockedUSD), 0),
|
|
56
101
|
totalValueLockedUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
|
|
57
102
|
(0, viem_1.getAddress)(token.token.id),
|
|
58
103
|
{
|
|
@@ -62,7 +107,9 @@ async function fetchProtocolAnalytics(chainId) {
|
|
|
62
107
|
symbol: token.token.symbol,
|
|
63
108
|
decimals: Number(token.token.decimals),
|
|
64
109
|
},
|
|
65
|
-
usd: Number(token.totalValueLockedUSD)
|
|
110
|
+
usd: Number(token.totalValueLockedUSD) +
|
|
111
|
+
Number(poolTvlMap?.[item.date]?.tvlMap?.[(0, viem_1.getAddress)(token.token.id)] ??
|
|
112
|
+
0),
|
|
66
113
|
},
|
|
67
114
|
])),
|
|
68
115
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAGjC,wEAAoE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getAddress } from 'viem';
|
|
2
2
|
import { Subgraph } from '../../../constants/chain-configs/subgraph';
|
|
3
|
+
import { convertTokenToDecimal } from '../../../utils/bigint';
|
|
3
4
|
const FUNCTION_SIG_MAP = {
|
|
4
5
|
'0x7d773110': 'Limit',
|
|
5
6
|
'0xfe815746': 'Limit',
|
|
@@ -15,6 +16,36 @@ const FUNCTION_SIG_MAP = {
|
|
|
15
16
|
};
|
|
16
17
|
export async function fetchProtocolAnalytics(chainId) {
|
|
17
18
|
const { data: { cloberDayDatas }, } = await Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount } tokenDayData { volumeUSD totalValueLockedUSD protocolFeesUSD token { id name symbol decimals priceUSD } } } }', {});
|
|
19
|
+
const { data: { pools }, } = await Subgraph.get(chainId, 'getDailyPoolSnapshot', 'query getDailyPoolSnapshot { pools { id tokenA { id name symbol decimals tokenDayData(first: 1000, orderBy: date, orderDirection: desc) { date priceUSD } } tokenB { id name symbol decimals tokenDayData(first: 1000, orderBy: date, orderDirection: desc) { date priceUSD } } poolDayData(first: 1000, orderBy: date, orderDirection: desc) { date liquidityA liquidityB totalValueLockedUSD } } }', {});
|
|
20
|
+
const poolTvlMap = pools.reduce((acc, pool) => {
|
|
21
|
+
pool.poolDayData.forEach((poolDayData) => {
|
|
22
|
+
const date = poolDayData.date;
|
|
23
|
+
if (!acc[date]) {
|
|
24
|
+
acc[date] = {
|
|
25
|
+
usd: 0,
|
|
26
|
+
tvlMap: {},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
acc[date].usd += Number(poolDayData.totalValueLockedUSD);
|
|
30
|
+
const tokenA = getAddress(pool.tokenA.id);
|
|
31
|
+
const tokenAPriceUSD = Number(pool.tokenA.tokenDayData.find((item) => item.date === date)
|
|
32
|
+
?.priceUSD ?? '0');
|
|
33
|
+
const tokenB = getAddress(pool.tokenB.id);
|
|
34
|
+
const tokenBPriceUSD = Number(pool.tokenB.tokenDayData.find((item) => item.date === date)
|
|
35
|
+
?.priceUSD ?? '0');
|
|
36
|
+
if (!acc[date].tvlMap[tokenA]) {
|
|
37
|
+
acc[date].tvlMap[tokenA] = 0;
|
|
38
|
+
}
|
|
39
|
+
if (!acc[date].tvlMap[tokenB]) {
|
|
40
|
+
acc[date].tvlMap[tokenB] = 0;
|
|
41
|
+
}
|
|
42
|
+
acc[date].tvlMap[tokenA] +=
|
|
43
|
+
convertTokenToDecimal(BigInt(poolDayData.liquidityA), Number(pool.tokenA.decimals)) * tokenAPriceUSD;
|
|
44
|
+
acc[date].tvlMap[tokenB] +=
|
|
45
|
+
convertTokenToDecimal(BigInt(poolDayData.liquidityB), Number(pool.tokenB.decimals)) * tokenBPriceUSD;
|
|
46
|
+
});
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
18
49
|
const analyticsSnapshots = cloberDayDatas.map((item) => ({
|
|
19
50
|
timestamp: item.date,
|
|
20
51
|
activeUsers: Number(item.walletCount),
|
|
@@ -49,7 +80,21 @@ export async function fetchProtocolAnalytics(chainId) {
|
|
|
49
80
|
usd: Number(token.protocolFeesUSD),
|
|
50
81
|
},
|
|
51
82
|
])),
|
|
52
|
-
|
|
83
|
+
poolTotalValueLockedUSD: poolTvlMap?.[item.date]?.usd ?? 0,
|
|
84
|
+
poolTotalValueLockedUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
|
|
85
|
+
getAddress(token.token.id),
|
|
86
|
+
{
|
|
87
|
+
currency: {
|
|
88
|
+
address: getAddress(token.token.id),
|
|
89
|
+
name: token.token.name,
|
|
90
|
+
symbol: token.token.symbol,
|
|
91
|
+
decimals: Number(token.token.decimals),
|
|
92
|
+
},
|
|
93
|
+
usd: Number(poolTvlMap?.[item.date]?.tvlMap?.[getAddress(token.token.id)] ?? 0),
|
|
94
|
+
},
|
|
95
|
+
])),
|
|
96
|
+
totalValueLockedUSD: (poolTvlMap?.[item.date]?.usd ?? 0) +
|
|
97
|
+
item.tokenDayData.reduce((acc, token) => acc + Number(token.totalValueLockedUSD), 0),
|
|
53
98
|
totalValueLockedUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
|
|
54
99
|
getAddress(token.token.id),
|
|
55
100
|
{
|
|
@@ -59,7 +104,9 @@ export async function fetchProtocolAnalytics(chainId) {
|
|
|
59
104
|
symbol: token.token.symbol,
|
|
60
105
|
decimals: Number(token.token.decimals),
|
|
61
106
|
},
|
|
62
|
-
usd: Number(token.totalValueLockedUSD)
|
|
107
|
+
usd: Number(token.totalValueLockedUSD) +
|
|
108
|
+
Number(poolTvlMap?.[item.date]?.tvlMap?.[getAddress(token.token.id)] ??
|
|
109
|
+
0),
|
|
63
110
|
},
|
|
64
111
|
])),
|
|
65
112
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"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"}
|