@clober/v2-sdk 0.0.2 → 0.0.3-a

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 (72) hide show
  1. package/dist/cjs/apis/market.js +10 -16
  2. package/dist/cjs/apis/market.js.map +1 -1
  3. package/dist/cjs/apis/open-order.js +12 -12
  4. package/dist/cjs/apis/open-order.js.map +1 -1
  5. package/dist/cjs/apis/subgraph.js +26 -0
  6. package/dist/cjs/apis/subgraph.js.map +1 -0
  7. package/dist/cjs/approval.js +0 -26
  8. package/dist/cjs/approval.js.map +1 -1
  9. package/dist/cjs/call.js +0 -208
  10. package/dist/cjs/call.js.map +1 -1
  11. package/dist/cjs/constants/fee.js +2 -2
  12. package/dist/cjs/constants/fee.js.map +1 -1
  13. package/dist/cjs/index.js +6 -19
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/model/book.js +145 -112
  16. package/dist/cjs/model/book.js.map +1 -1
  17. package/dist/cjs/model/fee-policy.js +71 -21
  18. package/dist/cjs/model/fee-policy.js.map +1 -1
  19. package/dist/cjs/model/market.js +235 -171
  20. package/dist/cjs/model/market.js.map +1 -1
  21. package/dist/cjs/package.json +1 -1
  22. package/dist/cjs/signature.js +0 -33
  23. package/dist/cjs/signature.js.map +1 -1
  24. package/dist/cjs/utils/market.js +0 -3
  25. package/dist/cjs/utils/market.js.map +1 -1
  26. package/dist/cjs/utils/math.js +1 -28
  27. package/dist/cjs/utils/math.js.map +1 -1
  28. package/dist/cjs/view.js +0 -92
  29. package/dist/cjs/view.js.map +1 -1
  30. package/dist/esm/apis/market.js +10 -16
  31. package/dist/esm/apis/market.js.map +1 -1
  32. package/dist/esm/apis/open-order.js +12 -12
  33. package/dist/esm/apis/open-order.js.map +1 -1
  34. package/dist/esm/apis/subgraph.js +22 -0
  35. package/dist/esm/apis/subgraph.js.map +1 -0
  36. package/dist/esm/model/book.js +147 -112
  37. package/dist/esm/model/book.js.map +1 -1
  38. package/dist/esm/model/fee-policy.js +71 -21
  39. package/dist/esm/model/fee-policy.js.map +1 -1
  40. package/dist/esm/model/market.js +241 -171
  41. package/dist/esm/model/market.js.map +1 -1
  42. package/dist/esm/package.json +1 -1
  43. package/dist/tsconfig.build.tsbuildinfo +1 -0
  44. package/dist/types/apis/market.d.ts.map +1 -1
  45. package/dist/types/apis/open-order.d.ts.map +1 -1
  46. package/dist/types/apis/subgraph.d.ts +3 -0
  47. package/dist/types/apis/subgraph.d.ts.map +1 -0
  48. package/dist/types/model/book.d.ts +21 -0
  49. package/dist/types/model/book.d.ts.map +1 -1
  50. package/dist/types/model/open-order.d.ts +26 -0
  51. package/dist/types/model/open-order.d.ts.map +1 -1
  52. package/package.json +7 -21
  53. package/dist/cjs/.graphclient/index.js +0 -243
  54. package/dist/cjs/.graphclient/index.js.map +0 -1
  55. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js +0 -14485
  56. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js.map +0 -1
  57. package/dist/cjs/.graphclient/sources/clober-v2/types.js +0 -4
  58. package/dist/cjs/.graphclient/sources/clober-v2/types.js.map +0 -1
  59. package/dist/cjs/tsconfig.build.tsbuildinfo +0 -1
  60. package/dist/esm/.graphclient/index.js +0 -233
  61. package/dist/esm/.graphclient/index.js.map +0 -1
  62. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js +0 -14483
  63. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js.map +0 -1
  64. package/dist/esm/.graphclient/sources/clober-v2/types.js +0 -3
  65. package/dist/esm/.graphclient/sources/clober-v2/types.js.map +0 -1
  66. package/dist/esm/tsconfig.build.tsbuildinfo +0 -1
  67. package/dist/types/.graphclient/index.d.ts +0 -1281
  68. package/dist/types/.graphclient/index.d.ts.map +0 -1
  69. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts +0 -3
  70. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts.map +0 -1
  71. package/dist/types/.graphclient/sources/clober-v2/types.d.ts +0 -984
  72. package/dist/types/.graphclient/sources/clober-v2/types.d.ts.map +0 -1
package/dist/cjs/view.js CHANGED
@@ -6,24 +6,6 @@ const market_1 = require("./apis/market");
6
6
  const prices_1 = require("./utils/prices");
7
7
  const price_1 = require("./constants/price");
8
8
  const open_order_1 = require("./apis/open-order");
9
- /**
10
- * Get market information by chain id and token addresses
11
- * @param chainId - chain id from {@link CHAIN_IDS}
12
- * @param token0 - token0 address
13
- * @param token1 - token1 address
14
- * @param options
15
- * @param options.rpcUrl - RPC URL of the blockchain
16
- * @returns A market {@link Market}
17
- *
18
- * @example
19
- * import { getMarket } from '@clober/v2-sdk'
20
- *
21
- * const market = await getMarket(
22
- * 421614,
23
- * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
24
- * '0x0000000000000000000000000000000000000000',
25
- * )
26
- */
27
9
  const getMarket = async (chainId, token0, token1, options) => {
28
10
  if ((0, viem_1.isAddressEqual)(token0, token1)) {
29
11
  throw new Error('Token0 and token1 must be different');
@@ -42,27 +24,6 @@ const getMarket = async (chainId, token0, token1, options) => {
42
24
  };
43
25
  };
44
26
  exports.getMarket = getMarket;
45
- /**
46
- * Calculates the expected output for a given input amount, based on the provided market data.
47
- *
48
- * @param chainId The chain ID of the blockchain.
49
- * @param inputToken The address of the input token.
50
- * @param outputToken The address of the output token.
51
- * @param amountIn The amount of expected input amount. (ex 1.2 ETH -> 1.2)
52
- * @param options
53
- * @param options.limitPrice The maximum limit price to spend.
54
- * @param options.rpcUrl The RPC URL of the blockchain.
55
- * @returns A Promise resolving to an object containing the taken amount, spend amount and result of the calculation.
56
- * @example
57
- * import { getExpectedOutput } from '@clober/v2-sdk'
58
- *
59
- * const { takenAmount, spendAmount } = await getExpectedOutput(
60
- * 421614,
61
- * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
62
- * '0x0000000000000000000000000000000000000000',
63
- * '1000.123', // spend 1000.123 USDC
64
- * )
65
- */
66
27
  const getExpectedOutput = async (chainId, inputToken, outputToken, amountIn, options) => {
67
28
  const market = await (0, market_1.fetchMarket)(chainId, [inputToken, outputToken], options?.rpcUrl);
68
29
  const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
@@ -92,27 +53,6 @@ const getExpectedOutput = async (chainId, inputToken, outputToken, amountIn, opt
92
53
  };
93
54
  };
94
55
  exports.getExpectedOutput = getExpectedOutput;
95
- /**
96
- * Calculates the expected input for a given output amount, based on the provided market data.
97
- *
98
- * @param chainId The chain ID of the blockchain.
99
- * @param inputToken The address of the input token.
100
- * @param outputToken The address of the output token.
101
- * @param amountOut The amount of expected output amount. (ex 1.2 ETH -> 1.2)
102
- * @param options
103
- * @param options.limitPrice The maximum limit price to take.
104
- * @param options.rpcUrl The RPC URL of the blockchain.
105
- * @returns A Promise resolving to an object containing the taken amount, spend amount and result of the calculation.
106
- * @example
107
- * import { getExpectedInput } from '@clober/v2-sdk'
108
- *
109
- * const { takenAmount, spendAmount } = await getExpectedInput(
110
- * 421614,
111
- * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
112
- * '0x0000000000000000000000000000000000000000',
113
- * '0.1', // take 0.1 ETH
114
- * )
115
- */
116
56
  const getExpectedInput = async (chainId, inputToken, outputToken, amountOut, options) => {
117
57
  const market = await (0, market_1.fetchMarket)(chainId, [inputToken, outputToken], options?.rpcUrl);
118
58
  const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
@@ -142,42 +82,10 @@ const getExpectedInput = async (chainId, inputToken, outputToken, amountOut, opt
142
82
  };
143
83
  };
144
84
  exports.getExpectedInput = getExpectedInput;
145
- /**
146
- * Retrieves the open order with the specified ID on the given chain.
147
- *
148
- * @param {CHAIN_IDS} chainId The chain ID.
149
- * @param {string} id The ID of the open order.
150
- * @param options
151
- * @param options.rpcUrl The RPC URL of the blockchain.
152
- * @returns {Promise<OpenOrder>} Promise resolving to the open order object, or undefined if not found.
153
- * @example
154
- * import { getOpenOrder } from '@clober/v2-sdk'
155
- *
156
- * const openOrder = await getOpenOrder(
157
- * 421614,
158
- * '46223845323662364279893361453861711542636620039907198451770258805035840307200'
159
- * )
160
- */
161
85
  const getOpenOrder = async (chainId, id, options) => {
162
86
  return (0, open_order_1.fetchOpenOrder)(chainId, id, options?.rpcUrl);
163
87
  };
164
88
  exports.getOpenOrder = getOpenOrder;
165
- /**
166
- * Retrieves open orders for the specified user on the given chain.
167
- *
168
- * @param {CHAIN_IDS} chainId The chain ID.
169
- * @param {`0x${string}`} userAddress The Ethereum address of the user.
170
- * @param options
171
- * @param options.rpcUrl The RPC URL of the blockchain.
172
- * @returns {Promise<OpenOrder[]>} Promise resolving to an array of open orders.
173
- * @example
174
- * import { getOpenOrders } from '@clober/v2-sdk'
175
- *
176
- * const openOrders = await getOpenOrders(
177
- * 421614,
178
- * '0x5F79EE8f8fA862E98201120d83c4eC39D9468D49'
179
- * )
180
- */
181
89
  const getOpenOrders = async (chainId, userAddress, options) => {
182
90
  return (0, open_order_1.fetchOpenOrders)(chainId, userAddress, options?.rpcUrl);
183
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/view.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { getAddress, isAddressEqual } from 'viem';
2
2
  import { Market } from '../model/market';
3
- import { SUBGRAPH_URL } from '../constants/subgraph-url';
4
- import { getBuiltGraphSDK } from '../.graphclient';
5
3
  import { Book } from '../model/book';
6
4
  import { getMarketId } from '../utils/market';
7
5
  import { fetchCurrency } from './currency';
8
- const { getBooks } = getBuiltGraphSDK();
6
+ import { fetchSubgraph } from './subgraph';
7
+ const getBooks = async (chainId, baseTokenAddress, quoteTokenAddress) => {
8
+ return fetchSubgraph(chainId, 'getBooks', 'query getBooks($baseTokenAddress: String!, $quoteTokenAddress: String!) { books( where: {base: $baseTokenAddress, quote: $quoteTokenAddress, makerPolicy: "8888308", takerPolicy: "8889608", hooks: "0x0000000000000000000000000000000000000000"} ) { id base { id name symbol decimals } quote { id name symbol decimals } unit depths { tick price rawAmount } } }', {
9
+ baseTokenAddress: baseTokenAddress.toLowerCase(),
10
+ quoteTokenAddress: quoteTokenAddress.toLowerCase(),
11
+ });
12
+ };
9
13
  export async function fetchMarket(chainId, tokenAddresses, rpcUrl) {
10
14
  if (tokenAddresses.length !== 2) {
11
15
  throw new Error('Invalid token pair');
@@ -14,21 +18,11 @@ export async function fetchMarket(chainId, tokenAddresses, rpcUrl) {
14
18
  tokenAddresses[0],
15
19
  tokenAddresses[1],
16
20
  ]);
17
- const [quoteCurrency, baseCurrency, { books: bidBooks }, { books: askBooks },] = await Promise.all([
21
+ const [quoteCurrency, baseCurrency, { data: { books: bidBooks }, }, { data: { books: askBooks }, },] = await Promise.all([
18
22
  fetchCurrency(chainId, quoteTokenAddress, rpcUrl),
19
23
  fetchCurrency(chainId, baseTokenAddress, rpcUrl),
20
- getBooks({
21
- quoteTokenAddress: quoteTokenAddress.toLowerCase(),
22
- baseTokenAddress: baseTokenAddress.toLowerCase(),
23
- }, {
24
- url: SUBGRAPH_URL[chainId],
25
- }),
26
- getBooks({
27
- quoteTokenAddress: baseTokenAddress.toLowerCase(),
28
- baseTokenAddress: quoteTokenAddress.toLowerCase(),
29
- }, {
30
- url: SUBGRAPH_URL[chainId],
31
- }),
24
+ getBooks(chainId, quoteTokenAddress, baseTokenAddress),
25
+ getBooks(chainId, baseTokenAddress, quoteTokenAddress),
32
26
  ]);
33
27
  return new Market({
34
28
  chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/apis/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/apis/market.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,22 @@
1
1
  import { formatUnits, getAddress, isAddressEqual } from 'viem';
2
- import { getBuiltGraphSDK, } from '../.graphclient';
3
- import { SUBGRAPH_URL } from '../constants/subgraph-url';
4
2
  import { getMarketId } from '../utils/market';
5
3
  import { quoteToBase } from '../utils/decimals';
6
4
  import { formatPrice } from '../utils/prices';
7
5
  import { invertPrice, toPrice } from '../utils/tick';
8
6
  import { fetchCurrency } from './currency';
9
- const { getOpenOrders, getOpenOrder } = getBuiltGraphSDK();
10
- export async function fetchOpenOrders(chainId, userAddress, rpcUrl) {
11
- const { openOrders } = await getOpenOrders({
7
+ import { fetchSubgraph } from './subgraph';
8
+ const getOpenOrder = async (chainId, orderId) => {
9
+ return fetchSubgraph(chainId, 'getOpenOrder', 'query getOpenOrder($orderId: ID!) { openOrder(id: $orderId) { id book { id base { id name symbol decimals } quote { id name symbol decimals } unit } tick txHash createdAt rawAmount rawFilledAmount rawClaimedAmount rawClaimableAmount } }', {
10
+ orderId,
11
+ });
12
+ };
13
+ const getOpenOrders = async (chainId, userAddress) => {
14
+ return fetchSubgraph(chainId, 'getOpenOrders', 'query getOpenOrders($userAddress: String!) { openOrders(where: { user: $userAddress }) { id book { id base { id name symbol decimals } quote { id name symbol decimals } unit } tick txHash createdAt rawAmount rawFilledAmount rawClaimedAmount rawClaimableAmount } }', {
12
15
  userAddress: userAddress.toLowerCase(),
13
- }, {
14
- url: SUBGRAPH_URL[chainId],
15
16
  });
17
+ };
18
+ export async function fetchOpenOrders(chainId, userAddress, rpcUrl) {
19
+ const { data: { openOrders }, } = await getOpenOrders(chainId, userAddress);
16
20
  const currencies = await Promise.all(openOrders
17
21
  .map((openOrder) => [
18
22
  getAddress(openOrder.book.base.id),
@@ -24,11 +28,7 @@ export async function fetchOpenOrders(chainId, userAddress, rpcUrl) {
24
28
  return openOrders.map((openOrder) => toOpenOrder(chainId, currencies, openOrder));
25
29
  }
26
30
  export async function fetchOpenOrder(chainId, id, rpcUrl) {
27
- const { openOrder } = await getOpenOrder({
28
- orderId: id,
29
- }, {
30
- url: SUBGRAPH_URL[chainId],
31
- });
31
+ const { data: { openOrder }, } = await getOpenOrder(chainId, id);
32
32
  if (!openOrder) {
33
33
  throw new Error(`Open order not found: ${id}`);
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"open-order.js","sourceRoot":"","sources":["../../../src/apis/open-order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-order.js","sourceRoot":"","sources":["../../../src/apis/open-order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { SUBGRAPH_URL } from '../constants/subgraph-url';
2
+ export async function fetchSubgraph(chainId, operationName, query, variables) {
3
+ const response = await fetch(SUBGRAPH_URL[chainId], {
4
+ method: 'POST',
5
+ headers: {
6
+ 'Content-Type': 'application/json',
7
+ },
8
+ body: JSON.stringify({
9
+ query,
10
+ variables,
11
+ operationName,
12
+ }),
13
+ });
14
+ if (response.ok) {
15
+ return response.json();
16
+ }
17
+ else {
18
+ const errorResponse = await response.json();
19
+ throw new Error(errorResponse.message || 'Unknown Error');
20
+ }
21
+ }
22
+ //# sourceMappingURL=subgraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/apis/subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGxD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAkB,EAClB,aAAqB,EACrB,KAAa,EACb,SAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAE,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,SAAS;YACT,aAAa;SACd,CAAC;KACH,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAE3C,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,IAAI,eAAe,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC"}
@@ -3,124 +3,159 @@ import { TAKER_DEFAULT_POLICY } from '../constants/fee';
3
3
  import { divide } from '../utils/math';
4
4
  import { baseToQuote, quoteToBase } from '../utils/decimals';
5
5
  export class Book {
6
- id;
7
- base;
8
- unit;
9
- quote;
10
- depths;
11
6
  constructor({ id, base, quote, unit, depths, }) {
7
+ Object.defineProperty(this, "id", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ Object.defineProperty(this, "base", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "unit", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ Object.defineProperty(this, "quote", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ Object.defineProperty(this, "depths", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ Object.defineProperty(this, "take", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: ({ limitPrice, amountOut, // quote
42
+ }) => {
43
+ let takenQuoteAmount = 0n;
44
+ let spendBaseAmount = 0n;
45
+ if (this.depths.length === 0) {
46
+ return {
47
+ takenQuoteAmount,
48
+ spendBaseAmount,
49
+ };
50
+ }
51
+ const ticks = this.depths
52
+ .sort((a, b) => Number(b.tick) - Number(a.tick))
53
+ .map((depth) => depth.tick);
54
+ let index = 0;
55
+ let tick = ticks[index];
56
+ while (tick > -8388608n) {
57
+ if (limitPrice > toPrice(tick)) {
58
+ break;
59
+ }
60
+ let maxAmount = TAKER_DEFAULT_POLICY.usesQuote
61
+ ? TAKER_DEFAULT_POLICY.calculateOriginalAmount(amountOut - takenQuoteAmount, true)
62
+ : amountOut - takenQuoteAmount;
63
+ maxAmount = divide(maxAmount, this.unit, true);
64
+ if (maxAmount === 0n) {
65
+ break;
66
+ }
67
+ const currentDepth = this.depths.find((depth) => depth.tick === tick);
68
+ let quoteAmount = (currentDepth.rawAmount > maxAmount
69
+ ? maxAmount
70
+ : currentDepth.rawAmount) * this.unit;
71
+ let baseAmount = quoteToBase(tick, quoteAmount, true);
72
+ if (TAKER_DEFAULT_POLICY.usesQuote) {
73
+ quoteAmount =
74
+ quoteAmount - TAKER_DEFAULT_POLICY.calculateFee(quoteAmount, false);
75
+ }
76
+ else {
77
+ baseAmount =
78
+ baseAmount + TAKER_DEFAULT_POLICY.calculateFee(baseAmount, false);
79
+ }
80
+ if (quoteAmount === 0n) {
81
+ break;
82
+ }
83
+ takenQuoteAmount += quoteAmount;
84
+ spendBaseAmount += baseAmount;
85
+ if (amountOut <= takenQuoteAmount) {
86
+ break;
87
+ }
88
+ index++;
89
+ tick = ticks[index];
90
+ }
91
+ return {
92
+ takenQuoteAmount,
93
+ spendBaseAmount,
94
+ };
95
+ }
96
+ });
97
+ Object.defineProperty(this, "spend", {
98
+ enumerable: true,
99
+ configurable: true,
100
+ writable: true,
101
+ value: ({ limitPrice, amountIn, // base
102
+ }) => {
103
+ let takenQuoteAmount = 0n;
104
+ let spendBaseAmount = 0n;
105
+ if (this.depths.length === 0) {
106
+ return {
107
+ takenQuoteAmount,
108
+ spendBaseAmount,
109
+ };
110
+ }
111
+ const ticks = this.depths
112
+ .sort((a, b) => Number(b.tick) - Number(a.tick))
113
+ .map((depth) => depth.tick);
114
+ let index = 0;
115
+ let tick = ticks[index];
116
+ while (spendBaseAmount <= amountIn && tick > -8388608n) {
117
+ if (limitPrice > toPrice(tick)) {
118
+ break;
119
+ }
120
+ let maxAmount = TAKER_DEFAULT_POLICY.usesQuote
121
+ ? amountIn - spendBaseAmount
122
+ : TAKER_DEFAULT_POLICY.calculateOriginalAmount(amountIn - spendBaseAmount, false);
123
+ maxAmount = baseToQuote(tick, maxAmount, false) / this.unit;
124
+ if (maxAmount === 0n) {
125
+ break;
126
+ }
127
+ const currentDepth = this.depths.find((depth) => depth.tick === tick);
128
+ let quoteAmount = (currentDepth.rawAmount > maxAmount
129
+ ? maxAmount
130
+ : currentDepth.rawAmount) * this.unit;
131
+ let baseAmount = quoteToBase(tick, quoteAmount, true);
132
+ if (TAKER_DEFAULT_POLICY.usesQuote) {
133
+ quoteAmount =
134
+ quoteAmount - TAKER_DEFAULT_POLICY.calculateFee(quoteAmount, false);
135
+ }
136
+ else {
137
+ baseAmount =
138
+ baseAmount + TAKER_DEFAULT_POLICY.calculateFee(baseAmount, false);
139
+ }
140
+ if (baseAmount === 0n) {
141
+ break;
142
+ }
143
+ takenQuoteAmount += quoteAmount;
144
+ spendBaseAmount += baseAmount;
145
+ index++;
146
+ tick = ticks[index];
147
+ }
148
+ return {
149
+ takenQuoteAmount,
150
+ spendBaseAmount,
151
+ };
152
+ }
153
+ });
12
154
  this.id = id;
13
155
  this.base = base;
14
156
  this.unit = unit;
15
157
  this.quote = quote;
16
158
  this.depths = depths;
17
159
  }
18
- take = ({ limitPrice, amountOut, // quote
19
- }) => {
20
- let takenQuoteAmount = 0n;
21
- let spendBaseAmount = 0n;
22
- if (this.depths.length === 0) {
23
- return {
24
- takenQuoteAmount,
25
- spendBaseAmount,
26
- };
27
- }
28
- const ticks = this.depths
29
- .sort((a, b) => Number(b.tick) - Number(a.tick))
30
- .map((depth) => depth.tick);
31
- let index = 0;
32
- let tick = ticks[index];
33
- while (tick > -8388608n) {
34
- if (limitPrice > toPrice(tick)) {
35
- break;
36
- }
37
- let maxAmount = TAKER_DEFAULT_POLICY.usesQuote
38
- ? TAKER_DEFAULT_POLICY.calculateOriginalAmount(amountOut - takenQuoteAmount, true)
39
- : amountOut - takenQuoteAmount;
40
- maxAmount = divide(maxAmount, this.unit, true);
41
- if (maxAmount === 0n) {
42
- break;
43
- }
44
- const currentDepth = this.depths.find((depth) => depth.tick === tick);
45
- let quoteAmount = (currentDepth.rawAmount > maxAmount
46
- ? maxAmount
47
- : currentDepth.rawAmount) * this.unit;
48
- let baseAmount = quoteToBase(tick, quoteAmount, true);
49
- if (TAKER_DEFAULT_POLICY.usesQuote) {
50
- quoteAmount =
51
- quoteAmount - TAKER_DEFAULT_POLICY.calculateFee(quoteAmount, false);
52
- }
53
- else {
54
- baseAmount =
55
- baseAmount + TAKER_DEFAULT_POLICY.calculateFee(baseAmount, false);
56
- }
57
- if (quoteAmount === 0n) {
58
- break;
59
- }
60
- takenQuoteAmount += quoteAmount;
61
- spendBaseAmount += baseAmount;
62
- if (amountOut <= takenQuoteAmount) {
63
- break;
64
- }
65
- index++;
66
- tick = ticks[index];
67
- }
68
- return {
69
- takenQuoteAmount,
70
- spendBaseAmount,
71
- };
72
- };
73
- spend = ({ limitPrice, amountIn, // base
74
- }) => {
75
- let takenQuoteAmount = 0n;
76
- let spendBaseAmount = 0n;
77
- if (this.depths.length === 0) {
78
- return {
79
- takenQuoteAmount,
80
- spendBaseAmount,
81
- };
82
- }
83
- const ticks = this.depths
84
- .sort((a, b) => Number(b.tick) - Number(a.tick))
85
- .map((depth) => depth.tick);
86
- let index = 0;
87
- let tick = ticks[index];
88
- while (spendBaseAmount <= amountIn && tick > -8388608n) {
89
- if (limitPrice > toPrice(tick)) {
90
- break;
91
- }
92
- let maxAmount = TAKER_DEFAULT_POLICY.usesQuote
93
- ? amountIn - spendBaseAmount
94
- : TAKER_DEFAULT_POLICY.calculateOriginalAmount(amountIn - spendBaseAmount, false);
95
- maxAmount = baseToQuote(tick, maxAmount, false) / this.unit;
96
- if (maxAmount === 0n) {
97
- break;
98
- }
99
- const currentDepth = this.depths.find((depth) => depth.tick === tick);
100
- let quoteAmount = (currentDepth.rawAmount > maxAmount
101
- ? maxAmount
102
- : currentDepth.rawAmount) * this.unit;
103
- let baseAmount = quoteToBase(tick, quoteAmount, true);
104
- if (TAKER_DEFAULT_POLICY.usesQuote) {
105
- quoteAmount =
106
- quoteAmount - TAKER_DEFAULT_POLICY.calculateFee(quoteAmount, false);
107
- }
108
- else {
109
- baseAmount =
110
- baseAmount + TAKER_DEFAULT_POLICY.calculateFee(baseAmount, false);
111
- }
112
- if (baseAmount === 0n) {
113
- break;
114
- }
115
- takenQuoteAmount += quoteAmount;
116
- spendBaseAmount += baseAmount;
117
- index++;
118
- tick = ticks[index];
119
- }
120
- return {
121
- takenQuoteAmount,
122
- spendBaseAmount,
123
- };
124
- };
125
160
  }
126
161
  //# sourceMappingURL=book.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"book.js","sourceRoot":"","sources":["../../../src/model/book.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"book.js","sourceRoot":"","sources":["../../../src/model/book.ts"],"names":[],"mappings":"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"}