@clober/v2-sdk 1.0.0-rc.4 → 1.0.0-rc.6
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 +7 -7
- package/dist/cjs/entities/analytics/apis/index.js.map +1 -1
- package/dist/cjs/entities/book/apis/index.js +38 -12
- package/dist/cjs/entities/book/apis/index.js.map +1 -1
- package/dist/esm/entities/analytics/apis/index.js +7 -7
- package/dist/esm/entities/analytics/apis/index.js.map +1 -1
- package/dist/esm/entities/book/apis/index.js +38 -12
- package/dist/esm/entities/book/apis/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/entities/book/apis/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/entities/book/apis/open.js +0 -46
- package/dist/cjs/entities/book/apis/open.js.map +0 -1
- package/dist/esm/entities/book/apis/open.js +0 -42
- package/dist/esm/entities/book/apis/open.js.map +0 -1
- package/dist/types/entities/book/apis/open.d.ts +0 -4
- package/dist/types/entities/book/apis/open.d.ts.map +0 -1
|
@@ -17,7 +17,7 @@ const FUNCTION_SIG_MAP = {
|
|
|
17
17
|
'0xf4dfd83a': 'unknown',
|
|
18
18
|
};
|
|
19
19
|
async function fetchProtocolAnalytics(chainId) {
|
|
20
|
-
const { data: { cloberDayDatas }, } = await subgraph_1.Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount }
|
|
20
|
+
const { data: { cloberDayDatas }, } = await subgraph_1.Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount } tokenDayDatas { volumeUSD totalValueLockedUSD protocolFeesUSD token { id name symbol decimals priceUSD } } } }', {});
|
|
21
21
|
const analyticsSnapshots = cloberDayDatas.map((item) => ({
|
|
22
22
|
timestamp: item.date,
|
|
23
23
|
activeUsers: Number(item.walletCount),
|
|
@@ -26,8 +26,8 @@ async function fetchProtocolAnalytics(chainId) {
|
|
|
26
26
|
FUNCTION_SIG_MAP[transactionType.type] ?? 'unknown',
|
|
27
27
|
Number(transactionType.txCount),
|
|
28
28
|
])),
|
|
29
|
-
volume24hUSD: item.
|
|
30
|
-
volume24hUSDMap: Object.fromEntries(item.
|
|
29
|
+
volume24hUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.volumeUSD), 0),
|
|
30
|
+
volume24hUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
31
31
|
(0, viem_1.getAddress)(token.token.id),
|
|
32
32
|
{
|
|
33
33
|
currency: {
|
|
@@ -39,8 +39,8 @@ async function fetchProtocolAnalytics(chainId) {
|
|
|
39
39
|
usd: Number(token.volumeUSD),
|
|
40
40
|
},
|
|
41
41
|
])),
|
|
42
|
-
protocolFees24hUSD: item.
|
|
43
|
-
protocolFees24hUSDMap: Object.fromEntries(item.
|
|
42
|
+
protocolFees24hUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.protocolFeesUSD), 0),
|
|
43
|
+
protocolFees24hUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
44
44
|
(0, viem_1.getAddress)(token.token.id),
|
|
45
45
|
{
|
|
46
46
|
currency: {
|
|
@@ -52,8 +52,8 @@ async function fetchProtocolAnalytics(chainId) {
|
|
|
52
52
|
usd: Number(token.protocolFeesUSD),
|
|
53
53
|
},
|
|
54
54
|
])),
|
|
55
|
-
totalValueLockedUSD: item.
|
|
56
|
-
totalValueLockedUSDMap: Object.fromEntries(item.
|
|
55
|
+
totalValueLockedUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.totalValueLockedUSD), 0),
|
|
56
|
+
totalValueLockedUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
57
57
|
(0, viem_1.getAddress)(token.token.id),
|
|
58
58
|
{
|
|
59
59
|
currency: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAGjC,wEAAoE;AAuCpE,MAAM,gBAAgB,GAAoC;IACxD,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;CACxB,CAAA;AAEM,KAAK,UAAU,sBAAsB,CAC1C,OAAkB;IAElB,MAAM,EACJ,IAAI,EAAE,EAAE,cAAc,EAAE,GACzB,GAAG,MAAM,mBAAQ,CAAC,GAAG,CAKpB,OAAO,EACP,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ const book_viewer_abi_1 = require("../../../constants/abis/core/book-viewer-abi"
|
|
|
7
7
|
const subgraph_1 = require("../../../constants/chain-configs/subgraph");
|
|
8
8
|
const book_id_1 = require("../utils/book-id");
|
|
9
9
|
const model_1 = require("../model");
|
|
10
|
-
const open_1 = require("./open");
|
|
11
10
|
const fetchBook = async (publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph, n) => {
|
|
12
11
|
const unitSize = (0, unit_size_1.calculateUnitSize)(chainId, quoteCurrency);
|
|
13
12
|
const bookId = (0, book_id_1.toBookId)(chainId, quoteCurrency.address, baseCurrency.address, unitSize);
|
|
@@ -30,26 +29,53 @@ const fetchBook = async (publicClient, chainId, quoteCurrency, baseCurrency, use
|
|
|
30
29
|
isOpened: book !== null,
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
|
-
const [depths, isOpened] = await
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
const [{ result: depths }, { result: isOpened }] = await publicClient.multicall({
|
|
33
|
+
contracts: [
|
|
34
|
+
{
|
|
35
|
+
address: addresses_1.CONTRACT_ADDRESSES[chainId].BookViewer,
|
|
36
|
+
abi: book_viewer_abi_1.BOOK_VIEWER_ABI,
|
|
37
|
+
functionName: 'getLiquidity',
|
|
38
|
+
args: [bookId, Number(2n ** 19n - 1n), BigInt(n)],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
address: addresses_1.CONTRACT_ADDRESSES[chainId].BookManager,
|
|
42
|
+
abi: [
|
|
43
|
+
{
|
|
44
|
+
inputs: [
|
|
45
|
+
{
|
|
46
|
+
internalType: 'BookId',
|
|
47
|
+
name: 'id',
|
|
48
|
+
type: 'uint192',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
name: 'isOpened',
|
|
52
|
+
outputs: [
|
|
53
|
+
{
|
|
54
|
+
internalType: 'bool',
|
|
55
|
+
name: '',
|
|
56
|
+
type: 'bool',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
stateMutability: 'view',
|
|
60
|
+
type: 'function',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
functionName: 'isOpened',
|
|
64
|
+
args: [bookId],
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
42
68
|
return new model_1.BookModel({
|
|
43
69
|
chainId,
|
|
44
70
|
id: bookId,
|
|
45
71
|
base: baseCurrency,
|
|
46
72
|
quote: quoteCurrency,
|
|
47
73
|
unitSize,
|
|
48
|
-
depths: depths.map(({ tick, depth }) => ({
|
|
74
|
+
depths: (depths ?? []).map(({ tick, depth }) => ({
|
|
49
75
|
tick: BigInt(tick),
|
|
50
76
|
unitAmount: depth,
|
|
51
77
|
})),
|
|
52
|
-
isOpened,
|
|
78
|
+
isOpened: isOpened ?? false,
|
|
53
79
|
});
|
|
54
80
|
};
|
|
55
81
|
exports.fetchBook = fetchBook;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/index.ts"],"names":[],"mappings":";;;AAIA,wDAA4D;AAC5D,0EAA+E;AAC/E,kFAA8E;AAC9E,wEAAoE;AACpE,8CAA2C;AAC3C,oCAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const FUNCTION_SIG_MAP = {
|
|
|
14
14
|
'0xf4dfd83a': 'unknown', // arbitrage
|
|
15
15
|
};
|
|
16
16
|
export async function fetchProtocolAnalytics(chainId) {
|
|
17
|
-
const { data: { cloberDayDatas }, } = await Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount }
|
|
17
|
+
const { data: { cloberDayDatas }, } = await Subgraph.get(chainId, 'getDailyCloberSnapshot', 'query getDailyCloberSnapshot { cloberDayDatas(orderBy: date, orderDirection: asc) { date walletCount newWalletCount transactionTypes { type txCount } tokenDayDatas { volumeUSD totalValueLockedUSD protocolFeesUSD token { id name symbol decimals priceUSD } } } }', {});
|
|
18
18
|
const analyticsSnapshots = cloberDayDatas.map((item) => ({
|
|
19
19
|
timestamp: item.date,
|
|
20
20
|
activeUsers: Number(item.walletCount),
|
|
@@ -23,8 +23,8 @@ export async function fetchProtocolAnalytics(chainId) {
|
|
|
23
23
|
FUNCTION_SIG_MAP[transactionType.type] ?? 'unknown',
|
|
24
24
|
Number(transactionType.txCount),
|
|
25
25
|
])),
|
|
26
|
-
volume24hUSD: item.
|
|
27
|
-
volume24hUSDMap: Object.fromEntries(item.
|
|
26
|
+
volume24hUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.volumeUSD), 0),
|
|
27
|
+
volume24hUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
28
28
|
getAddress(token.token.id),
|
|
29
29
|
{
|
|
30
30
|
currency: {
|
|
@@ -36,8 +36,8 @@ export async function fetchProtocolAnalytics(chainId) {
|
|
|
36
36
|
usd: Number(token.volumeUSD),
|
|
37
37
|
},
|
|
38
38
|
])),
|
|
39
|
-
protocolFees24hUSD: item.
|
|
40
|
-
protocolFees24hUSDMap: Object.fromEntries(item.
|
|
39
|
+
protocolFees24hUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.protocolFeesUSD), 0),
|
|
40
|
+
protocolFees24hUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
41
41
|
getAddress(token.token.id),
|
|
42
42
|
{
|
|
43
43
|
currency: {
|
|
@@ -49,8 +49,8 @@ export async function fetchProtocolAnalytics(chainId) {
|
|
|
49
49
|
usd: Number(token.protocolFeesUSD),
|
|
50
50
|
},
|
|
51
51
|
])),
|
|
52
|
-
totalValueLockedUSD: item.
|
|
53
|
-
totalValueLockedUSDMap: Object.fromEntries(item.
|
|
52
|
+
totalValueLockedUSD: item.tokenDayDatas.reduce((acc, token) => acc + Number(token.totalValueLockedUSD), 0),
|
|
53
|
+
totalValueLockedUSDMap: Object.fromEntries(item.tokenDayDatas.map((token) => [
|
|
54
54
|
getAddress(token.token.id),
|
|
55
55
|
{
|
|
56
56
|
currency: {
|
|
@@ -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;AAuCpE,MAAM,gBAAgB,GAAoC;IACxD,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,OAAO;IACrB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,SAAS,EAAE,kBAAkB;IAC3C,YAAY,EAAE,SAAS,EAAE,QAAQ;IACjC,YAAY,EAAE,SAAS,EAAE,YAAY;CACtC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAkB;IAElB,MAAM,EACJ,IAAI,EAAE,EAAE,cAAc,EAAE,GACzB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAKpB,OAAO,EACP,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import { BOOK_VIEWER_ABI } from '../../../constants/abis/core/book-viewer-abi';
|
|
|
4
4
|
import { Subgraph } from '../../../constants/chain-configs/subgraph';
|
|
5
5
|
import { toBookId } from '../utils/book-id';
|
|
6
6
|
import { BookModel } from '../model';
|
|
7
|
-
import { fetchIsMarketOpened } from './open';
|
|
8
7
|
export const fetchBook = async (publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph, n) => {
|
|
9
8
|
const unitSize = calculateUnitSize(chainId, quoteCurrency);
|
|
10
9
|
const bookId = toBookId(chainId, quoteCurrency.address, baseCurrency.address, unitSize);
|
|
@@ -27,26 +26,53 @@ export const fetchBook = async (publicClient, chainId, quoteCurrency, baseCurren
|
|
|
27
26
|
isOpened: book !== null,
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
|
-
const [depths, isOpened] = await
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
29
|
+
const [{ result: depths }, { result: isOpened }] = await publicClient.multicall({
|
|
30
|
+
contracts: [
|
|
31
|
+
{
|
|
32
|
+
address: CONTRACT_ADDRESSES[chainId].BookViewer,
|
|
33
|
+
abi: BOOK_VIEWER_ABI,
|
|
34
|
+
functionName: 'getLiquidity',
|
|
35
|
+
args: [bookId, Number(2n ** 19n - 1n), BigInt(n)],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
address: CONTRACT_ADDRESSES[chainId].BookManager,
|
|
39
|
+
abi: [
|
|
40
|
+
{
|
|
41
|
+
inputs: [
|
|
42
|
+
{
|
|
43
|
+
internalType: 'BookId',
|
|
44
|
+
name: 'id',
|
|
45
|
+
type: 'uint192',
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
name: 'isOpened',
|
|
49
|
+
outputs: [
|
|
50
|
+
{
|
|
51
|
+
internalType: 'bool',
|
|
52
|
+
name: '',
|
|
53
|
+
type: 'bool',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
stateMutability: 'view',
|
|
57
|
+
type: 'function',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
functionName: 'isOpened',
|
|
61
|
+
args: [bookId],
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
});
|
|
39
65
|
return new BookModel({
|
|
40
66
|
chainId,
|
|
41
67
|
id: bookId,
|
|
42
68
|
base: baseCurrency,
|
|
43
69
|
quote: quoteCurrency,
|
|
44
70
|
unitSize,
|
|
45
|
-
depths: depths.map(({ tick, depth }) => ({
|
|
71
|
+
depths: (depths ?? []).map(({ tick, depth }) => ({
|
|
46
72
|
tick: BigInt(tick),
|
|
47
73
|
unitAmount: depth,
|
|
48
74
|
})),
|
|
49
|
-
isOpened,
|
|
75
|
+
isOpened: isOpened ?? false,
|
|
50
76
|
});
|
|
51
77
|
};
|
|
52
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/index.ts"],"names":[],"mappings":"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"}
|