@clober/v2-sdk 0.0.1-j → 0.0.1-k

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 (227) hide show
  1. package/dist/cjs/.graphclient/index.js +243 -0
  2. package/dist/cjs/.graphclient/index.js.map +1 -0
  3. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js +14485 -0
  4. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js.map +1 -0
  5. package/dist/cjs/.graphclient/sources/clober-v2/types.js +4 -0
  6. package/dist/cjs/.graphclient/sources/clober-v2/types.js.map +1 -0
  7. package/dist/cjs/abis/core/controller-abi.js +989 -0
  8. package/dist/cjs/abis/core/controller-abi.js.map +1 -0
  9. package/dist/cjs/abis/core/params-abi.js +62 -0
  10. package/dist/cjs/abis/core/params-abi.js.map +1 -0
  11. package/dist/cjs/apis/currency.js +87 -0
  12. package/dist/cjs/apis/currency.js.map +1 -0
  13. package/dist/cjs/apis/market.js +63 -0
  14. package/dist/cjs/apis/market.js.map +1 -0
  15. package/dist/cjs/apis/open-order.js +90 -0
  16. package/dist/cjs/apis/open-order.js.map +1 -0
  17. package/dist/cjs/approval.js +74 -0
  18. package/dist/cjs/approval.js.map +1 -0
  19. package/dist/cjs/call.js +545 -0
  20. package/dist/cjs/call.js.map +1 -0
  21. package/dist/cjs/constants/action.js +14 -0
  22. package/dist/cjs/constants/action.js.map +1 -0
  23. package/dist/cjs/constants/addresses.js +13 -0
  24. package/dist/cjs/constants/addresses.js.map +1 -0
  25. package/dist/cjs/constants/chain.js +13 -0
  26. package/dist/cjs/constants/chain.js.map +1 -0
  27. package/dist/cjs/constants/currency.js +12 -0
  28. package/dist/cjs/constants/currency.js.map +1 -0
  29. package/dist/cjs/constants/fee.js +7 -0
  30. package/dist/cjs/constants/fee.js.map +1 -0
  31. package/dist/cjs/constants/price.js +6 -0
  32. package/dist/cjs/constants/price.js.map +1 -0
  33. package/dist/cjs/constants/subgraph-url.js +8 -0
  34. package/dist/cjs/constants/subgraph-url.js.map +1 -0
  35. package/dist/cjs/index.js +22 -0
  36. package/dist/cjs/index.js.map +1 -0
  37. package/dist/cjs/model/book.js +130 -0
  38. package/dist/cjs/model/book.js.map +1 -0
  39. package/dist/cjs/model/currency.js +3 -0
  40. package/dist/cjs/model/currency.js.map +1 -0
  41. package/dist/cjs/model/depth.js +3 -0
  42. package/dist/cjs/model/depth.js.map +1 -0
  43. package/dist/cjs/model/fee-policy.js +42 -0
  44. package/dist/cjs/model/fee-policy.js.map +1 -0
  45. package/dist/cjs/model/market.js +215 -0
  46. package/dist/cjs/model/market.js.map +1 -0
  47. package/dist/cjs/model/open-order.js +3 -0
  48. package/dist/cjs/model/open-order.js.map +1 -0
  49. package/dist/cjs/package.json +1 -0
  50. package/dist/cjs/signature.js +178 -0
  51. package/dist/cjs/signature.js.map +1 -0
  52. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -0
  53. package/dist/cjs/type.js +6 -0
  54. package/dist/cjs/type.js.map +1 -0
  55. package/dist/cjs/utils/approval.js +46 -0
  56. package/dist/cjs/utils/approval.js.map +1 -0
  57. package/dist/cjs/utils/book-id.js +25 -0
  58. package/dist/cjs/utils/book-id.js.map +1 -0
  59. package/dist/cjs/utils/build-transaction.js +31 -0
  60. package/dist/cjs/utils/build-transaction.js.map +1 -0
  61. package/dist/cjs/utils/decimals.js +17 -0
  62. package/dist/cjs/utils/decimals.js.map +1 -0
  63. package/dist/cjs/utils/market.js +53 -0
  64. package/dist/cjs/utils/market.js.map +1 -0
  65. package/dist/cjs/utils/math.js +83 -0
  66. package/dist/cjs/utils/math.js.map +1 -0
  67. package/dist/cjs/utils/prices.js +22 -0
  68. package/dist/cjs/utils/prices.js.map +1 -0
  69. package/dist/cjs/utils/tick.js +106 -0
  70. package/dist/cjs/utils/tick.js.map +1 -0
  71. package/dist/cjs/utils/time.js +9 -0
  72. package/dist/cjs/utils/time.js.map +1 -0
  73. package/dist/cjs/utils/unit.js +38 -0
  74. package/dist/cjs/utils/unit.js.map +1 -0
  75. package/dist/cjs/view.js +185 -0
  76. package/dist/cjs/view.js.map +1 -0
  77. package/dist/esm/.graphclient/index.js +233 -0
  78. package/dist/esm/.graphclient/index.js.map +1 -0
  79. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js +14483 -0
  80. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js.map +1 -0
  81. package/dist/esm/.graphclient/sources/clober-v2/types.js +3 -0
  82. package/dist/esm/.graphclient/sources/clober-v2/types.js.map +1 -0
  83. package/dist/esm/abis/core/controller-abi.js +986 -0
  84. package/dist/esm/abis/core/controller-abi.js.map +1 -0
  85. package/dist/esm/abis/core/params-abi.js +59 -0
  86. package/dist/esm/abis/core/params-abi.js.map +1 -0
  87. package/dist/esm/apis/currency.js +83 -0
  88. package/dist/esm/apis/currency.js.map +1 -0
  89. package/dist/esm/apis/market.js +59 -0
  90. package/dist/esm/apis/market.js.map +1 -0
  91. package/dist/esm/apis/open-order.js +85 -0
  92. package/dist/esm/apis/open-order.js.map +1 -0
  93. package/dist/esm/approval.js +70 -0
  94. package/dist/esm/approval.js.map +1 -0
  95. package/dist/esm/call.js +535 -0
  96. package/dist/esm/call.js.map +1 -0
  97. package/dist/esm/constants/action.js +11 -0
  98. package/dist/esm/constants/action.js.map +1 -0
  99. package/dist/esm/constants/addresses.js +10 -0
  100. package/dist/esm/constants/addresses.js.map +1 -0
  101. package/dist/esm/constants/chain.js +10 -0
  102. package/dist/esm/constants/chain.js.map +1 -0
  103. package/dist/esm/constants/currency.js +9 -0
  104. package/dist/esm/constants/currency.js.map +1 -0
  105. package/dist/esm/constants/fee.js +4 -0
  106. package/dist/esm/constants/fee.js.map +1 -0
  107. package/dist/esm/constants/price.js +3 -0
  108. package/dist/esm/constants/price.js.map +1 -0
  109. package/dist/esm/constants/subgraph-url.js +5 -0
  110. package/dist/esm/constants/subgraph-url.js.map +1 -0
  111. package/dist/esm/index.js +6 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/esm/model/book.js +126 -0
  114. package/dist/esm/model/book.js.map +1 -0
  115. package/dist/esm/model/currency.js +2 -0
  116. package/dist/esm/model/currency.js.map +1 -0
  117. package/dist/esm/model/depth.js +2 -0
  118. package/dist/esm/model/depth.js.map +1 -0
  119. package/dist/esm/model/fee-policy.js +38 -0
  120. package/dist/esm/model/fee-policy.js.map +1 -0
  121. package/dist/esm/model/market.js +211 -0
  122. package/dist/esm/model/market.js.map +1 -0
  123. package/dist/esm/model/open-order.js +2 -0
  124. package/dist/esm/model/open-order.js.map +1 -0
  125. package/dist/esm/package.json +1 -0
  126. package/dist/esm/signature.js +174 -0
  127. package/dist/esm/signature.js.map +1 -0
  128. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  129. package/dist/esm/type.js +2 -0
  130. package/dist/esm/type.js.map +1 -0
  131. package/dist/esm/utils/approval.js +42 -0
  132. package/dist/esm/utils/approval.js.map +1 -0
  133. package/dist/esm/utils/book-id.js +21 -0
  134. package/dist/esm/utils/book-id.js.map +1 -0
  135. package/dist/esm/utils/build-transaction.js +27 -0
  136. package/dist/esm/utils/build-transaction.js.map +1 -0
  137. package/dist/esm/utils/decimals.js +12 -0
  138. package/dist/esm/utils/decimals.js.map +1 -0
  139. package/dist/esm/utils/market.js +49 -0
  140. package/dist/esm/utils/market.js.map +1 -0
  141. package/dist/esm/utils/math.js +78 -0
  142. package/dist/esm/utils/math.js.map +1 -0
  143. package/dist/esm/utils/prices.js +17 -0
  144. package/dist/esm/utils/prices.js.map +1 -0
  145. package/dist/esm/utils/tick.js +100 -0
  146. package/dist/esm/utils/tick.js.map +1 -0
  147. package/dist/esm/utils/time.js +5 -0
  148. package/dist/esm/utils/time.js.map +1 -0
  149. package/dist/esm/utils/unit.js +34 -0
  150. package/dist/esm/utils/unit.js.map +1 -0
  151. package/dist/esm/view.js +177 -0
  152. package/dist/esm/view.js.map +1 -0
  153. package/dist/types/.graphclient/index.d.ts +1281 -0
  154. package/dist/types/.graphclient/index.d.ts.map +1 -0
  155. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts +3 -0
  156. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts.map +1 -0
  157. package/dist/types/.graphclient/sources/clober-v2/types.d.ts +984 -0
  158. package/dist/types/.graphclient/sources/clober-v2/types.d.ts.map +1 -0
  159. package/dist/types/abis/core/controller-abi.d.ts +757 -0
  160. package/dist/types/abis/core/controller-abi.d.ts.map +1 -0
  161. package/dist/types/abis/core/params-abi.d.ts +21 -0
  162. package/dist/types/abis/core/params-abi.d.ts.map +1 -0
  163. package/dist/types/apis/currency.d.ts +4 -0
  164. package/dist/types/apis/currency.d.ts.map +1 -0
  165. package/dist/types/apis/market.d.ts +4 -0
  166. package/dist/types/apis/market.d.ts.map +1 -0
  167. package/dist/types/apis/open-order.d.ts +5 -0
  168. package/dist/types/apis/open-order.d.ts.map +1 -0
  169. package/dist/types/approval.d.ts +32 -0
  170. package/dist/types/approval.d.ts.map +1 -0
  171. package/dist/types/call.d.ts +234 -0
  172. package/dist/types/call.d.ts.map +1 -0
  173. package/dist/types/constants/action.d.ts +10 -0
  174. package/dist/types/constants/action.d.ts.map +1 -0
  175. package/dist/types/constants/addresses.d.ts +9 -0
  176. package/dist/types/constants/addresses.d.ts.map +1 -0
  177. package/dist/types/constants/chain.d.ts +9 -0
  178. package/dist/types/constants/chain.d.ts.map +1 -0
  179. package/dist/types/constants/currency.d.ts +8 -0
  180. package/dist/types/constants/currency.d.ts.map +1 -0
  181. package/dist/types/constants/fee.d.ts +4 -0
  182. package/dist/types/constants/fee.d.ts.map +1 -0
  183. package/dist/types/constants/price.d.ts +3 -0
  184. package/dist/types/constants/price.d.ts.map +1 -0
  185. package/dist/types/constants/subgraph-url.d.ts +5 -0
  186. package/dist/types/constants/subgraph-url.d.ts.map +1 -0
  187. package/dist/types/index.d.ts +6 -0
  188. package/dist/types/index.d.ts.map +1 -0
  189. package/dist/types/model/book.d.ts +31 -0
  190. package/dist/types/model/book.d.ts.map +1 -0
  191. package/dist/types/model/currency.d.ts +7 -0
  192. package/dist/types/model/currency.d.ts.map +1 -0
  193. package/dist/types/model/depth.d.ts +11 -0
  194. package/dist/types/model/depth.d.ts.map +1 -0
  195. package/dist/types/model/fee-policy.d.ts +15 -0
  196. package/dist/types/model/fee-policy.d.ts.map +1 -0
  197. package/dist/types/model/market.d.ts +44 -0
  198. package/dist/types/model/market.d.ts.map +1 -0
  199. package/dist/types/model/open-order.d.ts +28 -0
  200. package/dist/types/model/open-order.d.ts.map +1 -0
  201. package/dist/types/signature.d.ts +40 -0
  202. package/dist/types/signature.d.ts.map +1 -0
  203. package/dist/types/type.d.ts +34 -0
  204. package/dist/types/type.d.ts.map +1 -0
  205. package/dist/types/utils/approval.d.ts +3 -0
  206. package/dist/types/utils/approval.d.ts.map +1 -0
  207. package/dist/types/utils/book-id.d.ts +2 -0
  208. package/dist/types/utils/book-id.d.ts.map +1 -0
  209. package/dist/types/utils/build-transaction.d.ts +5 -0
  210. package/dist/types/utils/build-transaction.d.ts.map +1 -0
  211. package/dist/types/utils/decimals.d.ts +3 -0
  212. package/dist/types/utils/decimals.d.ts.map +1 -0
  213. package/dist/types/utils/market.d.ts +7 -0
  214. package/dist/types/utils/market.d.ts.map +1 -0
  215. package/dist/types/utils/math.d.ts +3 -0
  216. package/dist/types/utils/math.d.ts.map +1 -0
  217. package/dist/types/utils/prices.d.ts +3 -0
  218. package/dist/types/utils/prices.d.ts.map +1 -0
  219. package/dist/types/utils/tick.d.ts +4 -0
  220. package/dist/types/utils/tick.d.ts.map +1 -0
  221. package/dist/types/utils/time.d.ts +2 -0
  222. package/dist/types/utils/time.d.ts.map +1 -0
  223. package/dist/types/utils/unit.d.ts +4 -0
  224. package/dist/types/utils/unit.d.ts.map +1 -0
  225. package/dist/types/view.d.ts +129 -0
  226. package/dist/types/view.d.ts.map +1 -0
  227. package/package.json +1 -1
@@ -0,0 +1,535 @@
1
+ import { encodeAbiParameters, isAddressEqual, parseUnits, zeroAddress, zeroHash, } from 'viem';
2
+ import { CHAIN_MAP } from './constants/chain';
3
+ import { calculateUnit } from './utils/unit';
4
+ import { CONTROLLER_ABI } from './abis/core/controller-abi';
5
+ import { getDeadlineTimestampInSeconds } from './utils/time';
6
+ import { buildTransaction } from './utils/build-transaction';
7
+ import { CONTRACT_ADDRESSES } from './constants/addresses';
8
+ import { MAKER_DEFAULT_POLICY, TAKER_DEFAULT_POLICY } from './constants/fee';
9
+ import { fetchMarket } from './apis/market';
10
+ import { parsePrice } from './utils/prices';
11
+ import { fromPrice, invertPrice } from './utils/tick';
12
+ import { getExpectedOutput, getOpenOrders } from './view';
13
+ import { toBookId } from './utils/book-id';
14
+ import { MAKE_ORDER_PARAMS_ABI, TAKE_ORDER_PARAMS_ABI, } from './abis/core/params-abi';
15
+ import { Action } from './constants/action';
16
+ import { fetchIsApprovedForAll } from './utils/approval';
17
+ /**
18
+ * Build a transaction to open a market.
19
+ *
20
+ * @param chainId The chain ID of the blockchain.
21
+ * @param inputToken The address of the input token.
22
+ * @param outputToken The address of the output token.
23
+ * @param options
24
+ * @param options.rpcUrl The RPC URL of the blockchain.
25
+ * @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
26
+ * @example
27
+ * import { openMarket } from '@clober/v2-sdk'
28
+ *
29
+ * const transaction = await openMarket(
30
+ * 421614,
31
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
32
+ * '0x0000000000000000000000000000000000000000'
33
+ * )
34
+ */
35
+ export const openMarket = async (chainId, inputToken, outputToken, options) => {
36
+ const market = await fetchMarket(chainId, [inputToken, outputToken], options?.rpcUrl);
37
+ const isBid = isAddressEqual(market.quote.address, inputToken);
38
+ if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
39
+ const unit = await calculateUnit(chainId, isBid ? market.quote : market.base, options?.rpcUrl);
40
+ return buildTransaction(chainId, {
41
+ address: CONTRACT_ADDRESSES[chainId].Controller,
42
+ abi: CONTROLLER_ABI,
43
+ functionName: 'open',
44
+ args: [
45
+ [
46
+ {
47
+ key: {
48
+ base: inputToken,
49
+ unit,
50
+ quote: outputToken,
51
+ makerPolicy: MAKER_DEFAULT_POLICY.value,
52
+ hooks: zeroAddress,
53
+ takerPolicy: TAKER_DEFAULT_POLICY.value,
54
+ },
55
+ hookData: zeroHash,
56
+ },
57
+ ],
58
+ getDeadlineTimestampInSeconds(),
59
+ ],
60
+ }, options?.rpcUrl);
61
+ }
62
+ return undefined;
63
+ };
64
+ /**
65
+ * Places a limit order on the specified chain for trading tokens.
66
+ *
67
+ * @param {CHAIN_IDS} chainId The chain ID.
68
+ * @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
69
+ * @param {`0x${string}`} inputToken The address of the token to be used as input.
70
+ * @param {`0x${string}`} outputToken The address of the token to be received as output.
71
+ * @param {string} amount The amount of input tokens for the order.
72
+ * @param {string} price The price at which the order should be executed.
73
+ * @param {Object} [options] Optional parameters for the limit order.
74
+ * @param {PermitSignature} [options.signature] The permit signature for token approval.
75
+ * @param {boolean} [options.postOnly] A boolean indicating whether the order is only to be made not taken.
76
+ * @param {string} [options.rpcUrl] The RPC URL of the blockchain.
77
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
78
+ * @example
79
+ * import { signERC20Permit, limitOrder } from '@clober/v2-sdk'
80
+ * import { privateKeyToAccount } from 'viem/accounts'
81
+ *
82
+ * const signature = await signERC20Permit(
83
+ * 421614,
84
+ * privateKeyToAccount('0x...'),
85
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
86
+ * '100.123'
87
+ * )
88
+ *
89
+ * const transaction = await limitOrder(
90
+ * 421614,
91
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
92
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
93
+ * '0x0000000000000000000000000000000000000000',
94
+ * '100.123', // 100.123 USDC
95
+ * '4000.01', // price at 4000.01 (ETH/USDC)
96
+ * { signature }
97
+ * )
98
+ *
99
+ * @example
100
+ * import { limitOrder } from '@clober/v2-sdk'
101
+ *
102
+ * const transaction = await limitOrder(
103
+ * 421614,
104
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
105
+ * '0x0000000000000000000000000000000000000000',
106
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
107
+ * '0.13', // 0.13 ETH
108
+ * '4000.01', // price at 4000.01 (ETH/USDC)
109
+ * )
110
+ */
111
+ export const limitOrder = async (chainId, userAddress, inputToken, outputToken, amount, price, options) => {
112
+ const { signature, postOnly, rpcUrl } = options || {
113
+ signature: undefined,
114
+ postOnly: false,
115
+ rpcUrl: undefined,
116
+ };
117
+ const market = await fetchMarket(chainId, [inputToken, outputToken], rpcUrl);
118
+ const isBid = isAddressEqual(market.quote.address, inputToken);
119
+ if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
120
+ throw new Error(`
121
+ import { openMarket } from '@clober/v2-sdk'
122
+
123
+ const transaction = await openMarket(
124
+ ${chainId},
125
+ '${inputToken}',
126
+ '${outputToken}',
127
+ )
128
+ `);
129
+ }
130
+ const rawPrice = parsePrice(Number(price), market.quote.decimals, market.base.decimals);
131
+ const tick = isBid ? fromPrice(rawPrice) : fromPrice(invertPrice(rawPrice));
132
+ const tokensToSettle = [inputToken, outputToken].filter((address) => !isAddressEqual(address, zeroAddress));
133
+ const quoteAmount = parseUnits(amount, isBid ? market.quote.decimals : market.base.decimals);
134
+ const [unit, { result }] = await Promise.all([
135
+ calculateUnit(chainId, isBid ? market.quote : market.base, rpcUrl),
136
+ getExpectedOutput(chainId, inputToken, outputToken, amount, rpcUrl
137
+ ? {
138
+ limitPrice: price,
139
+ rpcUrl,
140
+ }
141
+ : {
142
+ limitPrice: price,
143
+ }),
144
+ ]);
145
+ const isETH = isAddressEqual(inputToken, zeroAddress);
146
+ const permitParamsList = signature && !isETH
147
+ ? [
148
+ {
149
+ token: inputToken,
150
+ permitAmount: quoteAmount,
151
+ signature,
152
+ },
153
+ ]
154
+ : [];
155
+ const makeParam = {
156
+ id: toBookId(inputToken, outputToken, unit),
157
+ tick: Number(tick),
158
+ quoteAmount,
159
+ hookData: zeroHash,
160
+ };
161
+ if (postOnly === true || result.length === 0) {
162
+ return buildTransaction(chainId, {
163
+ chain: CHAIN_MAP[chainId],
164
+ account: userAddress,
165
+ address: CONTRACT_ADDRESSES[chainId].Controller,
166
+ abi: CONTROLLER_ABI,
167
+ functionName: 'make',
168
+ args: [
169
+ [makeParam],
170
+ tokensToSettle,
171
+ permitParamsList,
172
+ getDeadlineTimestampInSeconds(),
173
+ ],
174
+ value: isETH ? quoteAmount : 0n,
175
+ }, options?.rpcUrl);
176
+ }
177
+ else if (result.length === 1) {
178
+ // take and make
179
+ return buildTransaction(chainId, {
180
+ chain: CHAIN_MAP[chainId],
181
+ account: userAddress,
182
+ address: CONTRACT_ADDRESSES[chainId].Controller,
183
+ abi: CONTROLLER_ABI,
184
+ functionName: 'limit',
185
+ args: [
186
+ [
187
+ {
188
+ takeBookId: result[0].bookId,
189
+ makeBookId: makeParam.id,
190
+ limitPrice: rawPrice,
191
+ tick: makeParam.tick,
192
+ quoteAmount,
193
+ takeHookData: zeroHash,
194
+ makeHookData: makeParam.hookData,
195
+ },
196
+ ],
197
+ tokensToSettle,
198
+ permitParamsList,
199
+ getDeadlineTimestampInSeconds(),
200
+ ],
201
+ value: isETH ? quoteAmount : 0n,
202
+ }, options?.rpcUrl);
203
+ }
204
+ else {
205
+ // take x n and make
206
+ const makeAmount = quoteAmount -
207
+ result.reduce((acc, { spendAmount }) => acc + spendAmount, 0n);
208
+ return buildTransaction(chainId, {
209
+ chain: CHAIN_MAP[chainId],
210
+ account: userAddress,
211
+ address: CONTRACT_ADDRESSES[chainId].Controller,
212
+ abi: CONTROLLER_ABI,
213
+ functionName: 'execute',
214
+ args: [
215
+ [
216
+ ...result.map(() => Action.TAKE),
217
+ ...(makeAmount > 0n ? [Action.MAKE] : []),
218
+ ],
219
+ [
220
+ ...result.map(({ bookId, takenAmount }) => encodeAbiParameters(TAKE_ORDER_PARAMS_ABI, [
221
+ {
222
+ id: bookId,
223
+ limitPrice: rawPrice,
224
+ quoteAmount: takenAmount,
225
+ hookData: zeroHash,
226
+ },
227
+ ])),
228
+ ...(makeAmount > 0n
229
+ ? [
230
+ encodeAbiParameters(MAKE_ORDER_PARAMS_ABI, [
231
+ {
232
+ ...makeParam,
233
+ quoteAmount: makeAmount,
234
+ },
235
+ ]),
236
+ ]
237
+ : []),
238
+ ],
239
+ tokensToSettle,
240
+ permitParamsList,
241
+ [],
242
+ getDeadlineTimestampInSeconds(),
243
+ ],
244
+ value: isETH ? quoteAmount : 0n,
245
+ }, options?.rpcUrl);
246
+ }
247
+ };
248
+ /**
249
+ * Executes a market order on the specified chain for trading tokens.
250
+ *
251
+ * @param {CHAIN_IDS} chainId The chain ID.
252
+ * @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
253
+ * @param {`0x${string}`} inputToken The address of the token to be used as input.
254
+ * @param {`0x${string}`} outputToken The address of the token to be received as output.
255
+ * @param {string} amount The amount of input tokens for the order.
256
+ * @param {Object} [options] Optional parameters for the limit order.
257
+ * @param {PermitSignature} [options.signature] The permit signature for token approval.
258
+ * @param {string} [options.rpcUrl] The RPC URL of the blockchain.
259
+ * @param {string} [options.limitPrice] The upper bound price to tolerate for the market bid, or the lower bound price to tolerate for the market ask.
260
+ * if the limit price is not provided, unlimited slippage is allowed.
261
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
262
+ * @example
263
+ * import { signERC20Permit, marketOrder } from '@clober/v2-sdk'
264
+ * import { privateKeyToAccount } from 'viem/accounts'
265
+ *
266
+ * const signature = await signERC20Permit(
267
+ * 421614,
268
+ * privateKeyToAccount('0x...'),
269
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
270
+ * '100.123'
271
+ * )
272
+ *
273
+ * const transaction = await marketOrder(
274
+ * 421614,
275
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
276
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
277
+ * '0x0000000000000000000000000000000000000000',
278
+ * '100.123', // 100.123 USDC
279
+ * { signature }
280
+ * )
281
+ *
282
+ * @example
283
+ * import { marketOrder } from '@clober/v2-sdk'
284
+ *
285
+ * const transaction = await limitOrder(
286
+ * 421614,
287
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
288
+ * '0x0000000000000000000000000000000000000000',
289
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
290
+ * '0.13', // 0.13 ETH
291
+ * )
292
+ */
293
+ export const marketOrder = async (chainId, userAddress, inputToken, outputToken, amount, options) => {
294
+ const { signature, rpcUrl, limitPrice } = options || {
295
+ signature: undefined,
296
+ rpcUrl: undefined,
297
+ limitPrice: undefined,
298
+ };
299
+ const market = await fetchMarket(chainId, [inputToken, outputToken], rpcUrl);
300
+ const isBid = isAddressEqual(market.quote.address, inputToken);
301
+ if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
302
+ throw new Error(`
303
+ import { openMarket } from '@clober/v2-sdk'
304
+
305
+ const transaction = await openMarket(
306
+ ${chainId},
307
+ '${inputToken}',
308
+ '${outputToken}',
309
+ )
310
+ `);
311
+ }
312
+ const rawLimitPrice = parsePrice(Number(limitPrice ?? '0'), market.quote.decimals, market.base.decimals);
313
+ const tokensToSettle = [inputToken, outputToken].filter((address) => !isAddressEqual(address, zeroAddress));
314
+ const quoteAmount = parseUnits(amount, isBid ? market.quote.decimals : market.base.decimals);
315
+ const { result } = await getExpectedOutput(chainId, inputToken, outputToken, amount, rpcUrl
316
+ ? {
317
+ rpcUrl,
318
+ }
319
+ : {});
320
+ const isETH = isAddressEqual(inputToken, zeroAddress);
321
+ const permitParamsList = signature && !isETH
322
+ ? [
323
+ {
324
+ token: inputToken,
325
+ permitAmount: quoteAmount,
326
+ signature,
327
+ },
328
+ ]
329
+ : [];
330
+ return buildTransaction(chainId, {
331
+ chain: CHAIN_MAP[chainId],
332
+ account: userAddress,
333
+ address: CONTRACT_ADDRESSES[chainId].Controller,
334
+ abi: CONTROLLER_ABI,
335
+ functionName: 'take',
336
+ args: [
337
+ result.map(({ bookId, takenAmount }) => ({
338
+ id: bookId,
339
+ limitPrice: isBid ? invertPrice(rawLimitPrice) : rawLimitPrice,
340
+ quoteAmount: takenAmount,
341
+ hookData: zeroHash,
342
+ })),
343
+ tokensToSettle,
344
+ permitParamsList,
345
+ getDeadlineTimestampInSeconds(),
346
+ ],
347
+ value: isETH ? quoteAmount : 0n,
348
+ }, options?.rpcUrl);
349
+ };
350
+ /**
351
+ * Claims specified open order for settlement.
352
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
353
+ *
354
+ * @param {CHAIN_IDS} chainId The chain ID.
355
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
356
+ * @param {string} id An ID representing the open order to be claimed.
357
+ * @param {Object} [options] Optional parameters for claiming orders.
358
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
359
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
360
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
361
+ * @example
362
+ * import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
363
+ *
364
+ * const openOrders = await getOpenOrders(
365
+ * 421614,
366
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
367
+ * )
368
+ * const transaction = await claimOrders(
369
+ * 421614,
370
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
371
+ * openOrders.map((order) => order.id)
372
+ * )
373
+ */
374
+ export const claimOrder = async (chainId, userAddress, id, options) => {
375
+ return claimOrders(chainId, userAddress, [id], options);
376
+ };
377
+ /**
378
+ * Claims specified open orders for settlement.
379
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
380
+ *
381
+ * @param {CHAIN_IDS} chainId The chain ID.
382
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
383
+ * @param {string[]} ids An array of IDs representing the open orders to be claimed.
384
+ * @param {Object} [options] Optional parameters for claiming orders.
385
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
386
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
387
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
388
+ * @example
389
+ * import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
390
+ *
391
+ * const openOrders = await getOpenOrders(
392
+ * 421614,
393
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
394
+ * )
395
+ * const transaction = await claimOrders(
396
+ * 421614,
397
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
398
+ * openOrders.map((order) => order.id)
399
+ * )
400
+ */
401
+ export const claimOrders = async (chainId, userAddress, ids, options) => {
402
+ const { rpcUrl } = options || {
403
+ rpcUrl: undefined,
404
+ };
405
+ const isApprovedForAll = await fetchIsApprovedForAll(chainId, userAddress, options?.rpcUrl);
406
+ if (!isApprovedForAll) {
407
+ throw new Error(`
408
+ import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
409
+
410
+ const hash = await setApprovalOfOpenOrdersForAll(
411
+ ${chainId},
412
+ privateKeyToAccount('0x...')
413
+ )
414
+ `);
415
+ }
416
+ const openOrders = (await getOpenOrders(chainId, userAddress, rpcUrl ? { rpcUrl } : {})).filter((order) => ids.includes(order.id));
417
+ if (openOrders.length === 0) {
418
+ throw new Error(`No claimable open orders found for ${userAddress}`);
419
+ }
420
+ const tokensToSettle = openOrders
421
+ .map((order) => [order.outputCurrency.address, order.inputCurrency.address])
422
+ .flat()
423
+ .filter((address, index, self) => self.findIndex((c) => isAddressEqual(c, address)) === index)
424
+ .filter((address) => !isAddressEqual(address, zeroAddress));
425
+ return buildTransaction(chainId, {
426
+ chain: CHAIN_MAP[chainId],
427
+ account: userAddress,
428
+ address: CONTRACT_ADDRESSES[chainId].Controller,
429
+ abi: CONTROLLER_ABI,
430
+ functionName: 'claim',
431
+ args: [
432
+ openOrders.map((order) => ({
433
+ id: BigInt(order.id),
434
+ hookData: zeroHash,
435
+ })),
436
+ tokensToSettle,
437
+ [],
438
+ getDeadlineTimestampInSeconds(),
439
+ ],
440
+ }, options?.rpcUrl);
441
+ };
442
+ /**
443
+ * Cancels specified open order if the order is not fully filled.
444
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
445
+ *
446
+ * @param {CHAIN_IDS} chainId The chain ID.
447
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
448
+ * @param {string} id An ID representing the open order to be canceled
449
+ * @param {Object} [options] Optional parameters for canceling orders.
450
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
451
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
452
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
453
+ * @example
454
+ * import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
455
+ *
456
+ * const openOrders = await getOpenOrders(
457
+ * 421614,
458
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
459
+ * )
460
+ * const transaction = await cancelOrders(
461
+ * 421614,
462
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
463
+ * openOrders.map((order) => order.id)
464
+ * )
465
+ */
466
+ export const cancelOrder = async (chainId, userAddress, id, options) => {
467
+ return cancelOrders(chainId, userAddress, [id], options);
468
+ };
469
+ /**
470
+ * Cancels specified open orders if orders are not fully filled.
471
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
472
+ *
473
+ * @param {CHAIN_IDS} chainId The chain ID.
474
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
475
+ * @param {string[]} ids An array of IDs representing the open orders to be canceled.
476
+ * @param {Object} [options] Optional parameters for canceling orders.
477
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
478
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
479
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
480
+ * @example
481
+ * import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
482
+ *
483
+ * const openOrders = await getOpenOrders(
484
+ * 421614,
485
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
486
+ * )
487
+ * const transaction = await cancelOrders(
488
+ * 421614,
489
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
490
+ * openOrders.map((order) => order.id)
491
+ * )
492
+ */
493
+ export const cancelOrders = async (chainId, userAddress, ids, options) => {
494
+ const { rpcUrl } = options || {
495
+ rpcUrl: undefined,
496
+ };
497
+ const isApprovedForAll = await fetchIsApprovedForAll(chainId, userAddress, options?.rpcUrl);
498
+ if (!isApprovedForAll) {
499
+ throw new Error(`
500
+ import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
501
+
502
+ const hash = await setApprovalOfOpenOrdersForAll(
503
+ ${chainId},
504
+ privateKeyToAccount('0x...')
505
+ )
506
+ `);
507
+ }
508
+ const openOrders = (await getOpenOrders(chainId, userAddress, rpcUrl ? { rpcUrl } : {})).filter((order) => ids.includes(order.id) && order.cancelable);
509
+ if (openOrders.length === 0) {
510
+ throw new Error(`No cancelable open orders found for ${userAddress}`);
511
+ }
512
+ const tokensToSettle = openOrders
513
+ .map((order) => [order.outputCurrency.address, order.inputCurrency.address])
514
+ .flat()
515
+ .filter((address, index, self) => self.findIndex((c) => isAddressEqual(c, address)) === index)
516
+ .filter((address) => !isAddressEqual(address, zeroAddress));
517
+ return buildTransaction(chainId, {
518
+ chain: CHAIN_MAP[chainId],
519
+ account: userAddress,
520
+ address: CONTRACT_ADDRESSES[chainId].Controller,
521
+ abi: CONTROLLER_ABI,
522
+ functionName: 'cancel',
523
+ args: [
524
+ openOrders.map((order) => ({
525
+ id: BigInt(order.id),
526
+ leftQuoteAmount: 0n,
527
+ hookData: zeroHash,
528
+ })),
529
+ tokensToSettle,
530
+ [],
531
+ getDeadlineTimestampInSeconds(),
532
+ ],
533
+ }, options?.rpcUrl);
534
+ };
535
+ //# sourceMappingURL=call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export var Action;
2
+ (function (Action) {
3
+ Action[Action["OPEN"] = 0] = "OPEN";
4
+ Action[Action["MAKE"] = 1] = "MAKE";
5
+ Action[Action["LIMIT"] = 2] = "LIMIT";
6
+ Action[Action["TAKE"] = 3] = "TAKE";
7
+ Action[Action["SPEND"] = 4] = "SPEND";
8
+ Action[Action["CLAIM"] = 5] = "CLAIM";
9
+ Action[Action["CANCEL"] = 6] = "CANCEL";
10
+ })(Action || (Action = {}));
11
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/constants/action.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,MAQX;AARD,WAAY,MAAM;IAChB,mCAAI,CAAA;IACJ,mCAAI,CAAA;IACJ,qCAAK,CAAA;IACL,mCAAI,CAAA;IACJ,qCAAK,CAAA;IACL,qCAAK,CAAA;IACL,uCAAM,CAAA;AACR,CAAC,EARW,MAAM,KAAN,MAAM,QAQjB"}
@@ -0,0 +1,10 @@
1
+ import { getAddress } from 'viem';
2
+ import { CHAIN_IDS } from './chain';
3
+ export const CONTRACT_ADDRESSES = {
4
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: {
5
+ Controller: getAddress('0xfAe4A04fa491DC21F77796394532a1B62d8331BF'),
6
+ BookManager: getAddress('0x4a4eaF7382821da4Fb85e8A8d515f5555383d58A'),
7
+ BookViewer: getAddress('0xA7603C4c895a533E66c30EA76cC6F6A6A0c5cbFe'),
8
+ },
9
+ };
10
+ //# sourceMappingURL=addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/constants/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAM3B;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,UAAU,EAAE,UAAU,CAAC,4CAA4C,CAAC;QACpE,WAAW,EAAE,UAAU,CAAC,4CAA4C,CAAC;QACrE,UAAU,EAAE,UAAU,CAAC,4CAA4C,CAAC;KACrE;CACF,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { arbitrumSepolia, mainnet } from 'viem/chains';
2
+ export var CHAIN_IDS;
3
+ (function (CHAIN_IDS) {
4
+ CHAIN_IDS[CHAIN_IDS["MAINNET"] = mainnet.id] = "MAINNET";
5
+ CHAIN_IDS[CHAIN_IDS["ARBITRUM_SEPOLIA"] = arbitrumSepolia.id] = "ARBITRUM_SEPOLIA";
6
+ })(CHAIN_IDS || (CHAIN_IDS = {}));
7
+ export const CHAIN_MAP = {
8
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: arbitrumSepolia,
9
+ };
10
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/constants/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,iCAAU,OAAO,CAAC,EAAE,aAAA,CAAA;IACpB,0CAAmB,eAAe,CAAC,EAAE,sBAAA,CAAA;AACvC,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAC,MAAM,SAAS,GAElB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,eAAe;CAC9C,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { zeroAddress } from 'viem';
2
+ import { CHAIN_IDS } from './chain';
3
+ export const WETH_ADDRESSES = {
4
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: [zeroAddress],
5
+ };
6
+ export const STABLE_COIN_ADDRESSES = {
7
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: ['0x00BFD44e79FB7f6dd5887A9426c8EF85A0CD23e0'],
8
+ };
9
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/constants/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,cAAc,GAEvB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC;CAC5C,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAE9B;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,4CAA4C,CAAC;CAC7E,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { FeePolicy } from '../model/fee-policy';
2
+ export const MAKER_DEFAULT_POLICY = new FeePolicy(true, -300n); // -0.03%
3
+ export const TAKER_DEFAULT_POLICY = new FeePolicy(true, 1000n); // 0.1%
4
+ //# sourceMappingURL=fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/constants/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA,CAAC,SAAS;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,CAAC,OAAO"}
@@ -0,0 +1,3 @@
1
+ export const MAX_PRICE = 4647684107270898330752324302845848816923571339324334n;
2
+ export const PRICE_PRECISION = 96n;
3
+ //# sourceMappingURL=price.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/constants/price.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,qDAAqD,CAAA;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { CHAIN_IDS } from './chain';
2
+ export const SUBGRAPH_URL = {
3
+ [CHAIN_IDS.ARBITRUM_SEPOLIA]: 'https://subgraph.satsuma-prod.com/f6a8c4889b7b/clober/v2-core-subgraph/api',
4
+ };
5
+ //# sourceMappingURL=subgraph-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph-url.js","sourceRoot":"","sources":["../../../src/constants/subgraph-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAC1B,4EAA4E;CAC/E,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './type';
2
+ export * from './view';
3
+ export * from './call';
4
+ export * from './signature';
5
+ export * from './approval';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}