@clober/v2-sdk 1.0.0-rc.1 → 1.0.0-rc.10

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 (73) hide show
  1. package/dist/cjs/constants/chain-configs/currency.js +37 -7
  2. package/dist/cjs/constants/chain-configs/currency.js.map +1 -1
  3. package/dist/cjs/entities/analytics/apis/index.js +7 -8
  4. package/dist/cjs/entities/analytics/apis/index.js.map +1 -1
  5. package/dist/cjs/entities/book/apis/index.js +38 -12
  6. package/dist/cjs/entities/book/apis/index.js.map +1 -1
  7. package/dist/cjs/entities/currency/apis/price.js +11 -1
  8. package/dist/cjs/entities/currency/apis/price.js.map +1 -1
  9. package/dist/cjs/entities/market/apis/snapshot.js +82 -34
  10. package/dist/cjs/entities/market/apis/snapshot.js.map +1 -1
  11. package/dist/cjs/entities/market/utils/market-id.js +1 -1
  12. package/dist/cjs/entities/market/utils/market-id.js.map +1 -1
  13. package/dist/cjs/utils/bigint.js +4 -1
  14. package/dist/cjs/utils/bigint.js.map +1 -1
  15. package/dist/cjs/utils/unit-size.js +1 -1
  16. package/dist/cjs/utils/unit-size.js.map +1 -1
  17. package/dist/cjs/views/address.js +1 -6
  18. package/dist/cjs/views/address.js.map +1 -1
  19. package/dist/cjs/views/currency.js +9 -1
  20. package/dist/cjs/views/currency.js.map +1 -1
  21. package/dist/cjs/views/index.js +3 -2
  22. package/dist/cjs/views/index.js.map +1 -1
  23. package/dist/cjs/views/market/chart-log.js +2 -2
  24. package/dist/esm/constants/chain-configs/currency.js +37 -7
  25. package/dist/esm/constants/chain-configs/currency.js.map +1 -1
  26. package/dist/esm/entities/analytics/apis/index.js +7 -8
  27. package/dist/esm/entities/analytics/apis/index.js.map +1 -1
  28. package/dist/esm/entities/book/apis/index.js +38 -12
  29. package/dist/esm/entities/book/apis/index.js.map +1 -1
  30. package/dist/esm/entities/currency/apis/price.js +9 -0
  31. package/dist/esm/entities/currency/apis/price.js.map +1 -1
  32. package/dist/esm/entities/market/apis/snapshot.js +83 -35
  33. package/dist/esm/entities/market/apis/snapshot.js.map +1 -1
  34. package/dist/esm/entities/market/utils/market-id.js +2 -2
  35. package/dist/esm/entities/market/utils/market-id.js.map +1 -1
  36. package/dist/esm/utils/bigint.js +2 -0
  37. package/dist/esm/utils/bigint.js.map +1 -1
  38. package/dist/esm/utils/unit-size.js +2 -2
  39. package/dist/esm/utils/unit-size.js.map +1 -1
  40. package/dist/esm/views/address.js +0 -16
  41. package/dist/esm/views/address.js.map +1 -1
  42. package/dist/esm/views/currency.js +20 -2
  43. package/dist/esm/views/currency.js.map +1 -1
  44. package/dist/esm/views/index.js +2 -2
  45. package/dist/esm/views/index.js.map +1 -1
  46. package/dist/esm/views/market/chart-log.js +2 -2
  47. package/dist/tsconfig.build.tsbuildinfo +1 -1
  48. package/dist/types/constants/chain-configs/currency.d.ts +4 -2
  49. package/dist/types/constants/chain-configs/currency.d.ts.map +1 -1
  50. package/dist/types/entities/analytics/apis/index.d.ts.map +1 -1
  51. package/dist/types/entities/analytics/types.d.ts +0 -1
  52. package/dist/types/entities/analytics/types.d.ts.map +1 -1
  53. package/dist/types/entities/book/apis/index.d.ts.map +1 -1
  54. package/dist/types/entities/currency/apis/price.d.ts +2 -0
  55. package/dist/types/entities/currency/apis/price.d.ts.map +1 -1
  56. package/dist/types/entities/market/apis/snapshot.d.ts.map +1 -1
  57. package/dist/types/entities/market/types.d.ts +2 -0
  58. package/dist/types/entities/market/types.d.ts.map +1 -1
  59. package/dist/types/utils/bigint.d.ts +1 -0
  60. package/dist/types/utils/bigint.d.ts.map +1 -1
  61. package/dist/types/views/address.d.ts +0 -15
  62. package/dist/types/views/address.d.ts.map +1 -1
  63. package/dist/types/views/currency.d.ts +23 -1
  64. package/dist/types/views/currency.d.ts.map +1 -1
  65. package/dist/types/views/index.d.ts +2 -2
  66. package/dist/types/views/index.d.ts.map +1 -1
  67. package/package.json +1 -1
  68. package/dist/cjs/entities/book/apis/open.js +0 -46
  69. package/dist/cjs/entities/book/apis/open.js.map +0 -1
  70. package/dist/esm/entities/book/apis/open.js +0 -42
  71. package/dist/esm/entities/book/apis/open.js.map +0 -1
  72. package/dist/types/entities/book/apis/open.d.ts +0 -4
  73. package/dist/types/entities/book/apis/open.d.ts.map +0 -1
@@ -1,14 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getReferenceTokenAddress = exports.getContractAddresses = void 0;
3
+ exports.getContractAddresses = void 0;
4
4
  const addresses_1 = require("../constants/chain-configs/addresses");
5
- const currency_1 = require("../constants/chain-configs/currency");
6
5
  const getContractAddresses = ({ chainId }) => {
7
6
  return addresses_1.CONTRACT_ADDRESSES[chainId];
8
7
  };
9
8
  exports.getContractAddresses = getContractAddresses;
10
- const getReferenceTokenAddress = ({ chainId, }) => {
11
- return currency_1.WETH_ADDRESS[chainId];
12
- };
13
- exports.getReferenceTokenAddress = getReferenceTokenAddress;
14
9
  //# sourceMappingURL=address.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/views/address.ts"],"names":[],"mappings":";;;AACA,oEAAyE;AACzE,kEAAkE;AAc3D,MAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAA0B,EAAE,EAAE;IAC1E,OAAO,8BAAkB,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC;AAcM,MAAM,wBAAwB,GAAG,CAAC,EACvC,OAAO,GAGR,EAAiB,EAAE;IAClB,OAAO,uBAAY,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,CAAA;AANY,QAAA,wBAAwB,4BAMpC"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/views/address.ts"],"names":[],"mappings":";;;AACA,oEAAyE;AAclE,MAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAA0B,EAAE,EAAE;IAC1E,OAAO,8BAAkB,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC"}
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getNativeCurrency = void 0;
3
+ exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getCurrencies = exports.getReferenceCurrency = exports.getNativeCurrency = void 0;
4
4
  const currency_1 = require("../constants/chain-configs/currency");
5
5
  const price_1 = require("../entities/currency/apis/price");
6
6
  const getNativeCurrency = ({ chainId, }) => {
7
7
  return currency_1.NATIVE_CURRENCY[chainId];
8
8
  };
9
9
  exports.getNativeCurrency = getNativeCurrency;
10
+ const getReferenceCurrency = ({ chainId, }) => {
11
+ return currency_1.REFERENCE_CURRENCY[chainId];
12
+ };
13
+ exports.getReferenceCurrency = getReferenceCurrency;
14
+ const getCurrencies = ({ chainId, }) => {
15
+ return (0, price_1.fetchCurrencies)(chainId);
16
+ };
17
+ exports.getCurrencies = getCurrencies;
10
18
  const getLatestPriceMap = async ({ chainId, }) => {
11
19
  return (0, price_1.fetchCurrentPriceMap)(chainId);
12
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/views/currency.ts"],"names":[],"mappings":";;;AACA,kEAAqE;AAErE,2DAGwC;AAcjC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,GAGR,EAAY,EAAE;IACb,OAAO,0BAAe,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC,CAAA;AANY,QAAA,iBAAiB,qBAM7B;AAEM,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,OAAO,GAGR,EAAiD,EAAE;IAClD,OAAO,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAA;AACtC,CAAC,CAAA;AANY,QAAA,iBAAiB,qBAM7B;AAEM,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,OAAO,EACP,kBAAkB,GAInB,EAAiD,EAAE;IAClD,OAAO,IAAA,qCAA6B,EAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;AACnE,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/views/currency.ts"],"names":[],"mappings":";;;AACA,kEAG4C;AAE5C,2DAIwC;AAcjC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,GAGR,EAAsC,EAAE;IACvC,OAAO,0BAAe,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC,CAAA;AANY,QAAA,iBAAiB,qBAM7B;AAcM,MAAM,oBAAoB,GAAG,CAAC,EACnC,OAAO,GAGR,EAAsC,EAAE;IACvC,OAAO,6BAAkB,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,GAGR,EAAuB,EAAE;IACxB,OAAO,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAA;AACjC,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB;AAEM,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,OAAO,GAGR,EAAiD,EAAE;IAClD,OAAO,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAA;AACtC,CAAC,CAAA;AANY,QAAA,iBAAiB,qBAM7B;AAEM,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,OAAO,EACP,kBAAkB,GAInB,EAAiD,EAAE;IAClD,OAAO,IAAA,qCAA6B,EAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;AACnE,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getNativeCurrency = exports.getReferenceTokenAddress = exports.getContractAddresses = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.getLastAmounts = exports.getStrategyPrice = exports.getPoolSnapshots = exports.getPoolSnapshot = exports.getPool = exports.getQuoteToken = exports.getMarketSnapshot = exports.getMarketSnapshots = exports.getExpectedInput = exports.getExpectedOutput = exports.getLatestChartLog = exports.getChartLogs = exports.getMarket = void 0;
3
+ exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getCurrencies = exports.getReferenceCurrency = exports.getNativeCurrency = exports.getContractAddresses = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.getLastAmounts = exports.getStrategyPrice = exports.getPoolSnapshots = exports.getPoolSnapshot = exports.getPool = 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; } });
@@ -26,9 +26,10 @@ Object.defineProperty(exports, "getSubgraphEndpoint", { enumerable: true, get: f
26
26
  Object.defineProperty(exports, "getSubgraphBlockNumber", { enumerable: true, get: function () { return subgraph_1.getSubgraphBlockNumber; } });
27
27
  var address_1 = require("./address");
28
28
  Object.defineProperty(exports, "getContractAddresses", { enumerable: true, get: function () { return address_1.getContractAddresses; } });
29
- Object.defineProperty(exports, "getReferenceTokenAddress", { enumerable: true, get: function () { return address_1.getReferenceTokenAddress; } });
30
29
  var currency_1 = require("./currency");
31
30
  Object.defineProperty(exports, "getNativeCurrency", { enumerable: true, get: function () { return currency_1.getNativeCurrency; } });
31
+ Object.defineProperty(exports, "getReferenceCurrency", { enumerable: true, get: function () { return currency_1.getReferenceCurrency; } });
32
+ Object.defineProperty(exports, "getCurrencies", { enumerable: true, get: function () { return currency_1.getCurrencies; } });
32
33
  Object.defineProperty(exports, "getLatestPriceMap", { enumerable: true, get: function () { return currency_1.getLatestPriceMap; } });
33
34
  Object.defineProperty(exports, "getDailyClosePriceMap", { enumerable: true, get: function () { return currency_1.getDailyClosePriceMap; } });
34
35
  var analytics_1 = require("./analytics");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCASiB;AARf,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;AAEf,+BAMe;AALb,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,wGAAA,gBAAgB,OAAA;AAChB,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AAGhB,+BAA6C;AAApC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA0D;AAAjD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,uCAAwE;AAA/D,+GAAA,mBAAmB,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AACpD,qCAA0E;AAAjE,+GAAA,oBAAoB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AACvD,uCAImB;AAHjB,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AAEvB,yCAAuE;AAA9D,iHAAA,oBAAoB,OAAA;AAAE,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCASiB;AARf,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;AAEf,+BAMe;AALb,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,wGAAA,gBAAgB,OAAA;AAChB,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AAGhB,+BAA6C;AAApC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA0D;AAAjD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,uCAAwE;AAA/D,+GAAA,mBAAmB,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AACpD,qCAAgD;AAAvC,+GAAA,oBAAoB,OAAA;AAC7B,uCAMmB;AALjB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AACpB,yGAAA,aAAa,OAAA;AACb,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AAEvB,yCAAuE;AAA9D,iHAAA,oBAAoB,OAAA;AAAE,gHAAA,mBAAmB,OAAA"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getChartLogs = exports.getLatestChartLog = void 0;
4
4
  const chart_log_1 = require("../../entities/market/apis/chart-log");
5
5
  const getLatestChartLog = async ({ chainId, quote, base, }) => {
6
- return (0, chart_log_1.fetchLatestChartLog)(chainId, `${base}/${quote}`);
6
+ return (0, chart_log_1.fetchLatestChartLog)(chainId, `${base}-${quote}`);
7
7
  };
8
8
  exports.getLatestChartLog = getLatestChartLog;
9
9
  const getChartLogs = async ({ chainId, quote, base, intervalType, from, to, }) => {
10
- return (0, chart_log_1.fetchChartLogs)(chainId, `${base}/${quote}`, intervalType, from, to);
10
+ return (0, chart_log_1.fetchChartLogs)(chainId, `${base}-${quote}`, intervalType, from, to);
11
11
  };
12
12
  exports.getChartLogs = getChartLogs;
13
13
  //# sourceMappingURL=chart-log.js.map
@@ -1,4 +1,4 @@
1
- import { zeroAddress } from 'viem';
1
+ import { getAddress, zeroAddress } from 'viem';
2
2
  import { CHAIN_IDS } from './chain';
3
3
  export const ETH = {
4
4
  address: zeroAddress,
@@ -29,14 +29,44 @@ export const NATIVE_CURRENCY = {
29
29
  },
30
30
  // [CHAIN_IDS.SONIC_MAINNET]: S,
31
31
  };
32
- export const WETH_ADDRESS = {
33
- [CHAIN_IDS.CLOBER_TESTNET]: zeroAddress,
34
- [CHAIN_IDS.CLOBER_TESTNET_2]: '0xF2e615A933825De4B39b497f6e6991418Fb31b78', // Mock WETH
35
- [CHAIN_IDS.ARBITRUM_SEPOLIA]: '0xF2e615A933825De4B39b497f6e6991418Fb31b78', // Mock WETH
32
+ export const REFERENCE_CURRENCY = {
33
+ [CHAIN_IDS.CLOBER_TESTNET]: {
34
+ address: getAddress('0xF2e615A933825De4B39b497f6e6991418Fb31b78'), // Mock WETH
35
+ symbol: 'WETH',
36
+ name: 'Wrapped Ether',
37
+ decimals: 18,
38
+ totalSupply: 120000000000000000000000000n, // 120M
39
+ },
40
+ [CHAIN_IDS.CLOBER_TESTNET_2]: {
41
+ address: getAddress('0xF2e615A933825De4B39b497f6e6991418Fb31b78'), // Mock WETH
42
+ symbol: 'WETH',
43
+ name: 'Wrapped Ether',
44
+ decimals: 18,
45
+ totalSupply: 120000000000000000000000000n, // 120M
46
+ },
47
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: {
48
+ address: getAddress('0xF2e615A933825De4B39b497f6e6991418Fb31b78'), // Mock WETH
49
+ symbol: 'WETH',
50
+ name: 'Wrapped Ether',
51
+ decimals: 18,
52
+ totalSupply: 120000000000000000000000000n, // 120M
53
+ },
36
54
  // [CHAIN_IDS.BASE]: '0x4200000000000000000000000000000000000006',
37
55
  // [CHAIN_IDS.BERACHAIN_MAINNET]: '0x6969696969696969696969696969696969696969', // WBERA
38
- [CHAIN_IDS.RISE_SEPOLIA]: '0x4200000000000000000000000000000000000006', // WETH
39
- [CHAIN_IDS.MONAD_TESTNET]: '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', // WMON
56
+ [CHAIN_IDS.RISE_SEPOLIA]: {
57
+ address: getAddress('0x4200000000000000000000000000000000000006'), // Mock WETH
58
+ symbol: 'WETH',
59
+ name: 'Wrapped Ether',
60
+ decimals: 18,
61
+ totalSupply: 120000000000000000000000000n, // 120M
62
+ },
63
+ [CHAIN_IDS.MONAD_TESTNET]: {
64
+ address: getAddress('0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701'), // WMON
65
+ symbol: 'WMON',
66
+ name: 'Wrapped Monad',
67
+ decimals: 18,
68
+ totalSupply: 10000000000000000000000000000n, // 10B
69
+ },
40
70
  // [CHAIN_IDS.SONIC_MAINNET]: '0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38', // wS
41
71
  };
42
72
  // @dev: https://defillama.com/stablecoins
@@ -1 +1 @@
1
- {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAIlC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,GAAG,GAEZ;IACF,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,4BAA4B,EAAE,OAAO;CACnD,CAAA;AAED,+BAA+B;AAC/B,0BAA0B;AAC1B,mBAAmB;AACnB,iBAAiB;AACjB,kBAAkB;AAClB,IAAI;AAEJ,MAAM,CAAC,MAAM,eAAe,GAExB;IACF,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG;IAC/B,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,GAAG;IACjC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,GAAG;IACjC,yBAAyB;IACzB,uCAAuC;IACvC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,GAAG;IAC7B,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;QACzB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,8BAA8B,EAAE,MAAM;KACpD;IACD,gCAAgC;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,WAAW;IACvC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,4CAA4C,EAAE,YAAY;IACxF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,4CAA4C,EAAE,YAAY;IACxF,kEAAkE;IAClE,wFAAwF;IACxF,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,4CAA4C,EAAE,OAAO;IAC/E,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,4CAA4C,EAAE,OAAO;IAChF,iFAAiF;CAClF,CAAA;AAED,0CAA0C;AAC1C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAE9B;IACF,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;QAC1B,4CAA4C,EAAE,YAAY;KAC3D;IACD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,4CAA4C,EAAE,YAAY;KAC3D;IACD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,4CAA4C,EAAE,YAAY;KAC3D;IACD,sBAAsB;IACtB,0DAA0D;IAC1D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,yDAAyD;IACzD,KAAK;IACL,mCAAmC;IACnC,2DAA2D;IAC3D,0DAA0D;IAC1D,4DAA4D;IAC5D,2DAA2D;IAC3D,KAAK;IACL,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;QACxB,4CAA4C,EAAE,QAAQ;KACvD;IACD,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;QACzB,4CAA4C,EAAE,cAAc;QAC5D,4CAA4C,EAAE,OAAO;QACrD,4CAA4C,EAAE,OAAO;KACtD;IACD,+BAA+B;IAC/B,0DAA0D;IAC1D,KAAK;CACN,CAAA"}
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../../src/constants/chain-configs/currency.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 } tokenDayData { volumeUSD totalValueLockedUSD protocolFeesUSD token { id name symbol decimals priceUSD } } } }', {});
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.tokenDayData.reduce((acc, token) => acc + Number(token.volumeUSD), 0),
27
- volume24hUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
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.tokenDayData.reduce((acc, token) => acc + Number(token.protocolFeesUSD), 0),
40
- protocolFees24hUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
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.tokenDayData.reduce((acc, token) => acc + Number(token.totalValueLockedUSD), 0),
53
- totalValueLockedUSDMap: Object.fromEntries(item.tokenDayData.map((token) => [
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: {
@@ -69,7 +69,6 @@ export async function fetchProtocolAnalytics(chainId) {
69
69
  Object.values(item.transactionTypeCounts).reduce((acc, item) => acc + item, 0), 0),
70
70
  accumulatedVolumeUSD: analyticsSnapshots.reduce((acc, item) => acc + item.volume24hUSD, 0),
71
71
  accumulatedProtocolFeesUSD: analyticsSnapshots.reduce((acc, item) => acc + item.protocolFees24hUSD, 0),
72
- accumulatedTotalValueLockedUSD: analyticsSnapshots.reduce((acc, item) => acc + item.totalValueLockedUSD, 0),
73
72
  analyticsSnapshots,
74
73
  };
75
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/analytics/apis/index.ts"],"names":[],"mappings":"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"}
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 Promise.all([
31
- publicClient.readContract({
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
- fetchIsMarketOpened(publicClient, chainId, bookId),
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,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE5C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,YAA0B,EAC1B,OAAkB,EAClB,aAAuB,EACvB,YAAsB,EACtB,WAAoB,EACpB,CAAS,EACW,EAAE;IACtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,QAAQ,CACrB,OAAO,EACP,aAAa,CAAC,OAAO,EACrB,YAAY,CAAC,OAAO,EACpB,QAAQ,CACT,CAAA;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,GACf,GAAG,MAAM,QAAQ,CAAC,GAAG,CAWpB,OAAO,EACP,SAAS,EACT,6GAA6G,EAC7G;YACE,MAAM;SACP,CACF,CAAA;QACD,OAAO,IAAI,SAAS,CAAC;YACnB,OAAO;YACP,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa;YACpB,QAAQ;YACR,MAAM,EAAE,IAAI;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,CAAC,EAAE,IAAI,EAAE,UAAU,EAAwC,EAAE,EAAE,CAAC,CAAC;oBAC/D,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;oBAClB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;iBAC/B,CAAC,CACH;gBACH,CAAC,CAAC,EAAE;YACN,QAAQ,EAAE,IAAI,KAAK,IAAI;SACxB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,GAAG,EAAE,eAAe;YACpB,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;QACF,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;KACnD,CAAC,CAAA;IAEF,OAAO,IAAI,SAAS,CAAC;QACnB,OAAO;QACP,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,aAAa;QACpB,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAmC,EAAE,EAAE,CAAC,CAAC;YACxE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAClB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,15 @@
1
1
  import { getAddress } from 'viem';
2
2
  import { Subgraph } from '../../../constants/chain-configs/subgraph';
3
3
  import { getDailyStartTimestampInSeconds } from '../../../utils/time';
4
+ export const fetchCurrencies = async (chainId) => {
5
+ const { data: { tokens }, } = await Subgraph.get(chainId, 'getCurrencies', 'query getCurrencies { tokens { id name symbol decimals } }', {});
6
+ return tokens.map((token) => ({
7
+ address: getAddress(token.id),
8
+ name: token.name,
9
+ symbol: token.symbol,
10
+ decimals: Number(token.decimals),
11
+ }));
12
+ };
4
13
  export const fetchCurrentPriceMap = async (chainId) => {
5
14
  const { data: { tokens }, } = await Subgraph.get(chainId, 'getCurrentTokenPrice', 'query getCurrentTokenPrices { tokens(where: {priceUSD_gt: 0}) { id priceUSD } }', {});
6
15
  return tokens.reduce((acc, token) => {
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/entities/currency/apis/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAA;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAkB,EAGjB,EAAE;IACH,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAQpB,OAAO,EACP,sBAAsB,EACtB,iFAAiF,EACjF,EAAE,CACH,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAEC,CACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAkB,EAClB,kBAA0B,EAGzB,EAAE;IACH,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,kBAAkB,CAAC,CAAA;IAE7E,MAAM,EACJ,IAAI,EAAE,EAAE,aAAa,EAAE,GACxB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAUpB,OAAO,EACP,kBAAkB,EAClB,uHAAuH,EACvH;QACE,IAAI,EAAE,iBAAiB;KACxB,CACF,CAAA;IAED,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAEC,CACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/entities/currency/apis/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAA;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AAGrE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAkB,EACG,EAAE;IACvB,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAUpB,OAAO,EACP,eAAe,EACf,4DAA4D,EAC5D,EAAE,CACH,CAAA;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;KACjC,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAkB,EAGjB,EAAE;IACH,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAQpB,OAAO,EACP,sBAAsB,EACtB,iFAAiF,EACjF,EAAE,CACH,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAEC,CACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAkB,EAClB,kBAA0B,EAGzB,EAAE;IACH,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,kBAAkB,CAAC,CAAA;IAE7E,MAAM,EACJ,IAAI,EAAE,EAAE,aAAa,EAAE,GACxB,GAAG,MAAM,QAAQ,CAAC,GAAG,CAUpB,OAAO,EACP,kBAAkB,EAClB,uHAAuH,EACvH;QACE,IAAI,EAAE,iBAAiB;KACxB,CACF,CAAA;IAED,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAEC,CACF,CAAA;AACH,CAAC,CAAA"}
@@ -1,18 +1,19 @@
1
- import { formatUnits, getAddress, isAddressEqual } from 'viem';
1
+ import { getAddress, isAddressEqual } from 'viem';
2
2
  import { Subgraph } from '../../../constants/chain-configs/subgraph';
3
3
  import { getQuoteToken } from '../../../views';
4
4
  import { fetchTotalSupplyMap } from '../../currency/apis/total-supply';
5
5
  import { getDailyStartTimestampInSeconds } from '../../../utils/time';
6
+ import { convertTokenToDecimal } from '../../../utils/bigint';
6
7
  export const fetchMarketSnapshot = async (publicClient, chainId, token0, token1, timestampInSeconds) => {
7
8
  const dayStartTimestamp = getDailyStartTimestampInSeconds(timestampInSeconds);
8
- const { data: { bookDayDatas }, } = await Subgraph.get(chainId, 'getTopMarketSnapshot', 'query getMarkets($date: Int!, $bases: [String!]!, $quotes: [String!]!) { bookDayDatas( first: 200 orderBy: volumeUSD orderDirection: desc where: {date: $date, book_: {base_in: $bases, quote_in: $quotes}} ) { volumeUSD open close book { id totalValueLockedUSD price inversePrice base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } createdAtTimestamp } } }', {
9
+ const { data: { bookDayDatas }, } = await Subgraph.get(chainId, 'getTopMarketSnapshot', 'query getMarkets($date: Int!, $bases: [String!]!, $quotes: [String!]!) { bookDayDatas( first: 200 orderBy: volumeUSD orderDirection: desc where: {date: $date, book_: {base_in: $bases, quote_in: $quotes}} ) { volumeUSD open close book { id totalValueLockedUSD price inversePrice lastTakenTimestamp base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } createdAtTimestamp } } }', {
9
10
  date: dayStartTimestamp,
10
11
  bases: [token0, token1].map((address) => address.toLowerCase()),
11
12
  quotes: [token0, token1].map((address) => address.toLowerCase()),
12
13
  });
13
14
  if (bookDayDatas.length >= 3) {
14
15
  // TODO: check fee policy if needed
15
- throw new Error('Too many bookDayDatas');
16
+ console.warn(`[fetchMarketSnapshot] too many bookDayDatas for ${token0}/${token1}`);
16
17
  }
17
18
  const totalSupplyMap = await fetchTotalSupplyMap(publicClient, chainId, [token0, token1].map((address) => getAddress(address)));
18
19
  const bidBook = bookDayDatas.find(({ book: { quote, base } }) => isAddressEqual(getAddress(quote.id), getQuoteToken({
@@ -26,7 +27,9 @@ export const fetchMarketSnapshot = async (publicClient, chainId, token0, token1,
26
27
  token1: getAddress(base.id),
27
28
  })));
28
29
  if (bidBook && askBook) {
29
- const baseTotalSupply = Number(formatUnits(BigInt(totalSupplyMap[getAddress(bidBook.book.base.id)] ?? 0n), Number(bidBook.book.base.decimals)));
30
+ const baseTotalSupply = convertTokenToDecimal(BigInt(totalSupplyMap[getAddress(bidBook.book.base.id)] ?? 0n), Number(bidBook.book.base.decimals));
31
+ const isBidNewer = Number(bidBook.book.lastTakenTimestamp) >=
32
+ Number(askBook.book.lastTakenTimestamp);
30
33
  return {
31
34
  chainId,
32
35
  marketId: `${bidBook.book.base.symbol}/${bidBook.book.quote.symbol}`,
@@ -42,22 +45,31 @@ export const fetchMarketSnapshot = async (publicClient, chainId, token0, token1,
42
45
  symbol: bidBook.book.quote.symbol,
43
46
  decimals: Number(bidBook.book.quote.decimals),
44
47
  },
45
- price: Number(bidBook.book.price) || Number(askBook.book.inversePrice) || 0,
46
- priceUSD: Number(bidBook.book.base.priceUSD) ||
47
- Number(askBook.book.quote.priceUSD) ||
48
- 0,
48
+ price: isBidNewer
49
+ ? Number(bidBook.book.price)
50
+ : Number(askBook.book.inversePrice),
51
+ priceUSD: isBidNewer
52
+ ? Number(bidBook.book.base.priceUSD)
53
+ : Number(askBook.book.quote.priceUSD),
49
54
  volume24hUSD: Number(bidBook.volumeUSD) + Number(askBook.volumeUSD),
50
55
  totalValueLockedUSD: Number(bidBook.book.totalValueLockedUSD) +
51
56
  Number(askBook.book.totalValueLockedUSD),
52
- priceChange24h: (Number(bidBook.close) / Number(bidBook.open) - 1) * 100 ||
53
- (Number(askBook.open) / Number(askBook.close) - 1) * 100 ||
54
- 0,
57
+ priceChange24h: isBidNewer && Number(bidBook.open) > 0
58
+ ? Number(bidBook.close) / Number(bidBook.open) - 1
59
+ : !isBidNewer && Number(askBook.close) > 0
60
+ ? Number(askBook.open) / Number(askBook.close) - 1
61
+ : 0,
55
62
  createdAtTimestamp: Math.min(Number(bidBook.book.createdAtTimestamp), Number(askBook.book.createdAtTimestamp)),
56
- fdv: baseTotalSupply * Number(bidBook.book.base.priceUSD),
63
+ fdv: baseTotalSupply *
64
+ (isBidNewer
65
+ ? Number(bidBook.book.base.priceUSD)
66
+ : Number(askBook.book.quote.priceUSD)),
67
+ bidBookUpdatedAt: Number(bidBook.book.lastTakenTimestamp),
68
+ askBookUpdatedAt: Number(askBook.book.lastTakenTimestamp),
57
69
  };
58
70
  }
59
71
  else if (bidBook) {
60
- const baseTotalSupply = Number(formatUnits(BigInt(totalSupplyMap[getAddress(bidBook.book.base.id)] ?? 0n), Number(bidBook.book.base.decimals)));
72
+ const baseTotalSupply = convertTokenToDecimal(BigInt(totalSupplyMap[getAddress(bidBook.book.base.id)] ?? 0n), Number(bidBook.book.base.decimals));
61
73
  return {
62
74
  chainId,
63
75
  marketId: `${bidBook.book.base.symbol}/${bidBook.book.quote.symbol}`,
@@ -77,13 +89,17 @@ export const fetchMarketSnapshot = async (publicClient, chainId, token0, token1,
77
89
  priceUSD: Number(bidBook.book.base.priceUSD) || 0,
78
90
  volume24hUSD: Number(bidBook.volumeUSD) || 0,
79
91
  totalValueLockedUSD: Number(bidBook.book.totalValueLockedUSD) || 0,
80
- priceChange24h: (Number(bidBook.close) / Number(bidBook.open) - 1) * 100 || 0,
92
+ priceChange24h: Number(bidBook.open) > 0
93
+ ? Number(bidBook.close) / Number(bidBook.open) - 1
94
+ : 0,
81
95
  createdAtTimestamp: Number(bidBook.book.createdAtTimestamp) || 0,
82
96
  fdv: baseTotalSupply * Number(bidBook.book.base.priceUSD) || 0,
97
+ bidBookUpdatedAt: Number(bidBook.book.lastTakenTimestamp) || 0,
98
+ askBookUpdatedAt: 0,
83
99
  };
84
100
  }
85
101
  else if (askBook) {
86
- const baseTotalSupply = Number(formatUnits(BigInt(totalSupplyMap[getAddress(askBook.book.quote.id)] ?? 0n), Number(askBook.book.quote.decimals)));
102
+ const baseTotalSupply = convertTokenToDecimal(BigInt(totalSupplyMap[getAddress(askBook.book.quote.id)] ?? 0n), Number(askBook.book.quote.decimals));
87
103
  return {
88
104
  chainId,
89
105
  marketId: `${askBook.book.quote.symbol}/${askBook.book.base.symbol}`,
@@ -103,16 +119,20 @@ export const fetchMarketSnapshot = async (publicClient, chainId, token0, token1,
103
119
  priceUSD: Number(askBook.book.quote.priceUSD) || 0,
104
120
  volume24hUSD: Number(askBook.volumeUSD) || 0,
105
121
  totalValueLockedUSD: Number(askBook.book.totalValueLockedUSD) || 0,
106
- priceChange24h: Number(askBook.open) / Number(askBook.close) - 1 || 0,
122
+ priceChange24h: Number(askBook.close) > 0
123
+ ? Number(askBook.open) / Number(askBook.close) - 1
124
+ : 0,
107
125
  createdAtTimestamp: Number(askBook.book.createdAtTimestamp) || 0,
108
126
  fdv: baseTotalSupply * Number(askBook.book.quote.priceUSD) || 0,
127
+ bidBookUpdatedAt: 0,
128
+ askBookUpdatedAt: Number(askBook.book.lastTakenTimestamp) || 0,
109
129
  };
110
130
  }
111
131
  throw new Error('No bookDayDatas found');
112
132
  };
113
133
  export const fetchMarketSnapshots = async (publicClient, chainId, timestampInSeconds) => {
114
134
  const dayStartTimestamp = getDailyStartTimestampInSeconds(timestampInSeconds);
115
- const { data: { bookDayDatas }, } = await Subgraph.get(chainId, 'getTopMarketSnapshots', 'query getMarkets($date: Int!) { bookDayDatas( first: 200 orderBy: volumeUSD orderDirection: desc where: {date: $date} ) { volumeUSD open close book { id totalValueLockedUSD price inversePrice base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } createdAtTimestamp } } }', {
135
+ const { data: { bookDayDatas }, } = await Subgraph.get(chainId, 'getTopMarketSnapshots', 'query getMarkets($date: Int!) { bookDayDatas( first: 200 orderBy: volumeUSD orderDirection: desc where: {date: $date} ) { volumeUSD open close book { id totalValueLockedUSD price inversePrice lastTakenTimestamp base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } createdAtTimestamp } } }', {
116
136
  date: dayStartTimestamp,
117
137
  });
118
138
  const bidBookDayDataList = bookDayDatas.filter(({ book: { quote, base } }) => isAddressEqual(getAddress(quote.id), getQuoteToken({
@@ -148,28 +168,42 @@ export const fetchMarketSnapshots = async (publicClient, chainId, timestampInSec
148
168
  symbol: bidBook.book.base.symbol,
149
169
  decimals: Number(bidBook.book.base.decimals),
150
170
  };
151
- const askBookDayData = askBookDayDataList.find((askBook) => isAddressEqual(getAddress(askBook.book.quote.id), baseCurrency.address) &&
171
+ const askBook = askBookDayDataList.find((askBook) => isAddressEqual(getAddress(askBook.book.quote.id), baseCurrency.address) &&
152
172
  isAddressEqual(getAddress(askBook.book.base.id), quoteCurrency.address));
153
- const baseTotalSupply = Number(formatUnits(BigInt(totalSupplyMap[baseCurrency.address] ?? 0n), baseCurrency.decimals));
173
+ const baseTotalSupply = convertTokenToDecimal(BigInt(totalSupplyMap[baseCurrency.address] ?? 0n), baseCurrency.decimals);
174
+ const isBidNewer = Number(bidBook.book.lastTakenTimestamp) >=
175
+ Number(askBook?.book.lastTakenTimestamp ?? 0);
154
176
  return {
155
177
  chainId,
156
178
  marketId: `${baseCurrency.symbol}/${quoteCurrency.symbol}`,
157
179
  base: baseCurrency,
158
180
  quote: quoteCurrency,
159
- price: Number(bidBook.book.price),
160
- priceUSD: Number(bidBook.book.base.priceUSD),
161
- priceChange24h: (Number(bidBook.close) / Number(bidBook.open) - 1) * 100,
162
- volume24hUSD: askBookDayData
163
- ? Number(askBookDayData.volumeUSD) + Number(bidBook.volumeUSD)
181
+ price: isBidNewer
182
+ ? Number(bidBook.book.price)
183
+ : Number(askBook?.book.inversePrice),
184
+ priceUSD: isBidNewer
185
+ ? Number(bidBook.book.base.priceUSD)
186
+ : Number(askBook?.book.quote.priceUSD),
187
+ priceChange24h: isBidNewer && Number(bidBook.open) > 0
188
+ ? Number(bidBook.close) / Number(bidBook.open) - 1
189
+ : !isBidNewer && askBook && Number(askBook.close) > 0
190
+ ? Number(askBook.open) / Number(askBook.close) - 1
191
+ : 0,
192
+ volume24hUSD: askBook
193
+ ? Number(askBook.volumeUSD) + Number(bidBook.volumeUSD)
164
194
  : Number(bidBook.volumeUSD),
165
- totalValueLockedUSD: askBookDayData
166
- ? Number(askBookDayData.book.totalValueLockedUSD) +
195
+ totalValueLockedUSD: askBook
196
+ ? Number(askBook.book.totalValueLockedUSD) +
167
197
  Number(bidBook.book.totalValueLockedUSD)
168
198
  : Number(bidBook.book.totalValueLockedUSD),
169
- createdAtTimestamp: askBookDayData
170
- ? Math.min(Number(bidBook.book.createdAtTimestamp), Number(askBookDayData.book.createdAtTimestamp))
199
+ createdAtTimestamp: askBook
200
+ ? Math.min(Number(bidBook.book.createdAtTimestamp), Number(askBook.book.createdAtTimestamp))
171
201
  : Number(bidBook.book.createdAtTimestamp),
172
- fdv: baseTotalSupply * Number(bidBook.book.base.priceUSD),
202
+ fdv: isBidNewer
203
+ ? baseTotalSupply * Number(bidBook.book.base.priceUSD)
204
+ : baseTotalSupply * Number(askBook?.book.quote.priceUSD),
205
+ bidBookUpdatedAt: Number(bidBook.book.lastTakenTimestamp),
206
+ askBookUpdatedAt: Number(askBook?.book.lastTakenTimestamp ?? 0),
173
207
  };
174
208
  }),
175
209
  ...askBookDayDataList.map((askBook) => {
@@ -187,15 +221,25 @@ export const fetchMarketSnapshots = async (publicClient, chainId, timestampInSec
187
221
  };
188
222
  const bidBook = bidBookDayDataList.find((bidBook) => isAddressEqual(getAddress(bidBook.book.quote.id), quoteCurrency.address) &&
189
223
  isAddressEqual(getAddress(bidBook.book.base.id), baseCurrency.address));
190
- const baseTotalSupply = Number(formatUnits(BigInt(totalSupplyMap[baseCurrency.address] ?? 0n), baseCurrency.decimals));
224
+ const baseTotalSupply = convertTokenToDecimal(BigInt(totalSupplyMap[baseCurrency.address] ?? 0n), baseCurrency.decimals);
225
+ const isBidNewer = Number(bidBook?.book.lastTakenTimestamp ?? 0) >=
226
+ Number(askBook.book.lastTakenTimestamp);
191
227
  return {
192
228
  chainId,
193
229
  marketId: `${baseCurrency.symbol}/${quoteCurrency.symbol}`,
194
230
  base: baseCurrency,
195
231
  quote: quoteCurrency,
196
- price: Number(askBook.book.inversePrice),
197
- priceUSD: Number(askBook.book.quote.priceUSD),
198
- priceChange24h: Number(askBook.open) / Number(askBook.close) - 1,
232
+ price: isBidNewer
233
+ ? Number(bidBook?.book.price)
234
+ : Number(askBook.book.inversePrice),
235
+ priceUSD: isBidNewer
236
+ ? Number(bidBook?.book.base.priceUSD)
237
+ : Number(askBook.book.quote.priceUSD),
238
+ priceChange24h: isBidNewer && bidBook && Number(bidBook.open) > 0
239
+ ? Number(bidBook.close) / Number(bidBook.open) - 1
240
+ : !isBidNewer && Number(askBook.close) > 0
241
+ ? Number(askBook.open) / Number(askBook.close) - 1
242
+ : 0,
199
243
  volume24hUSD: bidBook
200
244
  ? Number(askBook.volumeUSD) + Number(bidBook.volumeUSD)
201
245
  : Number(askBook.volumeUSD),
@@ -206,11 +250,15 @@ export const fetchMarketSnapshots = async (publicClient, chainId, timestampInSec
206
250
  createdAtTimestamp: bidBook
207
251
  ? Math.min(Number(askBook.book.createdAtTimestamp), Number(bidBook.book.createdAtTimestamp))
208
252
  : Number(askBook.book.createdAtTimestamp),
209
- fdv: baseTotalSupply * Number(askBook.book.quote.priceUSD),
253
+ fdv: isBidNewer
254
+ ? baseTotalSupply * Number(bidBook?.book.base.priceUSD)
255
+ : baseTotalSupply * Number(askBook.book.quote.priceUSD),
256
+ bidBookUpdatedAt: Number(bidBook?.book.lastTakenTimestamp ?? 0),
257
+ askBookUpdatedAt: Number(askBook.book.lastTakenTimestamp),
210
258
  };
211
259
  }),
212
260
  ]
213
- .filter(({ price }) => price > 0)
261
+ .filter(({ priceUSD }) => priceUSD > 0)
214
262
  .filter((market, index, self) => self.findIndex((m) => m.marketId === market.marketId) === index);
215
263
  };
216
264
  //# sourceMappingURL=snapshot.js.map