@clober/v2-sdk 0.0.1-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 (228) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/.graphclient/index.js +243 -0
  3. package/dist/cjs/.graphclient/index.js.map +1 -0
  4. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js +14482 -0
  5. package/dist/cjs/.graphclient/sources/clober-v2/introspectionSchema.js.map +1 -0
  6. package/dist/cjs/.graphclient/sources/clober-v2/types.js +4 -0
  7. package/dist/cjs/.graphclient/sources/clober-v2/types.js.map +1 -0
  8. package/dist/cjs/abis/core/controller-abi.js +989 -0
  9. package/dist/cjs/abis/core/controller-abi.js.map +1 -0
  10. package/dist/cjs/abis/core/params-abi.js +62 -0
  11. package/dist/cjs/abis/core/params-abi.js.map +1 -0
  12. package/dist/cjs/apis/currency.js +87 -0
  13. package/dist/cjs/apis/currency.js.map +1 -0
  14. package/dist/cjs/apis/market.js +63 -0
  15. package/dist/cjs/apis/market.js.map +1 -0
  16. package/dist/cjs/apis/open-order.js +90 -0
  17. package/dist/cjs/apis/open-order.js.map +1 -0
  18. package/dist/cjs/approval.js +74 -0
  19. package/dist/cjs/approval.js.map +1 -0
  20. package/dist/cjs/call.js +545 -0
  21. package/dist/cjs/call.js.map +1 -0
  22. package/dist/cjs/constants/action.js +14 -0
  23. package/dist/cjs/constants/action.js.map +1 -0
  24. package/dist/cjs/constants/addresses.js +13 -0
  25. package/dist/cjs/constants/addresses.js.map +1 -0
  26. package/dist/cjs/constants/chain.js +13 -0
  27. package/dist/cjs/constants/chain.js.map +1 -0
  28. package/dist/cjs/constants/currency.js +12 -0
  29. package/dist/cjs/constants/currency.js.map +1 -0
  30. package/dist/cjs/constants/fee.js +7 -0
  31. package/dist/cjs/constants/fee.js.map +1 -0
  32. package/dist/cjs/constants/price.js +6 -0
  33. package/dist/cjs/constants/price.js.map +1 -0
  34. package/dist/cjs/constants/subgraph-url.js +8 -0
  35. package/dist/cjs/constants/subgraph-url.js.map +1 -0
  36. package/dist/cjs/index.js +22 -0
  37. package/dist/cjs/index.js.map +1 -0
  38. package/dist/cjs/model/book.js +130 -0
  39. package/dist/cjs/model/book.js.map +1 -0
  40. package/dist/cjs/model/currency.js +3 -0
  41. package/dist/cjs/model/currency.js.map +1 -0
  42. package/dist/cjs/model/depth.js +3 -0
  43. package/dist/cjs/model/depth.js.map +1 -0
  44. package/dist/cjs/model/fee-policy.js +42 -0
  45. package/dist/cjs/model/fee-policy.js.map +1 -0
  46. package/dist/cjs/model/market.js +215 -0
  47. package/dist/cjs/model/market.js.map +1 -0
  48. package/dist/cjs/model/open-order.js +3 -0
  49. package/dist/cjs/model/open-order.js.map +1 -0
  50. package/dist/cjs/package.json +1 -0
  51. package/dist/cjs/signature.js +178 -0
  52. package/dist/cjs/signature.js.map +1 -0
  53. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -0
  54. package/dist/cjs/type.js +6 -0
  55. package/dist/cjs/type.js.map +1 -0
  56. package/dist/cjs/utils/approval.js +46 -0
  57. package/dist/cjs/utils/approval.js.map +1 -0
  58. package/dist/cjs/utils/book-id.js +25 -0
  59. package/dist/cjs/utils/book-id.js.map +1 -0
  60. package/dist/cjs/utils/build-transaction.js +31 -0
  61. package/dist/cjs/utils/build-transaction.js.map +1 -0
  62. package/dist/cjs/utils/decimals.js +17 -0
  63. package/dist/cjs/utils/decimals.js.map +1 -0
  64. package/dist/cjs/utils/market.js +53 -0
  65. package/dist/cjs/utils/market.js.map +1 -0
  66. package/dist/cjs/utils/math.js +83 -0
  67. package/dist/cjs/utils/math.js.map +1 -0
  68. package/dist/cjs/utils/prices.js +22 -0
  69. package/dist/cjs/utils/prices.js.map +1 -0
  70. package/dist/cjs/utils/tick.js +106 -0
  71. package/dist/cjs/utils/tick.js.map +1 -0
  72. package/dist/cjs/utils/time.js +9 -0
  73. package/dist/cjs/utils/time.js.map +1 -0
  74. package/dist/cjs/utils/unit.js +38 -0
  75. package/dist/cjs/utils/unit.js.map +1 -0
  76. package/dist/cjs/view.js +185 -0
  77. package/dist/cjs/view.js.map +1 -0
  78. package/dist/esm/.graphclient/index.js +233 -0
  79. package/dist/esm/.graphclient/index.js.map +1 -0
  80. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js +14480 -0
  81. package/dist/esm/.graphclient/sources/clober-v2/introspectionSchema.js.map +1 -0
  82. package/dist/esm/.graphclient/sources/clober-v2/types.js +3 -0
  83. package/dist/esm/.graphclient/sources/clober-v2/types.js.map +1 -0
  84. package/dist/esm/abis/core/controller-abi.js +986 -0
  85. package/dist/esm/abis/core/controller-abi.js.map +1 -0
  86. package/dist/esm/abis/core/params-abi.js +59 -0
  87. package/dist/esm/abis/core/params-abi.js.map +1 -0
  88. package/dist/esm/apis/currency.js +83 -0
  89. package/dist/esm/apis/currency.js.map +1 -0
  90. package/dist/esm/apis/market.js +59 -0
  91. package/dist/esm/apis/market.js.map +1 -0
  92. package/dist/esm/apis/open-order.js +85 -0
  93. package/dist/esm/apis/open-order.js.map +1 -0
  94. package/dist/esm/approval.js +70 -0
  95. package/dist/esm/approval.js.map +1 -0
  96. package/dist/esm/call.js +535 -0
  97. package/dist/esm/call.js.map +1 -0
  98. package/dist/esm/constants/action.js +11 -0
  99. package/dist/esm/constants/action.js.map +1 -0
  100. package/dist/esm/constants/addresses.js +10 -0
  101. package/dist/esm/constants/addresses.js.map +1 -0
  102. package/dist/esm/constants/chain.js +10 -0
  103. package/dist/esm/constants/chain.js.map +1 -0
  104. package/dist/esm/constants/currency.js +9 -0
  105. package/dist/esm/constants/currency.js.map +1 -0
  106. package/dist/esm/constants/fee.js +4 -0
  107. package/dist/esm/constants/fee.js.map +1 -0
  108. package/dist/esm/constants/price.js +3 -0
  109. package/dist/esm/constants/price.js.map +1 -0
  110. package/dist/esm/constants/subgraph-url.js +5 -0
  111. package/dist/esm/constants/subgraph-url.js.map +1 -0
  112. package/dist/esm/index.js +6 -0
  113. package/dist/esm/index.js.map +1 -0
  114. package/dist/esm/model/book.js +126 -0
  115. package/dist/esm/model/book.js.map +1 -0
  116. package/dist/esm/model/currency.js +2 -0
  117. package/dist/esm/model/currency.js.map +1 -0
  118. package/dist/esm/model/depth.js +2 -0
  119. package/dist/esm/model/depth.js.map +1 -0
  120. package/dist/esm/model/fee-policy.js +38 -0
  121. package/dist/esm/model/fee-policy.js.map +1 -0
  122. package/dist/esm/model/market.js +211 -0
  123. package/dist/esm/model/market.js.map +1 -0
  124. package/dist/esm/model/open-order.js +2 -0
  125. package/dist/esm/model/open-order.js.map +1 -0
  126. package/dist/esm/package.json +1 -0
  127. package/dist/esm/signature.js +174 -0
  128. package/dist/esm/signature.js.map +1 -0
  129. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  130. package/dist/esm/type.js +2 -0
  131. package/dist/esm/type.js.map +1 -0
  132. package/dist/esm/utils/approval.js +42 -0
  133. package/dist/esm/utils/approval.js.map +1 -0
  134. package/dist/esm/utils/book-id.js +21 -0
  135. package/dist/esm/utils/book-id.js.map +1 -0
  136. package/dist/esm/utils/build-transaction.js +27 -0
  137. package/dist/esm/utils/build-transaction.js.map +1 -0
  138. package/dist/esm/utils/decimals.js +12 -0
  139. package/dist/esm/utils/decimals.js.map +1 -0
  140. package/dist/esm/utils/market.js +49 -0
  141. package/dist/esm/utils/market.js.map +1 -0
  142. package/dist/esm/utils/math.js +78 -0
  143. package/dist/esm/utils/math.js.map +1 -0
  144. package/dist/esm/utils/prices.js +17 -0
  145. package/dist/esm/utils/prices.js.map +1 -0
  146. package/dist/esm/utils/tick.js +100 -0
  147. package/dist/esm/utils/tick.js.map +1 -0
  148. package/dist/esm/utils/time.js +5 -0
  149. package/dist/esm/utils/time.js.map +1 -0
  150. package/dist/esm/utils/unit.js +34 -0
  151. package/dist/esm/utils/unit.js.map +1 -0
  152. package/dist/esm/view.js +177 -0
  153. package/dist/esm/view.js.map +1 -0
  154. package/dist/types/.graphclient/index.d.ts +1281 -0
  155. package/dist/types/.graphclient/index.d.ts.map +1 -0
  156. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts +3 -0
  157. package/dist/types/.graphclient/sources/clober-v2/introspectionSchema.d.ts.map +1 -0
  158. package/dist/types/.graphclient/sources/clober-v2/types.d.ts +984 -0
  159. package/dist/types/.graphclient/sources/clober-v2/types.d.ts.map +1 -0
  160. package/dist/types/abis/core/controller-abi.d.ts +757 -0
  161. package/dist/types/abis/core/controller-abi.d.ts.map +1 -0
  162. package/dist/types/abis/core/params-abi.d.ts +21 -0
  163. package/dist/types/abis/core/params-abi.d.ts.map +1 -0
  164. package/dist/types/apis/currency.d.ts +4 -0
  165. package/dist/types/apis/currency.d.ts.map +1 -0
  166. package/dist/types/apis/market.d.ts +4 -0
  167. package/dist/types/apis/market.d.ts.map +1 -0
  168. package/dist/types/apis/open-order.d.ts +5 -0
  169. package/dist/types/apis/open-order.d.ts.map +1 -0
  170. package/dist/types/approval.d.ts +32 -0
  171. package/dist/types/approval.d.ts.map +1 -0
  172. package/dist/types/call.d.ts +234 -0
  173. package/dist/types/call.d.ts.map +1 -0
  174. package/dist/types/constants/action.d.ts +10 -0
  175. package/dist/types/constants/action.d.ts.map +1 -0
  176. package/dist/types/constants/addresses.d.ts +9 -0
  177. package/dist/types/constants/addresses.d.ts.map +1 -0
  178. package/dist/types/constants/chain.d.ts +9 -0
  179. package/dist/types/constants/chain.d.ts.map +1 -0
  180. package/dist/types/constants/currency.d.ts +8 -0
  181. package/dist/types/constants/currency.d.ts.map +1 -0
  182. package/dist/types/constants/fee.d.ts +4 -0
  183. package/dist/types/constants/fee.d.ts.map +1 -0
  184. package/dist/types/constants/price.d.ts +3 -0
  185. package/dist/types/constants/price.d.ts.map +1 -0
  186. package/dist/types/constants/subgraph-url.d.ts +5 -0
  187. package/dist/types/constants/subgraph-url.d.ts.map +1 -0
  188. package/dist/types/index.d.ts +6 -0
  189. package/dist/types/index.d.ts.map +1 -0
  190. package/dist/types/model/book.d.ts +31 -0
  191. package/dist/types/model/book.d.ts.map +1 -0
  192. package/dist/types/model/currency.d.ts +7 -0
  193. package/dist/types/model/currency.d.ts.map +1 -0
  194. package/dist/types/model/depth.d.ts +11 -0
  195. package/dist/types/model/depth.d.ts.map +1 -0
  196. package/dist/types/model/fee-policy.d.ts +15 -0
  197. package/dist/types/model/fee-policy.d.ts.map +1 -0
  198. package/dist/types/model/market.d.ts +44 -0
  199. package/dist/types/model/market.d.ts.map +1 -0
  200. package/dist/types/model/open-order.d.ts +28 -0
  201. package/dist/types/model/open-order.d.ts.map +1 -0
  202. package/dist/types/signature.d.ts +40 -0
  203. package/dist/types/signature.d.ts.map +1 -0
  204. package/dist/types/type.d.ts +34 -0
  205. package/dist/types/type.d.ts.map +1 -0
  206. package/dist/types/utils/approval.d.ts +3 -0
  207. package/dist/types/utils/approval.d.ts.map +1 -0
  208. package/dist/types/utils/book-id.d.ts +2 -0
  209. package/dist/types/utils/book-id.d.ts.map +1 -0
  210. package/dist/types/utils/build-transaction.d.ts +5 -0
  211. package/dist/types/utils/build-transaction.d.ts.map +1 -0
  212. package/dist/types/utils/decimals.d.ts +3 -0
  213. package/dist/types/utils/decimals.d.ts.map +1 -0
  214. package/dist/types/utils/market.d.ts +7 -0
  215. package/dist/types/utils/market.d.ts.map +1 -0
  216. package/dist/types/utils/math.d.ts +3 -0
  217. package/dist/types/utils/math.d.ts.map +1 -0
  218. package/dist/types/utils/prices.d.ts +3 -0
  219. package/dist/types/utils/prices.d.ts.map +1 -0
  220. package/dist/types/utils/tick.d.ts +4 -0
  221. package/dist/types/utils/tick.d.ts.map +1 -0
  222. package/dist/types/utils/time.d.ts +2 -0
  223. package/dist/types/utils/time.d.ts.map +1 -0
  224. package/dist/types/utils/unit.d.ts +4 -0
  225. package/dist/types/utils/unit.d.ts.map +1 -0
  226. package/dist/types/view.d.ts +129 -0
  227. package/dist/types/view.d.ts.map +1 -0
  228. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-abi.d.ts","sourceRoot":"","sources":["../../../../src/abis/core/controller-abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAw9BjB,CAAA"}
@@ -0,0 +1,21 @@
1
+ export declare const TAKE_ORDER_PARAMS_ABI: {
2
+ components: {
3
+ internalType: string;
4
+ name: string;
5
+ type: string;
6
+ }[];
7
+ internalType: string;
8
+ name: string;
9
+ type: string;
10
+ }[];
11
+ export declare const MAKE_ORDER_PARAMS_ABI: {
12
+ components: {
13
+ internalType: string;
14
+ name: string;
15
+ type: string;
16
+ }[];
17
+ internalType: string;
18
+ name: string;
19
+ type: string;
20
+ }[];
21
+ //# sourceMappingURL=params-abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params-abi.d.ts","sourceRoot":"","sources":["../../../../src/abis/core/params-abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;;;;GA4BjC,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;GA4BjC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Currency } from '../model/currency';
2
+ import { CHAIN_IDS } from '../constants/chain';
3
+ export declare const fetchCurrency: (chainId: CHAIN_IDS, address: `0x${string}`, rpcUrl?: string) => Promise<Currency>;
4
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../src/apis/currency.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAa,MAAM,oBAAoB,CAAA;AA4CzD,eAAO,MAAM,aAAa,YACf,SAAS,WACT,KAAK,MAAM,EAAE,WACb,MAAM,KACd,QAAQ,QAAQ,CAwClB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { CHAIN_IDS } from '../constants/chain';
2
+ import { Market } from '../model/market';
3
+ export declare function fetchMarket(chainId: CHAIN_IDS, tokenAddresses: `0x${string}`[], rpcUrl?: string): Promise<Market>;
4
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/apis/market.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAWxC,wBAAsB,WAAW,CAC/B,OAAO,EAAE,SAAS,EAClB,cAAc,EAAE,KAAK,MAAM,EAAE,EAAE,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAkEjB"}
@@ -0,0 +1,5 @@
1
+ import { CHAIN_IDS } from '../constants/chain';
2
+ import { OpenOrder } from '../model/open-order';
3
+ export declare function fetchOpenOrders(chainId: CHAIN_IDS, userAddress: `0x${string}`, rpcUrl?: string): Promise<OpenOrder[]>;
4
+ export declare function fetchOpenOrder(chainId: CHAIN_IDS, id: string, rpcUrl?: string): Promise<OpenOrder>;
5
+ //# sourceMappingURL=open-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-order.d.ts","sourceRoot":"","sources":["../../../src/apis/open-order.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAO9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAM/C,wBAAsB,eAAe,CACnC,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,KAAK,MAAM,EAAE,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,EAAE,CAAC,CAyBtB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,SAAS,EAClB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAiBpB"}
@@ -0,0 +1,32 @@
1
+ import { HDAccount, PrivateKeyAccount } from 'viem';
2
+ import { CHAIN_IDS } from './constants/chain';
3
+ /**
4
+ * Sets approval of all open orders for the specified account on the given chain.
5
+ *
6
+ * @param {CHAIN_IDS} chainId The chain ID.
7
+ * @param {HDAccount | PrivateKeyAccount} account The Ethereum account for which approval is to be set.
8
+ * @param {Object} [options] Optional parameters for setting approval.
9
+ * @param {string} options.rpcUrl The RPC URL to use for executing the transaction.
10
+ * @returns {Promise<`0x${string}` | undefined>} Promise resolving to the transaction hash. If the account is already approved for all, the promise resolves to `undefined`.
11
+ * @example
12
+ * import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
13
+ * import { privateKeyToAccount } from 'viem/accounts'
14
+ *
15
+ * const hash = await setApprovalOfOpenOrdersForAll(
16
+ * 421614,
17
+ * privateKeyToAccount('0x...')
18
+ * )
19
+ *
20
+ * @example
21
+ * import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
22
+ * import { mnemonicToAccount } from 'viem/accounts'
23
+ *
24
+ * const hash = await setApprovalOfOpenOrdersForAll(
25
+ * 421614,
26
+ * mnemonicToAccount('legal ...')
27
+ * )
28
+ */
29
+ export declare const setApprovalOfOpenOrdersForAll: (chainId: CHAIN_IDS, account: HDAccount | PrivateKeyAccount, options?: {
30
+ rpcUrl: string;
31
+ }) => Promise<`0x${string}` | undefined>;
32
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,SAAS,EAAQ,iBAAiB,EAAE,MAAM,MAAM,CAAA;AAE7E,OAAO,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAA;AAyBxD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,6BAA6B,YAC/B,SAAS,WACT,SAAS,GAAG,iBAAiB,YAC5B;IACR,MAAM,EAAE,MAAM,CAAA;CACf,KACA,QAAQ,KAAK,MAAM,EAAE,GAAG,SAAS,CAsBnC,CAAA"}
@@ -0,0 +1,234 @@
1
+ import { CHAIN_IDS } from './constants/chain';
2
+ import { PermitSignature, Transaction } from './type';
3
+ /**
4
+ * Build a transaction to open a market.
5
+ *
6
+ * @param chainId The chain ID of the blockchain.
7
+ * @param inputToken The address of the input token.
8
+ * @param outputToken The address of the output token.
9
+ * @param options
10
+ * @param options.rpcUrl The RPC URL of the blockchain.
11
+ * @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
12
+ * @example
13
+ * import { openMarket } from '@clober/v2-sdk'
14
+ *
15
+ * const transaction = await openMarket(
16
+ * 421614,
17
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
18
+ * '0x0000000000000000000000000000000000000000'
19
+ * )
20
+ */
21
+ export declare const openMarket: (chainId: CHAIN_IDS, inputToken: `0x${string}`, outputToken: `0x${string}`, options?: {
22
+ rpcUrl?: string;
23
+ }) => Promise<Transaction | undefined>;
24
+ /**
25
+ * Places a limit order on the specified chain for trading tokens.
26
+ *
27
+ * @param {CHAIN_IDS} chainId The chain ID.
28
+ * @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
29
+ * @param {`0x${string}`} inputToken The address of the token to be used as input.
30
+ * @param {`0x${string}`} outputToken The address of the token to be received as output.
31
+ * @param {string} amount The amount of input tokens for the order.
32
+ * @param {string} price The price at which the order should be executed.
33
+ * @param {Object} [options] Optional parameters for the limit order.
34
+ * @param {PermitSignature} [options.signature] The permit signature for token approval.
35
+ * @param {boolean} [options.postOnly] A boolean indicating whether the order is only to be made not taken.
36
+ * @param {string} [options.rpcUrl] The RPC URL of the blockchain.
37
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
38
+ * @example
39
+ * import { signERC20Permit, limitOrder } from '@clober/v2-sdk'
40
+ * import { privateKeyToAccount } from 'viem/accounts'
41
+ *
42
+ * const signature = await signERC20Permit(
43
+ * 421614,
44
+ * privateKeyToAccount('0x...'),
45
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
46
+ * '100.123'
47
+ * )
48
+ *
49
+ * const transaction = await limitOrder(
50
+ * 421614,
51
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
52
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
53
+ * '0x0000000000000000000000000000000000000000',
54
+ * '100.123', // 100.123 USDC
55
+ * '4000.01', // price at 4000.01 (ETH/USDC)
56
+ * { signature }
57
+ * )
58
+ *
59
+ * @example
60
+ * import { limitOrder } from '@clober/v2-sdk'
61
+ *
62
+ * const transaction = await limitOrder(
63
+ * 421614,
64
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
65
+ * '0x0000000000000000000000000000000000000000',
66
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
67
+ * '0.13', // 0.13 ETH
68
+ * '4000.01', // price at 4000.01 (ETH/USDC)
69
+ * )
70
+ */
71
+ export declare const limitOrder: (chainId: CHAIN_IDS, userAddress: `0x${string}`, inputToken: `0x${string}`, outputToken: `0x${string}`, amount: string, price: string, options?: {
72
+ signature?: PermitSignature;
73
+ postOnly?: boolean;
74
+ rpcUrl?: string;
75
+ }) => Promise<Transaction>;
76
+ /**
77
+ * Executes a market order on the specified chain for trading tokens.
78
+ *
79
+ * @param {CHAIN_IDS} chainId The chain ID.
80
+ * @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
81
+ * @param {`0x${string}`} inputToken The address of the token to be used as input.
82
+ * @param {`0x${string}`} outputToken The address of the token to be received as output.
83
+ * @param {string} amount The amount of input tokens for the order.
84
+ * @param {Object} [options] Optional parameters for the limit order.
85
+ * @param {PermitSignature} [options.signature] The permit signature for token approval.
86
+ * @param {string} [options.rpcUrl] The RPC URL of the blockchain.
87
+ * @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.
88
+ * if the limit price is not provided, unlimited slippage is allowed.
89
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
90
+ * @example
91
+ * import { signERC20Permit, marketOrder } from '@clober/v2-sdk'
92
+ * import { privateKeyToAccount } from 'viem/accounts'
93
+ *
94
+ * const signature = await signERC20Permit(
95
+ * 421614,
96
+ * privateKeyToAccount('0x...'),
97
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
98
+ * '100.123'
99
+ * )
100
+ *
101
+ * const transaction = await marketOrder(
102
+ * 421614,
103
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
104
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
105
+ * '0x0000000000000000000000000000000000000000',
106
+ * '100.123', // 100.123 USDC
107
+ * { signature }
108
+ * )
109
+ *
110
+ * @example
111
+ * import { marketOrder } from '@clober/v2-sdk'
112
+ *
113
+ * const transaction = await limitOrder(
114
+ * 421614,
115
+ * '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
116
+ * '0x0000000000000000000000000000000000000000',
117
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
118
+ * '0.13', // 0.13 ETH
119
+ * )
120
+ */
121
+ export declare const marketOrder: (chainId: CHAIN_IDS, userAddress: `0x${string}`, inputToken: `0x${string}`, outputToken: `0x${string}`, amount: string, options?: {
122
+ signature?: PermitSignature;
123
+ rpcUrl?: string;
124
+ limitPrice?: string;
125
+ }) => Promise<Transaction>;
126
+ /**
127
+ * Claims specified open order for settlement.
128
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
129
+ *
130
+ * @param {CHAIN_IDS} chainId The chain ID.
131
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
132
+ * @param {string} id An ID representing the open order to be claimed.
133
+ * @param {Object} [options] Optional parameters for claiming orders.
134
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
135
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
136
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
137
+ * @example
138
+ * import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
139
+ *
140
+ * const openOrders = await getOpenOrders(
141
+ * 421614,
142
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
143
+ * )
144
+ * const transaction = await claimOrders(
145
+ * 421614,
146
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
147
+ * openOrders.map((order) => order.id)
148
+ * )
149
+ */
150
+ export declare const claimOrder: (chainId: CHAIN_IDS, userAddress: `0x${string}`, id: string, options?: {
151
+ rpcUrl?: string;
152
+ }) => Promise<Transaction>;
153
+ /**
154
+ * Claims specified open orders for settlement.
155
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
156
+ *
157
+ * @param {CHAIN_IDS} chainId The chain ID.
158
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
159
+ * @param {string[]} ids An array of IDs representing the open orders to be claimed.
160
+ * @param {Object} [options] Optional parameters for claiming orders.
161
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
162
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
163
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
164
+ * @example
165
+ * import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
166
+ *
167
+ * const openOrders = await getOpenOrders(
168
+ * 421614,
169
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
170
+ * )
171
+ * const transaction = await claimOrders(
172
+ * 421614,
173
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
174
+ * openOrders.map((order) => order.id)
175
+ * )
176
+ */
177
+ export declare const claimOrders: (chainId: CHAIN_IDS, userAddress: `0x${string}`, ids: string[], options?: {
178
+ rpcUrl?: string;
179
+ }) => Promise<Transaction>;
180
+ /**
181
+ * Cancels specified open order if the order is not fully filled.
182
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
183
+ *
184
+ * @param {CHAIN_IDS} chainId The chain ID.
185
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
186
+ * @param {string} id An ID representing the open order to be canceled
187
+ * @param {Object} [options] Optional parameters for canceling orders.
188
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
189
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
190
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
191
+ * @example
192
+ * import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
193
+ *
194
+ * const openOrders = await getOpenOrders(
195
+ * 421614,
196
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
197
+ * )
198
+ * const transaction = await cancelOrders(
199
+ * 421614,
200
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
201
+ * openOrders.map((order) => order.id)
202
+ * )
203
+ */
204
+ export declare const cancelOrder: (chainId: CHAIN_IDS, userAddress: `0x${string}`, id: string, options?: {
205
+ rpcUrl?: string;
206
+ }) => Promise<Transaction>;
207
+ /**
208
+ * Cancels specified open orders if orders are not fully filled.
209
+ * [IMPORTANT] Set ApprovalForAll before calling this function.
210
+ *
211
+ * @param {CHAIN_IDS} chainId The chain ID.
212
+ * @param {`0x${string}`} userAddress The Ethereum address of the user.
213
+ * @param {string[]} ids An array of IDs representing the open orders to be canceled.
214
+ * @param {Object} [options] Optional parameters for canceling orders.
215
+ * @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
216
+ * @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
217
+ * @throws {Error} Throws an error if no open orders are found for the specified user.
218
+ * @example
219
+ * import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
220
+ *
221
+ * const openOrders = await getOpenOrders(
222
+ * 421614,
223
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
224
+ * )
225
+ * const transaction = await cancelOrders(
226
+ * 421614,
227
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
228
+ * openOrders.map((order) => order.id)
229
+ * )
230
+ */
231
+ export declare const cancelOrders: (chainId: CHAIN_IDS, userAddress: `0x${string}`, ids: string[], options?: {
232
+ rpcUrl?: string;
233
+ }) => Promise<Transaction>;
234
+ //# sourceMappingURL=call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../src/call.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAmBrD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,YACZ,SAAS,cACN,KAAK,MAAM,EAAE,eACZ,KAAK,MAAM,EAAE,YAChB;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,GAAG,SAAS,CAwCjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,UAAU,YACZ,SAAS,eACL,KAAK,MAAM,EAAE,cACd,KAAK,MAAM,EAAE,eACZ,KAAK,MAAM,EAAE,UAClB,MAAM,SACP,MAAM,YACH;IACR,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,CAuKrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,WAAW,YACb,SAAS,eACL,KAAK,MAAM,EAAE,cACd,KAAK,MAAM,EAAE,eACZ,KAAK,MAAM,EAAE,UAClB,MAAM,YACJ;IACR,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,KACA,QAAQ,WAAW,CA8ErB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,YACZ,SAAS,eACL,KAAK,MAAM,EAAE,MACtB,MAAM,YACA;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,CAErB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,WAAW,YACb,SAAS,eACL,KAAK,MAAM,EAAE,OACrB,MAAM,EAAE,YACH;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,CAuDrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,WAAW,YACb,SAAS,eACL,KAAK,MAAM,EAAE,MACtB,MAAM,YACA;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,CAErB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,YAAY,YACd,SAAS,eACL,KAAK,MAAM,EAAE,OACrB,MAAM,EAAE,YACH;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KACA,QAAQ,WAAW,CAwDrB,CAAA"}
@@ -0,0 +1,10 @@
1
+ export declare enum Action {
2
+ OPEN = 0,
3
+ MAKE = 1,
4
+ LIMIT = 2,
5
+ TAKE = 3,
6
+ SPEND = 4,
7
+ CLAIM = 5,
8
+ CANCEL = 6
9
+ }
10
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/constants/action.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,KAAK,IAAA;IACL,MAAM,IAAA;CACP"}
@@ -0,0 +1,9 @@
1
+ import { CHAIN_IDS } from './chain';
2
+ export declare const CONTRACT_ADDRESSES: {
3
+ [chain in CHAIN_IDS]: {
4
+ Controller: `0x${string}`;
5
+ BookManager: `0x${string}`;
6
+ BookViewer: `0x${string}`;
7
+ };
8
+ };
9
+ //# sourceMappingURL=addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../src/constants/addresses.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,eAAO,MAAM,kBAAkB,EAAE;KAC9B,KAAK,IAAI,SAAS,GAAG;QACpB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;QACzB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAA;QAC1B,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;KAC1B;CAOF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { type Chain } from 'viem/chains';
2
+ export declare enum CHAIN_IDS {
3
+ MAINNET,
4
+ ARBITRUM_SEPOLIA
5
+ }
6
+ export declare const CHAIN_MAP: {
7
+ [chain in CHAIN_IDS]: Chain;
8
+ };
9
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/constants/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,KAAK,EAAW,MAAM,aAAa,CAAA;AAElE,oBAAY,SAAS;IACnB,OAAoB;IACpB,gBAAqC;CACtC;AAED,eAAO,MAAM,SAAS,EAAE;KACrB,KAAK,IAAI,SAAS,GAAG,KAAK;CAG5B,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { CHAIN_IDS } from './chain';
2
+ export declare const WETH_ADDRESSES: {
3
+ [chain in CHAIN_IDS]: `0x${string}`[];
4
+ };
5
+ export declare const STABLE_COIN_ADDRESSES: {
6
+ [chain in CHAIN_IDS]: `0x${string}`[];
7
+ };
8
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../src/constants/currency.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,eAAO,MAAM,cAAc,EAAE;KAC1B,KAAK,IAAI,SAAS,GAAG,KAAK,MAAM,EAAE,EAAE;CAGtC,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE;KACjC,KAAK,IAAI,SAAS,GAAG,KAAK,MAAM,EAAE,EAAE;CAGtC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { FeePolicy } from '../model/fee-policy';
2
+ export declare const MAKER_DEFAULT_POLICY: FeePolicy;
3
+ export declare const TAKER_DEFAULT_POLICY: FeePolicy;
4
+ //# sourceMappingURL=fee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../src/constants/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,eAAO,MAAM,oBAAoB,WAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,WAA6B,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const MAX_PRICE = 4647684107270898330752324302845848816923571339324334n;
2
+ export declare const PRICE_PRECISION = 96n;
3
+ //# sourceMappingURL=price.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../../src/constants/price.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,wDAAwD,CAAA;AAE9E,eAAO,MAAM,eAAe,MAAM,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { CHAIN_IDS } from './chain';
2
+ export declare const SUBGRAPH_URL: {
3
+ [chain in CHAIN_IDS]: string;
4
+ };
5
+ //# sourceMappingURL=subgraph-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph-url.d.ts","sourceRoot":"","sources":["../../../src/constants/subgraph-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,eAAO,MAAM,YAAY,EAAE;KACxB,KAAK,IAAI,SAAS,GAAG,MAAM;CAI7B,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.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","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"}
@@ -0,0 +1,31 @@
1
+ import type { Currency } from './currency';
2
+ import type { RawDepth } from './depth';
3
+ export declare class Book {
4
+ id: bigint;
5
+ base: Currency;
6
+ unit: bigint;
7
+ quote: Currency;
8
+ depths: RawDepth[];
9
+ constructor({ id, base, quote, unit, depths, }: {
10
+ id: bigint;
11
+ base: Currency;
12
+ quote: Currency;
13
+ unit: bigint;
14
+ depths: RawDepth[];
15
+ });
16
+ take: ({ limitPrice, amountOut, }: {
17
+ limitPrice: bigint;
18
+ amountOut: bigint;
19
+ }) => {
20
+ takenQuoteAmount: bigint;
21
+ spendBaseAmount: bigint;
22
+ };
23
+ spend: ({ limitPrice, amountIn, }: {
24
+ limitPrice: bigint;
25
+ amountIn: bigint;
26
+ }) => {
27
+ takenQuoteAmount: bigint;
28
+ spendBaseAmount: bigint;
29
+ };
30
+ }
31
+ //# sourceMappingURL=book.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"book.d.ts","sourceRoot":"","sources":["../../../src/model/book.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,qBAAa,IAAI;IACf,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,QAAQ,CAAA;IACf,MAAM,EAAE,QAAQ,EAAE,CAAA;gBAEN,EACV,EAAE,EACF,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,GACP,EAAE;QACD,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,QAAQ,CAAA;QACd,KAAK,EAAE,QAAQ,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,QAAQ,EAAE,CAAA;KACnB;IAQD,IAAI;oBAIU,MAAM;mBACP,MAAM;;;;MA4DlB;IAED,KAAK;oBAIS,MAAM;kBACR,MAAM;;;;MAyDjB;CACF"}
@@ -0,0 +1,7 @@
1
+ export type Currency = {
2
+ address: `0x${string}`;
3
+ name: string;
4
+ symbol: string;
5
+ decimals: number;
6
+ };
7
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../src/model/currency.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA"}
@@ -0,0 +1,11 @@
1
+ export type RawDepth = {
2
+ bookId: string;
3
+ unit: bigint;
4
+ tick: bigint;
5
+ rawAmount: bigint;
6
+ };
7
+ export type Depth = {
8
+ price: number;
9
+ baseAmount: bigint;
10
+ };
11
+ //# sourceMappingURL=depth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../../src/model/depth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
@@ -0,0 +1,15 @@
1
+ export declare class FeePolicy {
2
+ static readonly MAX_FEE_RATE = 500000n;
3
+ static readonly MIN_FEE_RATE = -500000n;
4
+ static readonly RATE_MASK = 8388607n;
5
+ readonly RATE_PRECISION: bigint;
6
+ usesQuote: boolean;
7
+ value: bigint;
8
+ rate: bigint;
9
+ constructor(usesQuote: boolean, rate: bigint);
10
+ static from(value: bigint): FeePolicy;
11
+ private static getRateFromValue;
12
+ calculateFee: (amount: bigint, reverseRounding: boolean) => bigint;
13
+ calculateOriginalAmount: (amount: bigint, reverseFee: boolean) => bigint;
14
+ }
15
+ //# sourceMappingURL=fee-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee-policy.d.ts","sourceRoot":"","sources":["../../../src/model/fee-policy.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,YAAY,WAAU;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,YAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAY;IACrC,QAAQ,CAAC,cAAc,SAAY;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;gBAEP,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;WAW9B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAK5C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAE9B;IAEM,YAAY,WAAY,MAAM,mBAAmB,OAAO,KAAG,MAAM,CASvE;IAEM,uBAAuB,WACpB,MAAM,cACF,OAAO,KAClB,MAAM,CAIR;CACF"}
@@ -0,0 +1,44 @@
1
+ import { CHAIN_IDS } from '../constants/chain';
2
+ import { Book } from './book';
3
+ import type { Currency } from './currency';
4
+ import type { Depth } from './depth';
5
+ export declare class Market {
6
+ readonly makerFee: number;
7
+ readonly takerFee: number;
8
+ id: string;
9
+ quote: Currency;
10
+ base: Currency;
11
+ bids: Depth[];
12
+ bidBookOpen: boolean;
13
+ asks: Depth[];
14
+ askBookOpen: boolean;
15
+ private books;
16
+ constructor({ chainId, tokens, books, }: {
17
+ chainId: CHAIN_IDS;
18
+ tokens: [Currency, Currency];
19
+ books: Book[];
20
+ });
21
+ take: ({ takeQuote, limitPrice, amountOut, }: {
22
+ takeQuote: boolean;
23
+ limitPrice: bigint;
24
+ amountOut: bigint;
25
+ }) => {
26
+ [k: string]: {
27
+ takenAmount: bigint;
28
+ spendAmount: bigint;
29
+ };
30
+ };
31
+ spend: ({ spendBase, limitPrice, amountIn, }: {
32
+ spendBase: boolean;
33
+ limitPrice: bigint;
34
+ amountIn: bigint;
35
+ }) => {
36
+ [k: string]: {
37
+ takenAmount: bigint;
38
+ spendAmount: bigint;
39
+ };
40
+ };
41
+ private takeInner;
42
+ private spendInner;
43
+ }
44
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/model/market.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAO9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,SAAS,CAAA;AAE9C,qBAAa,MAAM;IACjB,QAAQ,CAAC,QAAQ,SAAkD;IACnE,QAAQ,CAAC,QAAQ,SAAkD;IAEnE,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,QAAQ,CAAA;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,KAAK,CAAQ;gBAET,EACV,OAAO,EACP,MAAM,EACN,KAAK,GACN,EAAE;QACD,OAAO,EAAE,SAAS,CAAA;QAClB,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC5B,KAAK,EAAE,IAAI,EAAE,CAAA;KACd;IA0DD,IAAI;mBAKS,OAAO;oBACN,MAAM;mBACP,MAAM;;;yBA+DA,MAAM;yBACN,MAAM;;MA7CxB;IAED,KAAK;mBAKQ,OAAO;oBACN,MAAM;kBACR,MAAM;;;yBA0HC,MAAM;yBACN,MAAM;;MAxGxB;IAED,OAAO,CAAC,SAAS,CAqFhB;IAED,OAAO,CAAC,UAAU,CAkFjB;CACF"}
@@ -0,0 +1,28 @@
1
+ import { Currency } from './currency';
2
+ export type OpenOrder = {
3
+ id: string;
4
+ isBid: boolean;
5
+ inputCurrency: Currency;
6
+ outputCurrency: Currency;
7
+ txHash: `0x${string}`;
8
+ createdAt: number;
9
+ price: number;
10
+ amount: {
11
+ currency: Currency;
12
+ value: string;
13
+ };
14
+ filled: {
15
+ currency: Currency;
16
+ value: string;
17
+ };
18
+ claimed: {
19
+ currency: Currency;
20
+ value: string;
21
+ };
22
+ claimable: {
23
+ currency: Currency;
24
+ value: string;
25
+ };
26
+ cancelable: boolean;
27
+ };
28
+ //# sourceMappingURL=open-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-order.d.ts","sourceRoot":"","sources":["../../../src/model/open-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;IACd,aAAa,EAAE,QAAQ,CAAA;IACvB,cAAc,EAAE,QAAQ,CAAA;IACxB,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,MAAM,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,SAAS,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { HDAccount, PrivateKeyAccount } from 'viem';
2
+ import { CHAIN_IDS } from './constants/chain';
3
+ import { PermitSignature } from './type';
4
+ /**
5
+ * Signs an ERC20 permit using EIP-712 encoding.
6
+ *
7
+ * @param {CHAIN_IDS} chainId The chain ID.
8
+ * @param {HDAccount | PrivateKeyAccount} account The Ethereum account used for signing using
9
+ * [viem - Local Accounts (Private Key, Mnemonic, etc)](https://viem.sh/docs/accounts/local#local-accounts-private-key-mnemonic-etc).
10
+ * @param {`0x${string}`} token The ERC20 token address.
11
+ * @param {string} amount The amount of tokens to permit.
12
+ * @param options
13
+ * @param options.rpcUrl The RPC URL of the blockchain.
14
+ * @returns {Promise<PermitSignature>} Promise resolving to the permit signature.
15
+ * @example
16
+ * import { signERC20Permit } from '@clober/v2-sdk'
17
+ * import { privateKeyToAccount } from 'viem/accounts'
18
+ *
19
+ * const { deadline, r, s, v } = await signERC20Permit(
20
+ * 421614,
21
+ * privateKeyToAccount('0x...')
22
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
23
+ * '1000.123', // spend 1000.123 USDC
24
+ * )
25
+ *
26
+ * @example
27
+ * import { signERC20Permit } from '@clober/v2-sdk'
28
+ * import { mnemonicToAccount } from 'viem/accounts'
29
+ *
30
+ * const { deadline, r, s, v } = await signERC20Permit(
31
+ * 421614,
32
+ * mnemonicToAccount('legal ...')
33
+ * '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
34
+ * '1000.123', // spend 1000.123 USDC
35
+ * )
36
+ */
37
+ export declare const signERC20Permit: (chainId: CHAIN_IDS, account: HDAccount | PrivateKeyAccount, token: `0x${string}`, amount: string, options?: {
38
+ rpcUrl: string;
39
+ }) => Promise<PermitSignature>;
40
+ //# sourceMappingURL=signature.d.ts.map