@clober/v2-sdk 0.0.3 → 0.0.5

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 (109) hide show
  1. package/dist/cjs/abis/core/book-viewer-abi.js +189 -0
  2. package/dist/cjs/abis/core/book-viewer-abi.js.map +1 -0
  3. package/dist/cjs/apis/market.js +42 -33
  4. package/dist/cjs/apis/market.js.map +1 -1
  5. package/dist/cjs/apis/open-order.js +10 -7
  6. package/dist/cjs/apis/open-order.js.map +1 -1
  7. package/dist/cjs/apis/subgraph.js.map +1 -1
  8. package/dist/cjs/approval.js +4 -4
  9. package/dist/cjs/approval.js.map +1 -1
  10. package/dist/cjs/call.js +197 -186
  11. package/dist/cjs/call.js.map +1 -1
  12. package/dist/cjs/constants/client.js +14 -0
  13. package/dist/cjs/constants/client.js.map +1 -0
  14. package/dist/cjs/model/book.js +8 -1
  15. package/dist/cjs/model/book.js.map +1 -1
  16. package/dist/cjs/model/market.js +44 -171
  17. package/dist/cjs/model/market.js.map +1 -1
  18. package/dist/cjs/signature.js +7 -11
  19. package/dist/cjs/signature.js.map +1 -1
  20. package/dist/cjs/utils/approval.js +3 -8
  21. package/dist/cjs/utils/approval.js.map +1 -1
  22. package/dist/cjs/utils/build-transaction.js +4 -8
  23. package/dist/cjs/utils/build-transaction.js.map +1 -1
  24. package/dist/cjs/{apis → utils}/currency.js +3 -7
  25. package/dist/cjs/utils/currency.js.map +1 -0
  26. package/dist/cjs/utils/decorator.js +13 -0
  27. package/dist/cjs/utils/decorator.js.map +1 -0
  28. package/dist/cjs/utils/open.js +36 -0
  29. package/dist/cjs/utils/open.js.map +1 -0
  30. package/dist/cjs/utils/unit.js +3 -7
  31. package/dist/cjs/utils/unit.js.map +1 -1
  32. package/dist/cjs/view.js +24 -44
  33. package/dist/cjs/view.js.map +1 -1
  34. package/dist/esm/abis/core/book-viewer-abi.js +186 -0
  35. package/dist/esm/abis/core/book-viewer-abi.js.map +1 -0
  36. package/dist/esm/apis/market.js +43 -34
  37. package/dist/esm/apis/market.js.map +1 -1
  38. package/dist/esm/apis/open-order.js +10 -7
  39. package/dist/esm/apis/open-order.js.map +1 -1
  40. package/dist/esm/apis/subgraph.js.map +1 -1
  41. package/dist/esm/approval.js +5 -4
  42. package/dist/esm/approval.js.map +1 -1
  43. package/dist/esm/call.js +213 -191
  44. package/dist/esm/call.js.map +1 -1
  45. package/dist/esm/constants/client.js +10 -0
  46. package/dist/esm/constants/client.js.map +1 -0
  47. package/dist/esm/model/book.js +8 -1
  48. package/dist/esm/model/book.js.map +1 -1
  49. package/dist/esm/model/market.js +45 -176
  50. package/dist/esm/model/market.js.map +1 -1
  51. package/dist/esm/signature.js +8 -11
  52. package/dist/esm/signature.js.map +1 -1
  53. package/dist/esm/utils/approval.js +3 -8
  54. package/dist/esm/utils/approval.js.map +1 -1
  55. package/dist/esm/utils/build-transaction.js +5 -9
  56. package/dist/esm/utils/build-transaction.js.map +1 -1
  57. package/dist/esm/{apis → utils}/currency.js +4 -8
  58. package/dist/esm/utils/currency.js.map +1 -0
  59. package/dist/esm/utils/decorator.js +9 -0
  60. package/dist/esm/utils/decorator.js.map +1 -0
  61. package/dist/esm/utils/open.js +32 -0
  62. package/dist/esm/utils/open.js.map +1 -0
  63. package/dist/esm/utils/unit.js +4 -8
  64. package/dist/esm/utils/unit.js.map +1 -1
  65. package/dist/esm/view.js +25 -39
  66. package/dist/esm/view.js.map +1 -1
  67. package/dist/tsconfig.build.tsbuildinfo +1 -1
  68. package/dist/types/abis/core/book-viewer-abi.d.ts +141 -0
  69. package/dist/types/abis/core/book-viewer-abi.d.ts.map +1 -0
  70. package/dist/types/apis/market.d.ts +1 -1
  71. package/dist/types/apis/market.d.ts.map +1 -1
  72. package/dist/types/apis/open-order.d.ts +3 -3
  73. package/dist/types/apis/open-order.d.ts.map +1 -1
  74. package/dist/types/approval.d.ts +6 -3
  75. package/dist/types/approval.d.ts.map +1 -1
  76. package/dist/types/call.d.ts +82 -31
  77. package/dist/types/call.d.ts.map +1 -1
  78. package/dist/types/constants/client.d.ts +5 -0
  79. package/dist/types/constants/client.d.ts.map +1 -0
  80. package/dist/types/model/book.d.ts +3 -1
  81. package/dist/types/model/book.d.ts.map +1 -1
  82. package/dist/types/model/depth.d.ts +0 -2
  83. package/dist/types/model/depth.d.ts.map +1 -1
  84. package/dist/types/model/market.d.ts +11 -13
  85. package/dist/types/model/market.d.ts.map +1 -1
  86. package/dist/types/model/open-order.d.ts +5 -2
  87. package/dist/types/model/open-order.d.ts.map +1 -1
  88. package/dist/types/signature.d.ts +7 -3
  89. package/dist/types/signature.d.ts.map +1 -1
  90. package/dist/types/type.d.ts +14 -6
  91. package/dist/types/type.d.ts.map +1 -1
  92. package/dist/types/utils/approval.d.ts +1 -1
  93. package/dist/types/utils/approval.d.ts.map +1 -1
  94. package/dist/types/utils/build-transaction.d.ts +3 -4
  95. package/dist/types/utils/build-transaction.d.ts.map +1 -1
  96. package/dist/types/{apis → utils}/currency.d.ts +1 -1
  97. package/dist/types/utils/currency.d.ts.map +1 -0
  98. package/dist/types/utils/decorator.d.ts +6 -0
  99. package/dist/types/utils/decorator.d.ts.map +1 -0
  100. package/dist/types/utils/open.d.ts +3 -0
  101. package/dist/types/utils/open.d.ts.map +1 -0
  102. package/dist/types/utils/unit.d.ts +2 -2
  103. package/dist/types/utils/unit.d.ts.map +1 -1
  104. package/dist/types/view.d.ts +36 -24
  105. package/dist/types/view.d.ts.map +1 -1
  106. package/package.json +1 -8
  107. package/dist/cjs/apis/currency.js.map +0 -1
  108. package/dist/esm/apis/currency.js.map +0 -1
  109. package/dist/types/apis/currency.d.ts.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { cachedPublicClients } from '../constants/client';
2
+ import { CONTRACT_ADDRESSES } from '../constants/addresses';
3
+ const _abi = [
4
+ {
5
+ inputs: [
6
+ {
7
+ internalType: 'BookId',
8
+ name: 'id',
9
+ type: 'uint192',
10
+ },
11
+ ],
12
+ name: 'isOpened',
13
+ outputs: [
14
+ {
15
+ internalType: 'bool',
16
+ name: '',
17
+ type: 'bool',
18
+ },
19
+ ],
20
+ stateMutability: 'view',
21
+ type: 'function',
22
+ },
23
+ ];
24
+ export async function fetchIsOpened(chainId, bookId) {
25
+ return cachedPublicClients[chainId].readContract({
26
+ address: CONTRACT_ADDRESSES[chainId].BookManager,
27
+ abi: _abi,
28
+ functionName: 'isOpened',
29
+ args: [bookId],
30
+ });
31
+ }
32
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/utils/open.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAkB,EAAE,MAAc;IACpE,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QAC/C,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE,IAAI;QACT,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,MAAM,CAAC;KACf,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import { createPublicClient, http, isAddressEqual, zeroAddress } from 'viem';
2
- import { CHAIN_MAP } from '../constants/chain';
1
+ import { isAddressEqual, zeroAddress } from 'viem';
2
+ import { cachedPublicClients } from '../constants/client';
3
3
  const _abi = [
4
4
  {
5
5
  inputs: [],
@@ -15,15 +15,11 @@ const _abi = [
15
15
  type: 'function',
16
16
  },
17
17
  ];
18
- export const calculateUnit = async (chainId, quote, rpcUrl) => {
18
+ export const calculateUnit = async (chainId, quote) => {
19
19
  if (isAddressEqual(quote.address, zeroAddress)) {
20
20
  return 10n ** 12n;
21
21
  }
22
- const publicClient = createPublicClient({
23
- chain: CHAIN_MAP[chainId],
24
- transport: rpcUrl ? http(rpcUrl) : http(),
25
- });
26
- const totalSupply = await publicClient.readContract({
22
+ const totalSupply = await cachedPublicClients[chainId].readContract({
27
23
  address: quote.address,
28
24
  abi: _abi,
29
25
  functionName: 'totalSupply',
@@ -1 +1 @@
1
- {"version":3,"file":"unit.js","sourceRoot":"","sources":["../../../src/utils/unit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAG5E,OAAO,EAAa,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAAkB,EAClB,KAAe,EACf,MAAe,EACf,EAAE;IACF,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,IAAI,GAAG,CAAA;IACnB,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC1C,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAClD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,EAAE,IAAI;QACT,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAA;IACF,OAAO,CACL,GAAG;QACH,MAAM,CAAC,WAAW,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACxE,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"unit.js","sourceRoot":"","sources":["../../../src/utils/unit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAAkB,EAAE,KAAe,EAAE,EAAE;IACzE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,IAAI,GAAG,CAAA;IACnB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QAClE,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,EAAE,IAAI;QACT,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAA;IACF,OAAO,CACL,GAAG;QACH,MAAM,CAAC,WAAW,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACxE,CAAA;AACH,CAAC,CAAA"}
package/dist/esm/view.js CHANGED
@@ -3,12 +3,14 @@ import { fetchMarket } from './apis/market';
3
3
  import { parsePrice } from './utils/prices';
4
4
  import { MAX_PRICE } from './constants/price';
5
5
  import { fetchOpenOrder, fetchOpenOrders } from './apis/open-order';
6
+ import { decorator } from './utils/decorator';
6
7
  /**
7
8
  * Get market information by chain id and token addresses
8
9
  * @param chainId - chain id from {@link CHAIN_IDS}
9
10
  * @param token0 - token0 address
10
11
  * @param token1 - token1 address
11
12
  * @param options
13
+ * @param options.n - number of depth levels to fetch
12
14
  * @param options.rpcUrl - RPC URL of the blockchain
13
15
  * @returns A market {@link Market}
14
16
  *
@@ -21,11 +23,11 @@ import { fetchOpenOrder, fetchOpenOrders } from './apis/open-order';
21
23
  * '0x0000000000000000000000000000000000000000',
22
24
  * )
23
25
  */
24
- export const getMarket = async (chainId, token0, token1, options) => {
26
+ export const getMarket = decorator(async ({ chainId, token0, token1, options, }) => {
25
27
  if (isAddressEqual(token0, token1)) {
26
28
  throw new Error('Token0 and token1 must be different');
27
29
  }
28
- const market = await fetchMarket(chainId, [token0, token1], options?.rpcUrl);
30
+ const market = await fetchMarket(chainId, [token0, token1], options?.n);
29
31
  return {
30
32
  chainId,
31
33
  quote: market.quote,
@@ -37,7 +39,7 @@ export const getMarket = async (chainId, token0, token1, options) => {
37
39
  asks: market.asks,
38
40
  askBookOpen: market.askBookOpen,
39
41
  };
40
- };
42
+ });
41
43
  /**
42
44
  * Calculates the expected output for a given input amount, based on the provided market data.
43
45
  *
@@ -59,8 +61,8 @@ export const getMarket = async (chainId, token0, token1, options) => {
59
61
  * '1000.123', // spend 1000.123 USDC
60
62
  * )
61
63
  */
62
- export const getExpectedOutput = async (chainId, inputToken, outputToken, amountIn, options) => {
63
- const market = await fetchMarket(chainId, [inputToken, outputToken], options?.rpcUrl);
64
+ export const getExpectedOutput = decorator(async ({ chainId, inputToken, outputToken, amountIn, options, }) => {
65
+ const market = await fetchMarket(chainId, [inputToken, outputToken]);
64
66
  const isBid = isAddressEqual(market.quote.address, inputToken);
65
67
  const rawLimitPrice = options && options.limitPrice
66
68
  ? parsePrice(Number(options.limitPrice), market.quote.decimals, market.base.decimals)
@@ -68,25 +70,17 @@ export const getExpectedOutput = async (chainId, inputToken, outputToken, amount
68
70
  ? MAX_PRICE
69
71
  : 0n;
70
72
  const inputCurrency = isBid ? market.quote : market.base;
71
- const result = market.spend({
73
+ const { takenQuoteAmount, spendBaseAmount, bookId } = market.spend({
72
74
  spendBase: !isBid,
73
75
  limitPrice: rawLimitPrice,
74
76
  amountIn: parseUnits(amountIn, inputCurrency.decimals),
75
77
  });
76
- const { takenAmount, spendAmount } = Object.values(result).reduce((acc, { takenAmount, spendAmount }) => ({
77
- takenAmount: acc.takenAmount + takenAmount,
78
- spendAmount: acc.spendAmount + spendAmount,
79
- }), { takenAmount: 0n, spendAmount: 0n });
80
78
  return {
81
- takenAmount: formatUnits(takenAmount, isBid ? market.base.decimals : market.quote.decimals),
82
- spendAmount: formatUnits(spendAmount, isBid ? market.quote.decimals : market.base.decimals),
83
- result: Object.entries(result).map(([bookId, { takenAmount, spendAmount }]) => ({
84
- bookId: BigInt(bookId),
85
- takenAmount,
86
- spendAmount,
87
- })),
79
+ takenAmount: formatUnits(takenQuoteAmount, isBid ? market.base.decimals : market.quote.decimals),
80
+ spendAmount: formatUnits(spendBaseAmount, isBid ? market.quote.decimals : market.base.decimals),
81
+ bookId,
88
82
  };
89
- };
83
+ });
90
84
  /**
91
85
  * Calculates the expected input for a given output amount, based on the provided market data.
92
86
  *
@@ -108,8 +102,8 @@ export const getExpectedOutput = async (chainId, inputToken, outputToken, amount
108
102
  * '0.1', // take 0.1 ETH
109
103
  * )
110
104
  */
111
- export const getExpectedInput = async (chainId, inputToken, outputToken, amountOut, options) => {
112
- const market = await fetchMarket(chainId, [inputToken, outputToken], options?.rpcUrl);
105
+ export const getExpectedInput = decorator(async ({ chainId, inputToken, outputToken, amountOut, options, }) => {
106
+ const market = await fetchMarket(chainId, [inputToken, outputToken]);
113
107
  const isBid = isAddressEqual(market.quote.address, inputToken);
114
108
  const rawLimitPrice = options && options.limitPrice
115
109
  ? parsePrice(Number(options.limitPrice), market.quote.decimals, market.base.decimals)
@@ -117,25 +111,17 @@ export const getExpectedInput = async (chainId, inputToken, outputToken, amountO
117
111
  ? MAX_PRICE
118
112
  : 0n;
119
113
  const outputCurrency = isBid ? market.base : market.quote;
120
- const result = market.take({
114
+ const { takenQuoteAmount, spendBaseAmount, bookId } = market.take({
121
115
  takeQuote: !isBid,
122
116
  limitPrice: rawLimitPrice,
123
117
  amountOut: parseUnits(amountOut, outputCurrency.decimals),
124
118
  });
125
- const { takenAmount, spendAmount } = Object.values(result).reduce((acc, { takenAmount, spendAmount }) => ({
126
- takenAmount: acc.takenAmount + takenAmount,
127
- spendAmount: acc.spendAmount + spendAmount,
128
- }), { takenAmount: 0n, spendAmount: 0n });
129
119
  return {
130
- takenAmount: formatUnits(takenAmount, isBid ? market.base.decimals : market.quote.decimals),
131
- spendAmount: formatUnits(spendAmount, isBid ? market.quote.decimals : market.base.decimals),
132
- result: Object.entries(result).map(([bookId, { takenAmount, spendAmount }]) => ({
133
- bookId: BigInt(bookId),
134
- takenAmount,
135
- spendAmount,
136
- })),
120
+ takenAmount: formatUnits(takenQuoteAmount, isBid ? market.base.decimals : market.quote.decimals),
121
+ spendAmount: formatUnits(spendBaseAmount, isBid ? market.quote.decimals : market.base.decimals),
122
+ bookId,
137
123
  };
138
- };
124
+ });
139
125
  /**
140
126
  * Retrieves the open order with the specified ID on the given chain.
141
127
  *
@@ -152,9 +138,9 @@ export const getExpectedInput = async (chainId, inputToken, outputToken, amountO
152
138
  * '46223845323662364279893361453861711542636620039907198451770258805035840307200'
153
139
  * )
154
140
  */
155
- export const getOpenOrder = async (chainId, id, options) => {
156
- return fetchOpenOrder(chainId, id, options?.rpcUrl);
157
- };
141
+ export const getOpenOrder = decorator(async ({ chainId, id, }) => {
142
+ return fetchOpenOrder(chainId, id);
143
+ });
158
144
  /**
159
145
  * Retrieves open orders for the specified user on the given chain.
160
146
  *
@@ -171,7 +157,7 @@ export const getOpenOrder = async (chainId, id, options) => {
171
157
  * '0x5F79EE8f8fA862E98201120d83c4eC39D9468D49'
172
158
  * )
173
159
  */
174
- export const getOpenOrders = async (chainId, userAddress, options) => {
175
- return fetchOpenOrders(chainId, userAddress, options?.rpcUrl);
176
- };
160
+ export const getOpenOrders = decorator(async ({ chainId, userAddress, }) => {
161
+ return fetchOpenOrders(chainId, userAddress);
162
+ });
177
163
  //# sourceMappingURL=view.js.map
@@ -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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"}