@clober/v2-sdk 1.0.0-beta.26 → 1.0.0-beta.28

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 (39) hide show
  1. package/dist/cjs/constants/chain-configs/addresses.js +10 -0
  2. package/dist/cjs/constants/chain-configs/addresses.js.map +1 -1
  3. package/dist/cjs/constants/chain-configs/chain.js +2 -0
  4. package/dist/cjs/constants/chain-configs/chain.js.map +1 -1
  5. package/dist/cjs/constants/chain-configs/currency.js +22 -0
  6. package/dist/cjs/constants/chain-configs/currency.js.map +1 -1
  7. package/dist/cjs/constants/chain-configs/fee.js +2 -0
  8. package/dist/cjs/constants/chain-configs/fee.js.map +1 -1
  9. package/dist/cjs/constants/chain-configs/subgraph.js +1 -0
  10. package/dist/cjs/constants/chain-configs/subgraph.js.map +1 -1
  11. package/dist/cjs/entities/take/apis/index.js +35 -0
  12. package/dist/cjs/entities/take/apis/index.js.map +1 -0
  13. package/dist/cjs/views/market/take.js +18 -19
  14. package/dist/cjs/views/market/take.js.map +1 -1
  15. package/dist/esm/constants/chain-configs/addresses.js +10 -9
  16. package/dist/esm/constants/chain-configs/addresses.js.map +1 -1
  17. package/dist/esm/constants/chain-configs/chain.js +3 -3
  18. package/dist/esm/constants/chain-configs/chain.js.map +1 -1
  19. package/dist/esm/constants/chain-configs/currency.js +22 -10
  20. package/dist/esm/constants/chain-configs/currency.js.map +1 -1
  21. package/dist/esm/constants/chain-configs/fee.js +2 -2
  22. package/dist/esm/constants/chain-configs/fee.js.map +1 -1
  23. package/dist/esm/constants/chain-configs/subgraph.js +1 -2
  24. package/dist/esm/constants/chain-configs/subgraph.js.map +1 -1
  25. package/dist/esm/entities/take/apis/index.js +31 -0
  26. package/dist/esm/entities/take/apis/index.js.map +1 -0
  27. package/dist/esm/views/market/take.js +19 -20
  28. package/dist/esm/views/market/take.js.map +1 -1
  29. package/dist/tsconfig.build.tsbuildinfo +1 -1
  30. package/dist/types/constants/chain-configs/addresses.d.ts.map +1 -1
  31. package/dist/types/constants/chain-configs/chain.d.ts +1 -0
  32. package/dist/types/constants/chain-configs/chain.d.ts.map +1 -1
  33. package/dist/types/constants/chain-configs/currency.d.ts.map +1 -1
  34. package/dist/types/constants/chain-configs/subgraph.d.ts.map +1 -1
  35. package/dist/types/entities/take/apis/index.d.ts +11 -0
  36. package/dist/types/entities/take/apis/index.d.ts.map +1 -0
  37. package/dist/types/views/market/take.d.ts +1 -3
  38. package/dist/types/views/market/take.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
- import { createPublicClient, formatUnits, http, parseAbiItem } from 'viem';
1
+ import { createPublicClient, formatUnits, http } from 'viem';
2
2
  import { CHAIN_MAP } from '../../constants/chain-configs/chain';
3
3
  import { formatPrice, invertTick, quoteToBase, toPrice } from '../../utils';
4
4
  import { getContractAddresses } from '../address';
5
5
  import { BOOK_MANAGER_ABI } from '../../constants/abis/core/book-manager-abi';
6
+ import { fetchLatestTakes } from '../../entities/take/apis';
6
7
  const handleTakeLog = (log, market, onEvent) => {
7
8
  const { args } = log;
8
9
  const isTakingBidBook = BigInt(market.bidBook.id) === args.bookId;
@@ -25,22 +26,23 @@ const handleTakeLog = (log, market, onEvent) => {
25
26
  side: isTakingBidBook ? 'sell' : 'buy',
26
27
  });
27
28
  };
28
- const backfillRebalanceEvents = async ({ publicClient, chainId, market, backfillBlocks, onEvent, }) => {
29
- const currentBlock = await publicClient.getBlockNumber();
30
- const fromBlock = currentBlock > backfillBlocks ? currentBlock - backfillBlocks : 0n;
31
- const logs = await publicClient.getLogs({
32
- address: getContractAddresses({ chainId }).BookManager,
33
- event: parseAbiItem('event Take(uint192 indexed bookId, address indexed user, int24 tick, uint64 unit)'),
34
- args: {
35
- bookId: [BigInt(market.bidBook.id), BigInt(market.askBook.id)],
36
- },
37
- fromBlock,
38
- toBlock: currentBlock,
39
- });
40
- for (const log of logs) {
41
- handleTakeLog(log, market, onEvent);
29
+ const backfillTakeEventsFromSubgraph = async ({ chainId, market, onEvent, }) => {
30
+ const takes = await fetchLatestTakes(chainId, market.base.address, market.quote.address);
31
+ const logIndexMap = new Map();
32
+ for (const take of takes.reverse()) {
33
+ if (logIndexMap.has(take.transactionHash)) {
34
+ logIndexMap.set(take.transactionHash, (logIndexMap.get(take.transactionHash) ?? 0) + 1);
35
+ }
36
+ else {
37
+ logIndexMap.set(take.transactionHash, 0);
38
+ }
39
+ onEvent({
40
+ ...take,
41
+ logIndex: logIndexMap.get(take.transactionHash),
42
+ blockNumber: 0, // Subgraph does not provide block number in this query
43
+ side: take.side,
44
+ });
42
45
  }
43
- return currentBlock;
44
46
  };
45
47
  export const watchTakeEvents = async ({ chainId, market, onEvent, onError, options, }) => {
46
48
  const publicClient = createPublicClient({
@@ -48,11 +50,9 @@ export const watchTakeEvents = async ({ chainId, market, onEvent, onError, optio
48
50
  transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
49
51
  });
50
52
  const seen = new Set();
51
- const lastBackfilledBlock = await backfillRebalanceEvents({
52
- publicClient,
53
+ await backfillTakeEventsFromSubgraph({
53
54
  chainId,
54
55
  market,
55
- backfillBlocks: options?.backfillBlocks ?? 100n,
56
56
  onEvent,
57
57
  });
58
58
  return publicClient.watchContractEvent({
@@ -62,7 +62,6 @@ export const watchTakeEvents = async ({ chainId, market, onEvent, onError, optio
62
62
  args: {
63
63
  bookId: [BigInt(market.bidBook.id), BigInt(market.askBook.id)],
64
64
  },
65
- fromBlock: lastBackfilledBlock + 1n,
66
65
  onLogs: (logs) => {
67
66
  for (const log of logs) {
68
67
  const key = `${log.transactionHash}-${log.logIndex}`;
@@ -1 +1 @@
1
- {"version":3,"file":"take.js","sourceRoot":"","sources":["../../../../src/views/market/take.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"take.js","sourceRoot":"","sources":["../../../../src/views/market/take.ts"],"names":[],"mappings":"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"}