@clober/v2-sdk 1.0.0-beta.7 → 1.0.0-beta.9
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/constants/chain-configs/subgraph.js +42 -13
- package/dist/cjs/constants/chain-configs/subgraph.js.map +1 -1
- package/dist/cjs/views/index.js +2 -1
- package/dist/cjs/views/index.js.map +1 -1
- package/dist/cjs/views/subgraph.js +5 -1
- package/dist/cjs/views/subgraph.js.map +1 -1
- package/dist/esm/constants/chain-configs/subgraph.js +41 -12
- package/dist/esm/constants/chain-configs/subgraph.js.map +1 -1
- package/dist/esm/views/index.js +1 -1
- package/dist/esm/views/index.js.map +1 -1
- package/dist/esm/views/subgraph.js +16 -1
- package/dist/esm/views/subgraph.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/constants/chain-configs/subgraph.d.ts +3 -0
- package/dist/types/constants/chain-configs/subgraph.d.ts.map +1 -1
- package/dist/types/views/index.d.ts +1 -1
- package/dist/types/views/index.d.ts.map +1 -1
- package/dist/types/views/subgraph.d.ts +15 -0
- package/dist/types/views/subgraph.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Subgraph = exports.SUBGRAPH_URL = void 0;
|
|
3
|
+
exports.Subgraph = exports.FALLBACK_SUBGRAPH_URL = exports.SUBGRAPH_URL = void 0;
|
|
4
4
|
const axios_1 = require("axios");
|
|
5
5
|
const chain_1 = require("./chain");
|
|
6
6
|
exports.SUBGRAPH_URL = {
|
|
@@ -12,24 +12,53 @@ exports.SUBGRAPH_URL = {
|
|
|
12
12
|
[chain_1.CHAIN_IDS.MONAD_TESTNET]: 'https://api.goldsky.com/api/public/project_clsljw95chutg01w45cio46j0/subgraphs/v2-subgraph-monad-testnet/latest/gn',
|
|
13
13
|
[chain_1.CHAIN_IDS.MONAD_MAINNET]: 'https://api.subgraph.ormilabs.com/api/public/27ad58eb-e12c-4b7b-8df8-0560d8e26b37/subgraphs/v2-subgraph-monad/latest/gn',
|
|
14
14
|
};
|
|
15
|
+
exports.FALLBACK_SUBGRAPH_URL = {
|
|
16
|
+
[chain_1.CHAIN_IDS.MONAD_MAINNET]: 'https://api.goldsky.com/api/public/project_clsljw95chutg01w45cio46j0/subgraphs/v2-subgraph-monad/latest/gn',
|
|
17
|
+
};
|
|
15
18
|
class Subgraph {
|
|
16
19
|
static async get(chainId, operationName, query, variables) {
|
|
17
|
-
|
|
20
|
+
const timeout = 5000;
|
|
21
|
+
const primary = exports.SUBGRAPH_URL[chainId];
|
|
22
|
+
const fallback = exports.FALLBACK_SUBGRAPH_URL[chainId];
|
|
23
|
+
if (!primary) {
|
|
18
24
|
throw new Error('Unsupported chain for subgraph');
|
|
19
25
|
}
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const safePost = async (url) => {
|
|
27
|
+
try {
|
|
28
|
+
const res = await axios_1.default.post(url, { query, variables, operationName }, {
|
|
29
|
+
timeout,
|
|
30
|
+
validateStatus: () => true,
|
|
31
|
+
});
|
|
32
|
+
return { ok: true, status: res.status, data: res.data };
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
return {
|
|
36
|
+
ok: false,
|
|
37
|
+
status: null,
|
|
38
|
+
error: err.message || 'Network error',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const primaryRes = await safePost(primary);
|
|
43
|
+
if (!primaryRes.ok) {
|
|
44
|
+
throw new Error(`Network error: ${primaryRes.error}`);
|
|
45
|
+
}
|
|
46
|
+
if (primaryRes.status === 200) {
|
|
47
|
+
return primaryRes.data;
|
|
29
48
|
}
|
|
30
|
-
|
|
31
|
-
|
|
49
|
+
if (primaryRes.status === 429 && fallback) {
|
|
50
|
+
const fallbackRes = await safePost(fallback);
|
|
51
|
+
if (!fallbackRes.ok) {
|
|
52
|
+
throw new Error(`Fallback network error: ${fallbackRes.error}`);
|
|
53
|
+
}
|
|
54
|
+
if (fallbackRes.status === 200) {
|
|
55
|
+
return fallbackRes.data;
|
|
56
|
+
}
|
|
57
|
+
throw new Error(fallbackRes.data?.errors ||
|
|
58
|
+
`Fallback failed with status ${fallbackRes.status}`);
|
|
32
59
|
}
|
|
60
|
+
throw new Error(primaryRes.data?.errors ||
|
|
61
|
+
`Failed with status ${primaryRes.status}`);
|
|
33
62
|
}
|
|
34
63
|
}
|
|
35
64
|
exports.Subgraph = Subgraph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/subgraph.ts"],"names":[],"mappings":";;;AAAA,iCAAyB;AAEzB,mCAAmC;AAEtB,QAAA,YAAY,GAErB;IACF,CAAC,iBAAS,CAAC,cAAc,CAAC,EACxB,wFAAwF;IAC1F,CAAC,iBAAS,CAAC,gBAAgB,CAAC,EAC1B,wFAAwF;IAG1F,CAAC,iBAAS,CAAC,iBAAiB,CAAC,EAC3B,yFAAyF;IAC3F,CAAC,iBAAS,CAAC,YAAY,CAAC,EACtB,mHAAmH;IACrH,CAAC,iBAAS,CAAC,YAAY,CAAC,EACtB,qEAAqE;IACvE,CAAC,iBAAS,CAAC,aAAa,CAAC,EACvB,oHAAoH;IACtH,CAAC,iBAAS,CAAC,aAAa,CAAC,EACvB,yHAAyH;CAG5H,CAAA;AAED,MAAa,QAAQ;IACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,OAAkB,EAClB,aAAqB,EACrB,KAAa,EACb,SAAa;QAEb,IAAI,
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/subgraph.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/views/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUserNativeVolume = exports.getTopUsersByNativeVolume = exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getStableCurrencies = exports.getCurrencies = exports.getReferenceCurrency = exports.getNativeCurrency = exports.getContractAddresses = exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.getLatestTrades = exports.getLpWrappedERC20Address = exports.getLastAmounts = exports.getStrategyPrice = exports.getUserPoolPositions = exports.getPoolSnapshots = exports.getPoolSnapshot = exports.getPool = exports.parseMakeOrderIdsFromReceipt = exports.getQuoteToken = exports.getMarketSnapshot = exports.getMarketSnapshots = exports.getExpectedInput = exports.getExpectedOutput = exports.getLatestChartLog = exports.getChartLogs = exports.getMarket = void 0;
|
|
3
|
+
exports.getUserNativeVolume = exports.getTopUsersByNativeVolume = exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getStableCurrencies = exports.getCurrencies = exports.getReferenceCurrency = exports.getNativeCurrency = exports.getContractAddresses = exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getFallbackSubgraphEndpoint = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.getLatestTrades = exports.getLpWrappedERC20Address = exports.getLastAmounts = exports.getStrategyPrice = exports.getUserPoolPositions = exports.getPoolSnapshots = exports.getPoolSnapshot = exports.getPool = exports.parseMakeOrderIdsFromReceipt = exports.getQuoteToken = exports.getMarketSnapshot = exports.getMarketSnapshots = exports.getExpectedInput = exports.getExpectedOutput = exports.getLatestChartLog = exports.getChartLogs = exports.getMarket = void 0;
|
|
4
4
|
var market_1 = require("./market");
|
|
5
5
|
Object.defineProperty(exports, "getMarket", { enumerable: true, get: function () { return market_1.getMarket; } });
|
|
6
6
|
Object.defineProperty(exports, "getChartLogs", { enumerable: true, get: function () { return market_1.getChartLogs; } });
|
|
@@ -28,6 +28,7 @@ Object.defineProperty(exports, "getOpenOrder", { enumerable: true, get: function
|
|
|
28
28
|
Object.defineProperty(exports, "getOpenOrders", { enumerable: true, get: function () { return open_order_1.getOpenOrders; } });
|
|
29
29
|
var subgraph_1 = require("./subgraph");
|
|
30
30
|
Object.defineProperty(exports, "getSubgraphEndpoint", { enumerable: true, get: function () { return subgraph_1.getSubgraphEndpoint; } });
|
|
31
|
+
Object.defineProperty(exports, "getFallbackSubgraphEndpoint", { enumerable: true, get: function () { return subgraph_1.getFallbackSubgraphEndpoint; } });
|
|
31
32
|
Object.defineProperty(exports, "getSubgraphBlockNumber", { enumerable: true, get: function () { return subgraph_1.getSubgraphBlockNumber; } });
|
|
32
33
|
Object.defineProperty(exports, "getSubgraphBlock", { enumerable: true, get: function () { return subgraph_1.getSubgraphBlock; } });
|
|
33
34
|
var address_1 = require("./address");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCAUiB;AATf,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sHAAA,4BAA4B,OAAA;AAE9B,+BAQe;AAPb,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,wGAAA,gBAAgB,OAAA;AAChB,4GAAA,oBAAoB,OAAA;AACpB,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AACd,gHAAA,wBAAwB,OAAA;AAE1B,iCAAyC;AAAhC,wGAAA,eAAe,OAAA;AAExB,+BAA6C;AAApC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA0D;AAAjD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCAUiB;AATf,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sHAAA,4BAA4B,OAAA;AAE9B,+BAQe;AAPb,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,wGAAA,gBAAgB,OAAA;AAChB,4GAAA,oBAAoB,OAAA;AACpB,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AACd,gHAAA,wBAAwB,OAAA;AAE1B,iCAAyC;AAAhC,wGAAA,eAAe,OAAA;AAExB,+BAA6C;AAApC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA0D;AAAjD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,uCAKmB;AAJjB,+GAAA,mBAAmB,OAAA;AACnB,uHAAA,2BAA2B,OAAA;AAC3B,kHAAA,sBAAsB,OAAA;AACtB,4GAAA,gBAAgB,OAAA;AAElB,qCAAgD;AAAvC,+GAAA,oBAAoB,OAAA;AAC7B,uCAOmB;AANjB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AACpB,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AAEvB,yCAKoB;AAJlB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sHAAA,yBAAyB,OAAA;AACzB,gHAAA,mBAAmB,OAAA"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = void 0;
|
|
3
|
+
exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getFallbackSubgraphEndpoint = exports.getSubgraphEndpoint = void 0;
|
|
4
4
|
const subgraph_1 = require("../constants/chain-configs/subgraph");
|
|
5
5
|
const getSubgraphEndpoint = ({ chainId }) => {
|
|
6
6
|
return subgraph_1.SUBGRAPH_URL[chainId];
|
|
7
7
|
};
|
|
8
8
|
exports.getSubgraphEndpoint = getSubgraphEndpoint;
|
|
9
|
+
const getFallbackSubgraphEndpoint = ({ chainId, }) => {
|
|
10
|
+
return subgraph_1.FALLBACK_SUBGRAPH_URL[chainId];
|
|
11
|
+
};
|
|
12
|
+
exports.getFallbackSubgraphEndpoint = getFallbackSubgraphEndpoint;
|
|
9
13
|
const getSubgraphBlockNumber = async ({ chainId, }) => {
|
|
10
14
|
const { data: { _meta: { block: { number: blockNumber }, }, }, } = await subgraph_1.Subgraph.get(chainId, 'getLatestBlockNumber', 'query getLatestBlockNumber { _meta { block { number } } }', {});
|
|
11
15
|
return blockNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/views/subgraph.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/views/subgraph.ts"],"names":[],"mappings":";;;AACA,kEAI4C;AAcrC,MAAM,mBAAmB,GAAG,CAAC,EAAE,OAAO,EAA0B,EAAE,EAAE;IACzE,OAAO,uBAAY,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,CAAA;AAFY,QAAA,mBAAmB,uBAE/B;AAcM,MAAM,2BAA2B,GAAG,CAAC,EAC1C,OAAO,GAGR,EAAE,EAAE;IACH,OAAO,gCAAqB,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC,CAAA;AANY,QAAA,2BAA2B,+BAMvC;AAcM,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,OAAO,GAGR,EAAE,EAAE;IACH,MAAM,EACJ,IAAI,EAAE,EACJ,KAAK,EAAE,EACL,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAC/B,GACF,GACF,GAAG,MAAM,mBAAQ,CAAC,GAAG,CAOpB,OAAO,EACP,sBAAsB,EACtB,2DAA2D,EAC3D,EAAE,CACH,CAAA;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAxBY,QAAA,sBAAsB,0BAwBlC;AAcM,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAE,OAAO,EAA0B,EAAE,EAAE;IAC5E,MAAM,EACJ,IAAI,EAAE,EACJ,KAAK,EAAE,EACL,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAC5D,GACF,GACF,GAAG,MAAM,mBAAQ,CAAC,GAAG,CAYpB,OAAO,EACP,gBAAgB,EAChB,+EAA+E,EAC/E,EAAE,CACH,CAAA;IACD,OAAO;QACL,WAAW;QACX,IAAI;QACJ,SAAS;QACT,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AA9BY,QAAA,gBAAgB,oBA8B5B"}
|
|
@@ -13,24 +13,53 @@ export const SUBGRAPH_URL = {
|
|
|
13
13
|
// [CHAIN_IDS.SONIC_MAINNET]:
|
|
14
14
|
// 'https://subgraph.satsuma-prod.com/f6a8c4889b7b/clober/v2-core-subgraph-sonic-mainnet/api',
|
|
15
15
|
};
|
|
16
|
+
export const FALLBACK_SUBGRAPH_URL = {
|
|
17
|
+
[CHAIN_IDS.MONAD_MAINNET]: 'https://api.goldsky.com/api/public/project_clsljw95chutg01w45cio46j0/subgraphs/v2-subgraph-monad/latest/gn',
|
|
18
|
+
};
|
|
16
19
|
export class Subgraph {
|
|
17
20
|
static async get(chainId, operationName, query, variables) {
|
|
18
|
-
|
|
21
|
+
const timeout = 5000;
|
|
22
|
+
const primary = SUBGRAPH_URL[chainId];
|
|
23
|
+
const fallback = FALLBACK_SUBGRAPH_URL[chainId];
|
|
24
|
+
if (!primary) {
|
|
19
25
|
throw new Error('Unsupported chain for subgraph');
|
|
20
26
|
}
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const safePost = async (url) => {
|
|
28
|
+
try {
|
|
29
|
+
const res = await axios.post(url, { query, variables, operationName }, {
|
|
30
|
+
timeout,
|
|
31
|
+
validateStatus: () => true,
|
|
32
|
+
});
|
|
33
|
+
return { ok: true, status: res.status, data: res.data };
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return {
|
|
37
|
+
ok: false,
|
|
38
|
+
status: null,
|
|
39
|
+
error: err.message || 'Network error',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const primaryRes = await safePost(primary);
|
|
44
|
+
if (!primaryRes.ok) {
|
|
45
|
+
throw new Error(`Network error: ${primaryRes.error}`);
|
|
46
|
+
}
|
|
47
|
+
if (primaryRes.status === 200) {
|
|
48
|
+
return primaryRes.data;
|
|
30
49
|
}
|
|
31
|
-
|
|
32
|
-
|
|
50
|
+
if (primaryRes.status === 429 && fallback) {
|
|
51
|
+
const fallbackRes = await safePost(fallback);
|
|
52
|
+
if (!fallbackRes.ok) {
|
|
53
|
+
throw new Error(`Fallback network error: ${fallbackRes.error}`);
|
|
54
|
+
}
|
|
55
|
+
if (fallbackRes.status === 200) {
|
|
56
|
+
return fallbackRes.data;
|
|
57
|
+
}
|
|
58
|
+
throw new Error(fallbackRes.data?.errors ||
|
|
59
|
+
`Fallback failed with status ${fallbackRes.status}`);
|
|
33
60
|
}
|
|
61
|
+
throw new Error(primaryRes.data?.errors ||
|
|
62
|
+
`Failed with status ${primaryRes.status}`);
|
|
34
63
|
}
|
|
35
64
|
}
|
|
36
65
|
//# sourceMappingURL=subgraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,SAAS,CAAC,cAAc,CAAC,EACxB,wFAAwF;IAC1F,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAC1B,wFAAwF;IAC1F,oBAAoB;IACpB,uFAAuF;IACvF,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAC3B,yFAAyF;IAC3F,CAAC,SAAS,CAAC,YAAY,CAAC,EACtB,mHAAmH;IACrH,CAAC,SAAS,CAAC,YAAY,CAAC,EACtB,qEAAqE;IACvE,CAAC,SAAS,CAAC,aAAa,CAAC,EACvB,oHAAoH;IACtH,CAAC,SAAS,CAAC,aAAa,CAAC,EACvB,yHAAyH;IAC3H,6BAA6B;IAC7B,gGAAgG;CACjG,CAAA;AAED,MAAM,OAAO,QAAQ;IACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CACrB,OAAkB,EAClB,aAAqB,EACrB,KAAa,EACb,SAAa;QAEb,IAAI,
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/subgraph.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/views/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { getPool, getPoolSnapshot, getPoolSnapshots, getUserPoolPositions, getSt
|
|
|
3
3
|
export { getLatestTrades } from './trade';
|
|
4
4
|
export { getPriceNeighborhood } from './tick';
|
|
5
5
|
export { getOpenOrder, getOpenOrders } from './open-order';
|
|
6
|
-
export { getSubgraphEndpoint, getSubgraphBlockNumber, getSubgraphBlock, } from './subgraph';
|
|
6
|
+
export { getSubgraphEndpoint, getFallbackSubgraphEndpoint, getSubgraphBlockNumber, getSubgraphBlock, } from './subgraph';
|
|
7
7
|
export { getContractAddresses } from './address';
|
|
8
8
|
export { getNativeCurrency, getReferenceCurrency, getCurrencies, getStableCurrencies, getLatestPriceMap, getDailyClosePriceMap, } from './currency';
|
|
9
9
|
export { getProtocolAnalytics, getUserDailyVolumes, getTopUsersByNativeVolume, getUserNativeVolume, } from './analytics';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,GAC7B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,GAC7B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,aAAa,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Subgraph, SUBGRAPH_URL } from '../constants/chain-configs/subgraph';
|
|
1
|
+
import { FALLBACK_SUBGRAPH_URL, Subgraph, SUBGRAPH_URL, } from '../constants/chain-configs/subgraph';
|
|
2
2
|
/**
|
|
3
3
|
* Get subgraph endpoint by chain id
|
|
4
4
|
* @param chainId - chain id from {@link CHAIN_IDS}
|
|
@@ -14,6 +14,21 @@ import { Subgraph, SUBGRAPH_URL } from '../constants/chain-configs/subgraph';
|
|
|
14
14
|
export const getSubgraphEndpoint = ({ chainId }) => {
|
|
15
15
|
return SUBGRAPH_URL[chainId];
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Get fallback subgraph endpoint by chain id
|
|
19
|
+
* @param chainId - chain id from {@link CHAIN_IDS}
|
|
20
|
+
* @returns Subgraph endpoint
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* import { getFallbackSubgraphEndpoint } from '@clober/v2-sdk'
|
|
24
|
+
*
|
|
25
|
+
* const endpoint = await getFallbackSubgraphEndpoint({
|
|
26
|
+
* chainId: 421614,
|
|
27
|
+
* })
|
|
28
|
+
*/
|
|
29
|
+
export const getFallbackSubgraphEndpoint = ({ chainId, }) => {
|
|
30
|
+
return FALLBACK_SUBGRAPH_URL[chainId];
|
|
31
|
+
};
|
|
17
32
|
/**
|
|
18
33
|
* Get subgraph block number by chain id
|
|
19
34
|
* @param chainId - chain id from {@link CHAIN_IDS}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/views/subgraph.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/views/subgraph.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,YAAY,GACb,MAAM,qCAAqC,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,OAAO,EAA0B,EAAE,EAAE;IACzE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,OAAO,GAGR,EAAE,EAAE;IACH,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,OAAO,GAGR,EAAE,EAAE;IACH,MAAM,EACJ,IAAI,EAAE,EACJ,KAAK,EAAE,EACL,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAC/B,GACF,GACF,GAAG,MAAM,QAAQ,CAAC,GAAG,CAOpB,OAAO,EACP,sBAAsB,EACtB,2DAA2D,EAC3D,EAAE,CACH,CAAA;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAE,OAAO,EAA0B,EAAE,EAAE;IAC5E,MAAM,EACJ,IAAI,EAAE,EACJ,KAAK,EAAE,EACL,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAC5D,GACF,GACF,GAAG,MAAM,QAAQ,CAAC,GAAG,CAYpB,OAAO,EACP,gBAAgB,EAChB,+EAA+E,EAC/E,EAAE,CACH,CAAA;IACD,OAAO;QACL,WAAW;QACX,IAAI;QACJ,SAAS;QACT,UAAU;KACX,CAAA;AACH,CAAC,CAAA"}
|