tempo.ts 0.11.1 → 0.12.0

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/CHANGELOG.md +61 -4
  2. package/README.md +3 -34
  3. package/dist/server/Handler.d.ts +14 -14
  4. package/dist/server/Handler.d.ts.map +1 -1
  5. package/dist/server/Handler.js +16 -17
  6. package/dist/server/Handler.js.map +1 -1
  7. package/dist/wagmi/Actions/amm.d.ts +51 -51
  8. package/dist/wagmi/Actions/amm.d.ts.map +1 -1
  9. package/dist/wagmi/Actions/amm.js +37 -37
  10. package/dist/wagmi/Actions/amm.js.map +1 -1
  11. package/dist/wagmi/Actions/dex.d.ts +129 -129
  12. package/dist/wagmi/Actions/dex.d.ts.map +1 -1
  13. package/dist/wagmi/Actions/dex.js +73 -73
  14. package/dist/wagmi/Actions/dex.js.map +1 -1
  15. package/dist/wagmi/Actions/faucet.d.ts +9 -9
  16. package/dist/wagmi/Actions/faucet.d.ts.map +1 -1
  17. package/dist/wagmi/Actions/faucet.js +7 -7
  18. package/dist/wagmi/Actions/faucet.js.map +1 -1
  19. package/dist/wagmi/Actions/fee.d.ts +17 -17
  20. package/dist/wagmi/Actions/fee.d.ts.map +1 -1
  21. package/dist/wagmi/Actions/fee.js +10 -10
  22. package/dist/wagmi/Actions/fee.js.map +1 -1
  23. package/dist/wagmi/Actions/nonce.d.ts +9 -79
  24. package/dist/wagmi/Actions/nonce.d.ts.map +1 -1
  25. package/dist/wagmi/Actions/nonce.js +7 -89
  26. package/dist/wagmi/Actions/nonce.js.map +1 -1
  27. package/dist/wagmi/Actions/policy.d.ts +69 -70
  28. package/dist/wagmi/Actions/policy.d.ts.map +1 -1
  29. package/dist/wagmi/Actions/policy.js +43 -43
  30. package/dist/wagmi/Actions/policy.js.map +1 -1
  31. package/dist/wagmi/Actions/reward.d.ts +51 -51
  32. package/dist/wagmi/Actions/reward.d.ts.map +1 -1
  33. package/dist/wagmi/Actions/reward.js +31 -31
  34. package/dist/wagmi/Actions/reward.js.map +1 -1
  35. package/dist/wagmi/Actions/token.d.ts +238 -238
  36. package/dist/wagmi/Actions/token.d.ts.map +1 -1
  37. package/dist/wagmi/Actions/token.js +136 -136
  38. package/dist/wagmi/Actions/token.js.map +1 -1
  39. package/dist/wagmi/Connector.d.ts +2 -1
  40. package/dist/wagmi/Connector.d.ts.map +1 -1
  41. package/dist/wagmi/Connector.js +83 -22
  42. package/dist/wagmi/Connector.js.map +1 -1
  43. package/dist/wagmi/Hooks/nonce.d.ts +1 -52
  44. package/dist/wagmi/Hooks/nonce.d.ts.map +1 -1
  45. package/dist/wagmi/Hooks/nonce.js +1 -70
  46. package/dist/wagmi/Hooks/nonce.js.map +1 -1
  47. package/dist/wagmi/Hooks/policy.d.ts +0 -1
  48. package/dist/wagmi/Hooks/policy.d.ts.map +1 -1
  49. package/dist/wagmi/Hooks/policy.js.map +1 -1
  50. package/dist/wagmi/KeyManager.d.ts +6 -3
  51. package/dist/wagmi/KeyManager.d.ts.map +1 -1
  52. package/dist/wagmi/KeyManager.js +9 -4
  53. package/dist/wagmi/KeyManager.js.map +1 -1
  54. package/package.json +2 -12
  55. package/src/server/Handler.test.ts +2 -2
  56. package/src/server/Handler.ts +16 -17
  57. package/src/wagmi/Actions/amm.ts +63 -63
  58. package/src/wagmi/Actions/dex.test.ts +1 -1
  59. package/src/wagmi/Actions/dex.ts +153 -153
  60. package/src/wagmi/Actions/faucet.ts +11 -11
  61. package/src/wagmi/Actions/fee.ts +20 -20
  62. package/src/wagmi/Actions/nonce.test.ts +1 -64
  63. package/src/wagmi/Actions/nonce.ts +10 -142
  64. package/src/wagmi/Actions/policy.ts +83 -85
  65. package/src/wagmi/Actions/reward.ts +64 -61
  66. package/src/wagmi/Actions/token.ts +287 -283
  67. package/src/wagmi/Connector.ts +105 -31
  68. package/src/wagmi/Hooks/dex.test.ts +1 -1
  69. package/src/wagmi/Hooks/fee.test.ts +0 -6
  70. package/src/wagmi/Hooks/nonce.test.ts +1 -66
  71. package/src/wagmi/Hooks/nonce.ts +1 -114
  72. package/src/wagmi/Hooks/policy.ts +0 -2
  73. package/src/wagmi/KeyManager.ts +18 -5
  74. package/dist/chains.d.ts +0 -73
  75. package/dist/chains.d.ts.map +0 -1
  76. package/dist/chains.js +0 -51
  77. package/dist/chains.js.map +0 -1
  78. package/dist/viem/Abis.d.ts +0 -2649
  79. package/dist/viem/Abis.d.ts.map +0 -1
  80. package/dist/viem/Abis.js +0 -1677
  81. package/dist/viem/Abis.js.map +0 -1
  82. package/dist/viem/Account.d.ts +0 -244
  83. package/dist/viem/Account.d.ts.map +0 -1
  84. package/dist/viem/Account.js +0 -382
  85. package/dist/viem/Account.js.map +0 -1
  86. package/dist/viem/Actions/account.d.ts +0 -40
  87. package/dist/viem/Actions/account.d.ts.map +0 -1
  88. package/dist/viem/Actions/account.js +0 -86
  89. package/dist/viem/Actions/account.js.map +0 -1
  90. package/dist/viem/Actions/amm.d.ts +0 -1991
  91. package/dist/viem/Actions/amm.d.ts.map +0 -1
  92. package/dist/viem/Actions/amm.js +0 -814
  93. package/dist/viem/Actions/amm.js.map +0 -1
  94. package/dist/viem/Actions/dex.d.ts +0 -3900
  95. package/dist/viem/Actions/dex.d.ts.map +0 -1
  96. package/dist/viem/Actions/dex.js +0 -1414
  97. package/dist/viem/Actions/dex.js.map +0 -1
  98. package/dist/viem/Actions/faucet.d.ts +0 -69
  99. package/dist/viem/Actions/faucet.d.ts.map +0 -1
  100. package/dist/viem/Actions/faucet.js +0 -73
  101. package/dist/viem/Actions/faucet.js.map +0 -1
  102. package/dist/viem/Actions/fee.d.ts +0 -360
  103. package/dist/viem/Actions/fee.d.ts.map +0 -1
  104. package/dist/viem/Actions/fee.js +0 -237
  105. package/dist/viem/Actions/fee.js.map +0 -1
  106. package/dist/viem/Actions/index.d.ts +0 -10
  107. package/dist/viem/Actions/index.d.ts.map +0 -1
  108. package/dist/viem/Actions/index.js +0 -10
  109. package/dist/viem/Actions/index.js.map +0 -1
  110. package/dist/viem/Actions/nonce.d.ts +0 -257
  111. package/dist/viem/Actions/nonce.d.ts.map +0 -1
  112. package/dist/viem/Actions/nonce.js +0 -228
  113. package/dist/viem/Actions/nonce.js.map +0 -1
  114. package/dist/viem/Actions/policy.d.ts +0 -1680
  115. package/dist/viem/Actions/policy.d.ts.map +0 -1
  116. package/dist/viem/Actions/policy.js +0 -875
  117. package/dist/viem/Actions/policy.js.map +0 -1
  118. package/dist/viem/Actions/reward.d.ts +0 -2422
  119. package/dist/viem/Actions/reward.d.ts.map +0 -1
  120. package/dist/viem/Actions/reward.js +0 -651
  121. package/dist/viem/Actions/reward.js.map +0 -1
  122. package/dist/viem/Actions/token.d.ts +0 -16007
  123. package/dist/viem/Actions/token.d.ts.map +0 -1
  124. package/dist/viem/Actions/token.js +0 -2936
  125. package/dist/viem/Actions/token.js.map +0 -1
  126. package/dist/viem/Addresses.d.ts +0 -9
  127. package/dist/viem/Addresses.d.ts.map +0 -1
  128. package/dist/viem/Addresses.js +0 -9
  129. package/dist/viem/Addresses.js.map +0 -1
  130. package/dist/viem/Chain.d.ts +0 -451
  131. package/dist/viem/Chain.d.ts.map +0 -1
  132. package/dist/viem/Chain.js +0 -96
  133. package/dist/viem/Chain.js.map +0 -1
  134. package/dist/viem/Decorator.d.ts +0 -2783
  135. package/dist/viem/Decorator.d.ts.map +0 -1
  136. package/dist/viem/Decorator.js +0 -137
  137. package/dist/viem/Decorator.js.map +0 -1
  138. package/dist/viem/Formatters.d.ts +0 -10
  139. package/dist/viem/Formatters.d.ts.map +0 -1
  140. package/dist/viem/Formatters.js +0 -104
  141. package/dist/viem/Formatters.js.map +0 -1
  142. package/dist/viem/P256.d.ts +0 -2
  143. package/dist/viem/P256.d.ts.map +0 -1
  144. package/dist/viem/P256.js +0 -2
  145. package/dist/viem/P256.js.map +0 -1
  146. package/dist/viem/Secp256k1.d.ts +0 -2
  147. package/dist/viem/Secp256k1.d.ts.map +0 -1
  148. package/dist/viem/Secp256k1.js +0 -2
  149. package/dist/viem/Secp256k1.js.map +0 -1
  150. package/dist/viem/Storage.d.ts +0 -24
  151. package/dist/viem/Storage.d.ts.map +0 -1
  152. package/dist/viem/Storage.js +0 -68
  153. package/dist/viem/Storage.js.map +0 -1
  154. package/dist/viem/TokenIds.d.ts +0 -2
  155. package/dist/viem/TokenIds.d.ts.map +0 -1
  156. package/dist/viem/TokenIds.js +0 -2
  157. package/dist/viem/TokenIds.js.map +0 -1
  158. package/dist/viem/Transaction.d.ts +0 -76
  159. package/dist/viem/Transaction.d.ts.map +0 -1
  160. package/dist/viem/Transaction.js +0 -176
  161. package/dist/viem/Transaction.js.map +0 -1
  162. package/dist/viem/Transport.d.ts +0 -33
  163. package/dist/viem/Transport.d.ts.map +0 -1
  164. package/dist/viem/Transport.js +0 -138
  165. package/dist/viem/Transport.js.map +0 -1
  166. package/dist/viem/WebAuthnP256.d.ts +0 -82
  167. package/dist/viem/WebAuthnP256.d.ts.map +0 -1
  168. package/dist/viem/WebAuthnP256.js +0 -97
  169. package/dist/viem/WebAuthnP256.js.map +0 -1
  170. package/dist/viem/WebCryptoP256.d.ts +0 -2
  171. package/dist/viem/WebCryptoP256.d.ts.map +0 -1
  172. package/dist/viem/WebCryptoP256.js +0 -2
  173. package/dist/viem/WebCryptoP256.js.map +0 -1
  174. package/dist/viem/index.d.ts +0 -26
  175. package/dist/viem/index.d.ts.map +0 -1
  176. package/dist/viem/index.js +0 -17
  177. package/dist/viem/index.js.map +0 -1
  178. package/dist/viem/internal/types.d.ts +0 -20
  179. package/dist/viem/internal/types.d.ts.map +0 -1
  180. package/dist/viem/internal/types.js +0 -2
  181. package/dist/viem/internal/types.js.map +0 -1
  182. package/dist/viem/internal/utils.d.ts +0 -14
  183. package/dist/viem/internal/utils.d.ts.map +0 -1
  184. package/dist/viem/internal/utils.js +0 -33
  185. package/dist/viem/internal/utils.js.map +0 -1
  186. package/src/chains.ts +0 -54
  187. package/src/viem/Abis.ts +0 -1688
  188. package/src/viem/Account.test.ts +0 -444
  189. package/src/viem/Account.ts +0 -601
  190. package/src/viem/Actions/account.test.ts +0 -414
  191. package/src/viem/Actions/account.ts +0 -106
  192. package/src/viem/Actions/amm.test.ts +0 -381
  193. package/src/viem/Actions/amm.ts +0 -1227
  194. package/src/viem/Actions/dex.test.ts +0 -1549
  195. package/src/viem/Actions/dex.ts +0 -2150
  196. package/src/viem/Actions/faucet.ts +0 -121
  197. package/src/viem/Actions/fee.test.ts +0 -259
  198. package/src/viem/Actions/fee.ts +0 -372
  199. package/src/viem/Actions/index.ts +0 -9
  200. package/src/viem/Actions/nonce.test.ts +0 -206
  201. package/src/viem/Actions/nonce.ts +0 -347
  202. package/src/viem/Actions/policy.test.ts +0 -534
  203. package/src/viem/Actions/policy.ts +0 -1335
  204. package/src/viem/Actions/reward.test.ts +0 -434
  205. package/src/viem/Actions/reward.ts +0 -944
  206. package/src/viem/Actions/token.test.ts +0 -3029
  207. package/src/viem/Actions/token.ts +0 -4458
  208. package/src/viem/Addresses.ts +0 -9
  209. package/src/viem/Chain.bench-d.ts +0 -12
  210. package/src/viem/Chain.test.ts +0 -168
  211. package/src/viem/Chain.ts +0 -157
  212. package/src/viem/Decorator.bench-d.ts +0 -11
  213. package/src/viem/Decorator.test.ts +0 -39
  214. package/src/viem/Decorator.ts +0 -3179
  215. package/src/viem/Formatters.ts +0 -164
  216. package/src/viem/P256.ts +0 -1
  217. package/src/viem/Secp256k1.ts +0 -1
  218. package/src/viem/Storage.ts +0 -110
  219. package/src/viem/TokenIds.ts +0 -1
  220. package/src/viem/Transaction.ts +0 -382
  221. package/src/viem/Transport.ts +0 -191
  222. package/src/viem/WebAuthnP256.ts +0 -146
  223. package/src/viem/WebCryptoP256.ts +0 -1
  224. package/src/viem/e2e.test.ts +0 -1602
  225. package/src/viem/index.ts +0 -30
  226. package/src/viem/internal/types.ts +0 -69
  227. package/src/viem/internal/utils.ts +0 -58
  228. package/src/wagmi/internal/types.ts +0 -16
@@ -1,3900 +0,0 @@
1
- import { type Account, type Address, type BaseErrorType, type Chain, type Client, type ExtractAbiItem, type GetEventArgs, type Log, type ReadContractReturnType, type TransactionReceipt, type Transport, type Log as viem_Log, type WatchContractEventParameters, type WriteContractReturnType } from 'viem';
2
- import { writeContract, writeContractSync } from 'viem/actions';
3
- import type { Compute, UnionOmit } from '../../internal/types.js';
4
- import * as Abis from '../Abis.js';
5
- import type { GetAccountParameter, ReadParameters, WriteParameters } from '../internal/types.js';
6
- /**
7
- * Order type for limit orders.
8
- */
9
- type OrderType = 'buy' | 'sell';
10
- /**
11
- * Buys a specific amount of tokens.
12
- *
13
- * @example
14
- * ```ts
15
- * import { createClient, http, parseUnits } from 'viem'
16
- * import { privateKeyToAccount } from 'viem/accounts'
17
- * import { tempo } from 'tempo.ts/chains'
18
- * import { Actions } from 'tempo.ts/viem'
19
- *
20
- * const client = createClient({
21
- * account: privateKeyToAccount('0x...'),
22
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
23
- * transport: http(),
24
- * })
25
- *
26
- * const hash = await Actions.dex.buy(client, {
27
- * tokenIn: '0x20c...11',
28
- * tokenOut: '0x20c...20',
29
- * amountOut: parseUnits('100', 6),
30
- * maxAmountIn: parseUnits('105', 6),
31
- * })
32
- * ```
33
- *
34
- * @param client - Client.
35
- * @param parameters - Parameters.
36
- * @returns The transaction hash.
37
- */
38
- export declare function buy<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: buy.Parameters<chain, account>): Promise<buy.ReturnValue>;
39
- export declare namespace buy {
40
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
41
- type Args = {
42
- /** Amount of tokenOut to buy. */
43
- amountOut: bigint;
44
- /** Maximum amount of tokenIn to spend. */
45
- maxAmountIn: bigint;
46
- /** Address of the token to spend. */
47
- tokenIn: Address;
48
- /** Address of the token to buy. */
49
- tokenOut: Address;
50
- };
51
- type ReturnValue = WriteContractReturnType;
52
- type ErrorType = BaseErrorType;
53
- /** @internal */
54
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: buy.Parameters<chain, account>): Promise<ReturnType<action>>;
55
- /**
56
- * Defines a call to the `swapExactAmountOut` function.
57
- *
58
- * Can be passed as a parameter to:
59
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
60
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
61
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
62
- *
63
- * @example
64
- * ```ts
65
- * import { createClient, http, parseUnits, walletActions } from 'viem'
66
- * import { tempo } from 'tempo.ts/chains'
67
- * import { Actions } from 'tempo.ts/viem'
68
- *
69
- * const client = createClient({
70
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
71
- * transport: http(),
72
- * }).extend(walletActions)
73
- *
74
- * const { result } = await client.sendCalls({
75
- * calls: [
76
- * Actions.dex.buy.call({
77
- * tokenIn: '0x20c0...beef',
78
- * tokenOut: '0x20c0...babe',
79
- * amountOut: parseUnits('100', 6),
80
- * maxAmountIn: parseUnits('105', 6),
81
- * }),
82
- * ]
83
- * })
84
- * ```
85
- *
86
- * @param args - Arguments.
87
- * @returns The call.
88
- */
89
- function call(args: Args): {
90
- abi: [{
91
- readonly name: "swapExactAmountOut";
92
- readonly type: "function";
93
- readonly stateMutability: "nonpayable";
94
- readonly inputs: readonly [{
95
- readonly type: "address";
96
- readonly name: "tokenIn";
97
- }, {
98
- readonly type: "address";
99
- readonly name: "tokenOut";
100
- }, {
101
- readonly type: "uint128";
102
- readonly name: "amountOut";
103
- }, {
104
- readonly type: "uint128";
105
- readonly name: "maxAmountIn";
106
- }];
107
- readonly outputs: readonly [{
108
- readonly type: "uint128";
109
- readonly name: "amountIn";
110
- }];
111
- }];
112
- functionName: "swapExactAmountOut";
113
- args?: readonly [`0x${string}`, `0x${string}`, bigint, bigint] | undefined;
114
- } & {
115
- args: readonly [`0x${string}`, `0x${string}`, bigint, bigint];
116
- } & {
117
- address: Address;
118
- } & {
119
- data: import("viem").Hex;
120
- to: Address;
121
- };
122
- }
123
- /**
124
- * Buys a specific amount of tokens.
125
- *
126
- * @example
127
- * ```ts
128
- * import { createClient, http, parseUnits } from 'viem'
129
- * import { privateKeyToAccount } from 'viem/accounts'
130
- * import { tempo } from 'tempo.ts/chains'
131
- * import { Actions } from 'tempo.ts/viem'
132
- *
133
- * const client = createClient({
134
- * account: privateKeyToAccount('0x...'),
135
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
136
- * transport: http(),
137
- * })
138
- *
139
- * const result = await Actions.dex.buySync(client, {
140
- * tokenIn: '0x20c...11',
141
- * tokenOut: '0x20c...20',
142
- * amountOut: parseUnits('100', 6),
143
- * maxAmountIn: parseUnits('105', 6),
144
- * })
145
- * ```
146
- *
147
- * @param client - Client.
148
- * @param parameters - Parameters.
149
- * @returns The transaction receipt.
150
- */
151
- export declare function buySync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: buySync.Parameters<chain, account>): Promise<buySync.ReturnValue>;
152
- export declare namespace buySync {
153
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = buy.Parameters<chain, account>;
154
- type Args = buy.Args;
155
- type ReturnValue = Compute<{
156
- /** Transaction receipt. */
157
- receipt: TransactionReceipt;
158
- }>;
159
- type ErrorType = BaseErrorType;
160
- }
161
- /**
162
- * Cancels an order from the orderbook.
163
- *
164
- * @example
165
- * ```ts
166
- * import { createClient, http } from 'viem'
167
- * import { privateKeyToAccount } from 'viem/accounts'
168
- * import { tempo } from 'tempo.ts/chains'
169
- * import { Actions } from 'tempo.ts/viem'
170
- *
171
- * const client = createClient({
172
- * account: privateKeyToAccount('0x...'),
173
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
174
- * transport: http(),
175
- * })
176
- *
177
- * const hash = await Actions.dex.cancel(client, {
178
- * orderId: 123n,
179
- * })
180
- * ```
181
- *
182
- * @param client - Client.
183
- * @param parameters - Parameters.
184
- * @returns The transaction hash.
185
- */
186
- export declare function cancel<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: cancel.Parameters<chain, account>): Promise<cancel.ReturnValue>;
187
- export declare namespace cancel {
188
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
189
- type Args = {
190
- /** Order ID to cancel. */
191
- orderId: bigint;
192
- };
193
- type ReturnValue = WriteContractReturnType;
194
- type ErrorType = BaseErrorType;
195
- /** @internal */
196
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: cancel.Parameters<chain, account>): Promise<ReturnType<action>>;
197
- /**
198
- * Defines a call to the `cancel` function.
199
- *
200
- * Can be passed as a parameter to:
201
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
202
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
203
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
204
- *
205
- * @example
206
- * ```ts
207
- * import { createClient, http, walletActions } from 'viem'
208
- * import { tempo } from 'tempo.ts/chains'
209
- * import { Actions } from 'tempo.ts/viem'
210
- *
211
- * const client = createClient({
212
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
213
- * transport: http(),
214
- * }).extend(walletActions)
215
- *
216
- * const { result } = await client.sendCalls({
217
- * calls: [
218
- * Actions.dex.cancel.call({
219
- * orderId: 123n,
220
- * }),
221
- * ]
222
- * })
223
- * ```
224
- *
225
- * @param args - Arguments.
226
- * @returns The call.
227
- */
228
- function call(args: Args): {
229
- abi: [{
230
- readonly name: "cancel";
231
- readonly type: "function";
232
- readonly stateMutability: "nonpayable";
233
- readonly inputs: readonly [{
234
- readonly type: "uint128";
235
- readonly name: "orderId";
236
- }];
237
- readonly outputs: readonly [];
238
- }];
239
- functionName: "cancel";
240
- args?: readonly [bigint] | undefined;
241
- } & {
242
- args: readonly [bigint];
243
- } & {
244
- address: Address;
245
- } & {
246
- data: import("viem").Hex;
247
- to: Address;
248
- };
249
- /**
250
- * Extracts the `OrderCancelled` event from logs.
251
- *
252
- * @param logs - The logs.
253
- * @returns The `OrderCancelled` event.
254
- */
255
- function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{
256
- readonly name: "createPair";
257
- readonly type: "function";
258
- readonly stateMutability: "nonpayable";
259
- readonly inputs: readonly [{
260
- readonly type: "address";
261
- readonly name: "base";
262
- }];
263
- readonly outputs: readonly [{
264
- readonly type: "bytes32";
265
- readonly name: "key";
266
- }];
267
- }, {
268
- readonly name: "place";
269
- readonly type: "function";
270
- readonly stateMutability: "nonpayable";
271
- readonly inputs: readonly [{
272
- readonly type: "address";
273
- readonly name: "token";
274
- }, {
275
- readonly type: "uint128";
276
- readonly name: "amount";
277
- }, {
278
- readonly type: "bool";
279
- readonly name: "isBid";
280
- }, {
281
- readonly type: "int16";
282
- readonly name: "tick";
283
- }];
284
- readonly outputs: readonly [{
285
- readonly type: "uint128";
286
- readonly name: "orderId";
287
- }];
288
- }, {
289
- readonly name: "placeFlip";
290
- readonly type: "function";
291
- readonly stateMutability: "nonpayable";
292
- readonly inputs: readonly [{
293
- readonly type: "address";
294
- readonly name: "token";
295
- }, {
296
- readonly type: "uint128";
297
- readonly name: "amount";
298
- }, {
299
- readonly type: "bool";
300
- readonly name: "isBid";
301
- }, {
302
- readonly type: "int16";
303
- readonly name: "tick";
304
- }, {
305
- readonly type: "int16";
306
- readonly name: "flipTick";
307
- }];
308
- readonly outputs: readonly [{
309
- readonly type: "uint128";
310
- readonly name: "orderId";
311
- }];
312
- }, {
313
- readonly name: "cancel";
314
- readonly type: "function";
315
- readonly stateMutability: "nonpayable";
316
- readonly inputs: readonly [{
317
- readonly type: "uint128";
318
- readonly name: "orderId";
319
- }];
320
- readonly outputs: readonly [];
321
- }, {
322
- readonly name: "executeBlock";
323
- readonly type: "function";
324
- readonly stateMutability: "nonpayable";
325
- readonly inputs: readonly [];
326
- readonly outputs: readonly [];
327
- }, {
328
- readonly name: "swapExactAmountIn";
329
- readonly type: "function";
330
- readonly stateMutability: "nonpayable";
331
- readonly inputs: readonly [{
332
- readonly type: "address";
333
- readonly name: "tokenIn";
334
- }, {
335
- readonly type: "address";
336
- readonly name: "tokenOut";
337
- }, {
338
- readonly type: "uint128";
339
- readonly name: "amountIn";
340
- }, {
341
- readonly type: "uint128";
342
- readonly name: "minAmountOut";
343
- }];
344
- readonly outputs: readonly [{
345
- readonly type: "uint128";
346
- readonly name: "amountOut";
347
- }];
348
- }, {
349
- readonly name: "swapExactAmountOut";
350
- readonly type: "function";
351
- readonly stateMutability: "nonpayable";
352
- readonly inputs: readonly [{
353
- readonly type: "address";
354
- readonly name: "tokenIn";
355
- }, {
356
- readonly type: "address";
357
- readonly name: "tokenOut";
358
- }, {
359
- readonly type: "uint128";
360
- readonly name: "amountOut";
361
- }, {
362
- readonly type: "uint128";
363
- readonly name: "maxAmountIn";
364
- }];
365
- readonly outputs: readonly [{
366
- readonly type: "uint128";
367
- readonly name: "amountIn";
368
- }];
369
- }, {
370
- readonly name: "quoteSwapExactAmountIn";
371
- readonly type: "function";
372
- readonly stateMutability: "view";
373
- readonly inputs: readonly [{
374
- readonly type: "address";
375
- readonly name: "tokenIn";
376
- }, {
377
- readonly type: "address";
378
- readonly name: "tokenOut";
379
- }, {
380
- readonly type: "uint128";
381
- readonly name: "amountIn";
382
- }];
383
- readonly outputs: readonly [{
384
- readonly type: "uint128";
385
- readonly name: "amountOut";
386
- }];
387
- }, {
388
- readonly name: "quoteSwapExactAmountOut";
389
- readonly type: "function";
390
- readonly stateMutability: "view";
391
- readonly inputs: readonly [{
392
- readonly type: "address";
393
- readonly name: "tokenIn";
394
- }, {
395
- readonly type: "address";
396
- readonly name: "tokenOut";
397
- }, {
398
- readonly type: "uint128";
399
- readonly name: "amountOut";
400
- }];
401
- readonly outputs: readonly [{
402
- readonly type: "uint128";
403
- readonly name: "amountIn";
404
- }];
405
- }, {
406
- readonly name: "balanceOf";
407
- readonly type: "function";
408
- readonly stateMutability: "view";
409
- readonly inputs: readonly [{
410
- readonly type: "address";
411
- readonly name: "user";
412
- }, {
413
- readonly type: "address";
414
- readonly name: "token";
415
- }];
416
- readonly outputs: readonly [{
417
- readonly type: "uint128";
418
- }];
419
- }, {
420
- readonly name: "withdraw";
421
- readonly type: "function";
422
- readonly stateMutability: "nonpayable";
423
- readonly inputs: readonly [{
424
- readonly type: "address";
425
- readonly name: "token";
426
- }, {
427
- readonly type: "uint128";
428
- readonly name: "amount";
429
- }];
430
- readonly outputs: readonly [];
431
- }, {
432
- readonly name: "getOrder";
433
- readonly type: "function";
434
- readonly stateMutability: "view";
435
- readonly inputs: readonly [{
436
- readonly type: "uint128";
437
- readonly name: "orderId";
438
- }];
439
- readonly outputs: readonly [{
440
- readonly type: "tuple";
441
- readonly components: readonly [{
442
- readonly type: "uint128";
443
- readonly name: "orderId";
444
- }, {
445
- readonly type: "address";
446
- readonly name: "maker";
447
- }, {
448
- readonly type: "bytes32";
449
- readonly name: "bookKey";
450
- }, {
451
- readonly type: "bool";
452
- readonly name: "isBid";
453
- }, {
454
- readonly type: "int16";
455
- readonly name: "tick";
456
- }, {
457
- readonly type: "uint128";
458
- readonly name: "amount";
459
- }, {
460
- readonly type: "uint128";
461
- readonly name: "remaining";
462
- }, {
463
- readonly type: "uint128";
464
- readonly name: "prev";
465
- }, {
466
- readonly type: "uint128";
467
- readonly name: "next";
468
- }, {
469
- readonly type: "bool";
470
- readonly name: "isFlip";
471
- }, {
472
- readonly type: "int16";
473
- readonly name: "flipTick";
474
- }];
475
- }];
476
- }, {
477
- readonly name: "getTickLevel";
478
- readonly type: "function";
479
- readonly stateMutability: "view";
480
- readonly inputs: readonly [{
481
- readonly type: "address";
482
- readonly name: "base";
483
- }, {
484
- readonly type: "int16";
485
- readonly name: "tick";
486
- }, {
487
- readonly type: "bool";
488
- readonly name: "isBid";
489
- }];
490
- readonly outputs: readonly [{
491
- readonly type: "uint128";
492
- readonly name: "head";
493
- }, {
494
- readonly type: "uint128";
495
- readonly name: "tail";
496
- }, {
497
- readonly type: "uint128";
498
- readonly name: "totalLiquidity";
499
- }];
500
- }, {
501
- readonly name: "pairKey";
502
- readonly type: "function";
503
- readonly stateMutability: "pure";
504
- readonly inputs: readonly [{
505
- readonly type: "address";
506
- readonly name: "tokenA";
507
- }, {
508
- readonly type: "address";
509
- readonly name: "tokenB";
510
- }];
511
- readonly outputs: readonly [{
512
- readonly type: "bytes32";
513
- }];
514
- }, {
515
- readonly name: "activeOrderId";
516
- readonly type: "function";
517
- readonly stateMutability: "view";
518
- readonly inputs: readonly [];
519
- readonly outputs: readonly [{
520
- readonly type: "uint128";
521
- }];
522
- }, {
523
- readonly name: "pendingOrderId";
524
- readonly type: "function";
525
- readonly stateMutability: "view";
526
- readonly inputs: readonly [];
527
- readonly outputs: readonly [{
528
- readonly type: "uint128";
529
- }];
530
- }, {
531
- readonly name: "books";
532
- readonly type: "function";
533
- readonly stateMutability: "view";
534
- readonly inputs: readonly [{
535
- readonly type: "bytes32";
536
- readonly name: "pairKey";
537
- }];
538
- readonly outputs: readonly [{
539
- readonly type: "tuple";
540
- readonly components: readonly [{
541
- readonly type: "address";
542
- readonly name: "base";
543
- }, {
544
- readonly type: "address";
545
- readonly name: "quote";
546
- }, {
547
- readonly type: "int16";
548
- readonly name: "bestBidTick";
549
- }, {
550
- readonly type: "int16";
551
- readonly name: "bestAskTick";
552
- }];
553
- }];
554
- }, {
555
- readonly name: "MIN_TICK";
556
- readonly type: "function";
557
- readonly stateMutability: "pure";
558
- readonly inputs: readonly [];
559
- readonly outputs: readonly [{
560
- readonly type: "int16";
561
- }];
562
- }, {
563
- readonly name: "MAX_TICK";
564
- readonly type: "function";
565
- readonly stateMutability: "pure";
566
- readonly inputs: readonly [];
567
- readonly outputs: readonly [{
568
- readonly type: "int16";
569
- }];
570
- }, {
571
- readonly name: "TICK_SPACING";
572
- readonly type: "function";
573
- readonly stateMutability: "pure";
574
- readonly inputs: readonly [];
575
- readonly outputs: readonly [{
576
- readonly type: "int16";
577
- }];
578
- }, {
579
- readonly name: "PRICE_SCALE";
580
- readonly type: "function";
581
- readonly stateMutability: "pure";
582
- readonly inputs: readonly [];
583
- readonly outputs: readonly [{
584
- readonly type: "uint32";
585
- }];
586
- }, {
587
- readonly name: "MIN_PRICE";
588
- readonly type: "function";
589
- readonly stateMutability: "pure";
590
- readonly inputs: readonly [];
591
- readonly outputs: readonly [{
592
- readonly type: "uint32";
593
- }];
594
- }, {
595
- readonly name: "MAX_PRICE";
596
- readonly type: "function";
597
- readonly stateMutability: "pure";
598
- readonly inputs: readonly [];
599
- readonly outputs: readonly [{
600
- readonly type: "uint32";
601
- }];
602
- }, {
603
- readonly name: "tickToPrice";
604
- readonly type: "function";
605
- readonly stateMutability: "pure";
606
- readonly inputs: readonly [{
607
- readonly type: "int16";
608
- readonly name: "tick";
609
- }];
610
- readonly outputs: readonly [{
611
- readonly type: "uint32";
612
- readonly name: "price";
613
- }];
614
- }, {
615
- readonly name: "priceToTick";
616
- readonly type: "function";
617
- readonly stateMutability: "pure";
618
- readonly inputs: readonly [{
619
- readonly type: "uint32";
620
- readonly name: "price";
621
- }];
622
- readonly outputs: readonly [{
623
- readonly type: "int16";
624
- readonly name: "tick";
625
- }];
626
- }, {
627
- readonly name: "PairCreated";
628
- readonly type: "event";
629
- readonly inputs: readonly [{
630
- readonly type: "bytes32";
631
- readonly name: "key";
632
- readonly indexed: true;
633
- }, {
634
- readonly type: "address";
635
- readonly name: "base";
636
- readonly indexed: true;
637
- }, {
638
- readonly type: "address";
639
- readonly name: "quote";
640
- readonly indexed: true;
641
- }];
642
- }, {
643
- readonly name: "OrderPlaced";
644
- readonly type: "event";
645
- readonly inputs: readonly [{
646
- readonly type: "uint128";
647
- readonly name: "orderId";
648
- readonly indexed: true;
649
- }, {
650
- readonly type: "address";
651
- readonly name: "maker";
652
- readonly indexed: true;
653
- }, {
654
- readonly type: "address";
655
- readonly name: "token";
656
- readonly indexed: true;
657
- }, {
658
- readonly type: "uint128";
659
- readonly name: "amount";
660
- }, {
661
- readonly type: "bool";
662
- readonly name: "isBid";
663
- }, {
664
- readonly type: "int16";
665
- readonly name: "tick";
666
- }];
667
- }, {
668
- readonly name: "FlipOrderPlaced";
669
- readonly type: "event";
670
- readonly inputs: readonly [{
671
- readonly type: "uint128";
672
- readonly name: "orderId";
673
- readonly indexed: true;
674
- }, {
675
- readonly type: "address";
676
- readonly name: "maker";
677
- readonly indexed: true;
678
- }, {
679
- readonly type: "address";
680
- readonly name: "token";
681
- readonly indexed: true;
682
- }, {
683
- readonly type: "uint128";
684
- readonly name: "amount";
685
- }, {
686
- readonly type: "bool";
687
- readonly name: "isBid";
688
- }, {
689
- readonly type: "int16";
690
- readonly name: "tick";
691
- }, {
692
- readonly type: "int16";
693
- readonly name: "flipTick";
694
- }];
695
- }, {
696
- readonly name: "OrderFilled";
697
- readonly type: "event";
698
- readonly inputs: readonly [{
699
- readonly type: "uint128";
700
- readonly name: "orderId";
701
- readonly indexed: true;
702
- }, {
703
- readonly type: "address";
704
- readonly name: "maker";
705
- readonly indexed: true;
706
- }, {
707
- readonly type: "uint128";
708
- readonly name: "amountFilled";
709
- }, {
710
- readonly type: "bool";
711
- readonly name: "partialFill";
712
- }];
713
- }, {
714
- readonly name: "OrderFilled";
715
- readonly type: "event";
716
- readonly inputs: readonly [{
717
- readonly type: "uint128";
718
- readonly name: "orderId";
719
- readonly indexed: true;
720
- }, {
721
- readonly type: "address";
722
- readonly name: "maker";
723
- readonly indexed: true;
724
- }, {
725
- readonly type: "address";
726
- readonly name: "taker";
727
- readonly indexed: true;
728
- }, {
729
- readonly type: "uint128";
730
- readonly name: "amountFilled";
731
- }, {
732
- readonly type: "bool";
733
- readonly name: "partialFill";
734
- }];
735
- }, {
736
- readonly name: "OrderCancelled";
737
- readonly type: "event";
738
- readonly inputs: readonly [{
739
- readonly type: "uint128";
740
- readonly name: "orderId";
741
- readonly indexed: true;
742
- }];
743
- }, {
744
- readonly name: "Unauthorized";
745
- readonly type: "error";
746
- readonly inputs: readonly [];
747
- }, {
748
- readonly name: "PairDoesNotExist";
749
- readonly type: "error";
750
- readonly inputs: readonly [];
751
- }, {
752
- readonly name: "PairAlreadyExists";
753
- readonly type: "error";
754
- readonly inputs: readonly [];
755
- }, {
756
- readonly name: "OrderDoesNotExist";
757
- readonly type: "error";
758
- readonly inputs: readonly [];
759
- }, {
760
- readonly name: "IdenticalTokens";
761
- readonly type: "error";
762
- readonly inputs: readonly [];
763
- }, {
764
- readonly name: "InvalidToken";
765
- readonly type: "error";
766
- readonly inputs: readonly [];
767
- }, {
768
- readonly name: "TickOutOfBounds";
769
- readonly type: "error";
770
- readonly inputs: readonly [{
771
- readonly type: "int16";
772
- readonly name: "tick";
773
- }];
774
- }, {
775
- readonly name: "InvalidTick";
776
- readonly type: "error";
777
- readonly inputs: readonly [];
778
- }, {
779
- readonly name: "InvalidFlipTick";
780
- readonly type: "error";
781
- readonly inputs: readonly [];
782
- }, {
783
- readonly name: "InsufficientBalance";
784
- readonly type: "error";
785
- readonly inputs: readonly [];
786
- }, {
787
- readonly name: "InsufficientLiquidity";
788
- readonly type: "error";
789
- readonly inputs: readonly [];
790
- }, {
791
- readonly name: "InsufficientOutput";
792
- readonly type: "error";
793
- readonly inputs: readonly [];
794
- }, {
795
- readonly name: "MaxInputExceeded";
796
- readonly type: "error";
797
- readonly inputs: readonly [];
798
- }, {
799
- readonly name: "BelowMinimumOrderSize";
800
- readonly type: "error";
801
- readonly inputs: readonly [{
802
- readonly type: "uint128";
803
- readonly name: "amount";
804
- }];
805
- }, {
806
- readonly name: "InvalidBaseToken";
807
- readonly type: "error";
808
- readonly inputs: readonly [];
809
- }], "OrderCancelled">;
810
- }
811
- /**
812
- * Cancels an order from the orderbook.
813
- *
814
- * @example
815
- * ```ts
816
- * import { createClient, http } from 'viem'
817
- * import { privateKeyToAccount } from 'viem/accounts'
818
- * import { tempo } from 'tempo.ts/chains'
819
- * import { Actions } from 'tempo.ts/viem'
820
- *
821
- * const client = createClient({
822
- * account: privateKeyToAccount('0x...'),
823
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
824
- * transport: http(),
825
- * })
826
- *
827
- * const result = await Actions.dex.cancelSync(client, {
828
- * orderId: 123n,
829
- * })
830
- * ```
831
- *
832
- * @param client - Client.
833
- * @param parameters - Parameters.
834
- * @returns The transaction receipt and event data.
835
- */
836
- export declare function cancelSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: cancelSync.Parameters<chain, account>): Promise<cancelSync.ReturnValue>;
837
- export declare namespace cancelSync {
838
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = cancel.Parameters<chain, account>;
839
- type Args = cancel.Args;
840
- type ReturnValue = Compute<GetEventArgs<typeof Abis.stablecoinExchange, 'OrderCancelled', {
841
- IndexedOnly: false;
842
- Required: true;
843
- }> & {
844
- /** Transaction receipt. */
845
- receipt: TransactionReceipt;
846
- }>;
847
- type ErrorType = BaseErrorType;
848
- }
849
- /**
850
- * Creates a new trading pair on the DEX.
851
- *
852
- * @example
853
- * ```ts
854
- * import { createClient, http } from 'viem'
855
- * import { privateKeyToAccount } from 'viem/accounts'
856
- * import { tempo } from 'tempo.ts/chains'
857
- * import { Actions } from 'tempo.ts/viem'
858
- *
859
- * const client = createClient({
860
- * account: privateKeyToAccount('0x...'),
861
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
862
- * transport: http(),
863
- * })
864
- *
865
- * const hash = await Actions.dex.createPair(client, {
866
- * base: '0x20c...11',
867
- * })
868
- * ```
869
- *
870
- * @param client - Client.
871
- * @param parameters - Parameters.
872
- * @returns The transaction hash.
873
- */
874
- export declare function createPair<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: createPair.Parameters<chain, account>): Promise<createPair.ReturnValue>;
875
- export declare namespace createPair {
876
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
877
- type Args = {
878
- /** Address of the base token for the pair. */
879
- base: Address;
880
- };
881
- type ReturnValue = WriteContractReturnType;
882
- type ErrorType = BaseErrorType;
883
- /** @internal */
884
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: createPair.Parameters<chain, account>): Promise<ReturnType<action>>;
885
- /**
886
- * Defines a call to the `createPair` function.
887
- *
888
- * Can be passed as a parameter to:
889
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
890
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
891
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
892
- *
893
- * @example
894
- * ```ts
895
- * import { createClient, http, walletActions } from 'viem'
896
- * import { tempo } from 'tempo.ts/chains'
897
- * import { Actions } from 'tempo.ts/viem'
898
- *
899
- * const client = createClient({
900
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
901
- * transport: http(),
902
- * }).extend(walletActions)
903
- *
904
- * const { result } = await client.sendCalls({
905
- * calls: [
906
- * Actions.dex.createPair.call({
907
- * base: '0x20c0...beef',
908
- * }),
909
- * ]
910
- * })
911
- * ```
912
- *
913
- * @param args - Arguments.
914
- * @returns The call.
915
- */
916
- function call(args: Args): {
917
- abi: [{
918
- readonly name: "createPair";
919
- readonly type: "function";
920
- readonly stateMutability: "nonpayable";
921
- readonly inputs: readonly [{
922
- readonly type: "address";
923
- readonly name: "base";
924
- }];
925
- readonly outputs: readonly [{
926
- readonly type: "bytes32";
927
- readonly name: "key";
928
- }];
929
- }];
930
- functionName: "createPair";
931
- args?: readonly [`0x${string}`] | undefined;
932
- } & {
933
- args: readonly [`0x${string}`];
934
- } & {
935
- address: Address;
936
- } & {
937
- data: import("viem").Hex;
938
- to: Address;
939
- };
940
- /**
941
- * Extracts the `PairCreated` event from logs.
942
- *
943
- * @param logs - The logs.
944
- * @returns The `PairCreated` event.
945
- */
946
- function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{
947
- readonly name: "createPair";
948
- readonly type: "function";
949
- readonly stateMutability: "nonpayable";
950
- readonly inputs: readonly [{
951
- readonly type: "address";
952
- readonly name: "base";
953
- }];
954
- readonly outputs: readonly [{
955
- readonly type: "bytes32";
956
- readonly name: "key";
957
- }];
958
- }, {
959
- readonly name: "place";
960
- readonly type: "function";
961
- readonly stateMutability: "nonpayable";
962
- readonly inputs: readonly [{
963
- readonly type: "address";
964
- readonly name: "token";
965
- }, {
966
- readonly type: "uint128";
967
- readonly name: "amount";
968
- }, {
969
- readonly type: "bool";
970
- readonly name: "isBid";
971
- }, {
972
- readonly type: "int16";
973
- readonly name: "tick";
974
- }];
975
- readonly outputs: readonly [{
976
- readonly type: "uint128";
977
- readonly name: "orderId";
978
- }];
979
- }, {
980
- readonly name: "placeFlip";
981
- readonly type: "function";
982
- readonly stateMutability: "nonpayable";
983
- readonly inputs: readonly [{
984
- readonly type: "address";
985
- readonly name: "token";
986
- }, {
987
- readonly type: "uint128";
988
- readonly name: "amount";
989
- }, {
990
- readonly type: "bool";
991
- readonly name: "isBid";
992
- }, {
993
- readonly type: "int16";
994
- readonly name: "tick";
995
- }, {
996
- readonly type: "int16";
997
- readonly name: "flipTick";
998
- }];
999
- readonly outputs: readonly [{
1000
- readonly type: "uint128";
1001
- readonly name: "orderId";
1002
- }];
1003
- }, {
1004
- readonly name: "cancel";
1005
- readonly type: "function";
1006
- readonly stateMutability: "nonpayable";
1007
- readonly inputs: readonly [{
1008
- readonly type: "uint128";
1009
- readonly name: "orderId";
1010
- }];
1011
- readonly outputs: readonly [];
1012
- }, {
1013
- readonly name: "executeBlock";
1014
- readonly type: "function";
1015
- readonly stateMutability: "nonpayable";
1016
- readonly inputs: readonly [];
1017
- readonly outputs: readonly [];
1018
- }, {
1019
- readonly name: "swapExactAmountIn";
1020
- readonly type: "function";
1021
- readonly stateMutability: "nonpayable";
1022
- readonly inputs: readonly [{
1023
- readonly type: "address";
1024
- readonly name: "tokenIn";
1025
- }, {
1026
- readonly type: "address";
1027
- readonly name: "tokenOut";
1028
- }, {
1029
- readonly type: "uint128";
1030
- readonly name: "amountIn";
1031
- }, {
1032
- readonly type: "uint128";
1033
- readonly name: "minAmountOut";
1034
- }];
1035
- readonly outputs: readonly [{
1036
- readonly type: "uint128";
1037
- readonly name: "amountOut";
1038
- }];
1039
- }, {
1040
- readonly name: "swapExactAmountOut";
1041
- readonly type: "function";
1042
- readonly stateMutability: "nonpayable";
1043
- readonly inputs: readonly [{
1044
- readonly type: "address";
1045
- readonly name: "tokenIn";
1046
- }, {
1047
- readonly type: "address";
1048
- readonly name: "tokenOut";
1049
- }, {
1050
- readonly type: "uint128";
1051
- readonly name: "amountOut";
1052
- }, {
1053
- readonly type: "uint128";
1054
- readonly name: "maxAmountIn";
1055
- }];
1056
- readonly outputs: readonly [{
1057
- readonly type: "uint128";
1058
- readonly name: "amountIn";
1059
- }];
1060
- }, {
1061
- readonly name: "quoteSwapExactAmountIn";
1062
- readonly type: "function";
1063
- readonly stateMutability: "view";
1064
- readonly inputs: readonly [{
1065
- readonly type: "address";
1066
- readonly name: "tokenIn";
1067
- }, {
1068
- readonly type: "address";
1069
- readonly name: "tokenOut";
1070
- }, {
1071
- readonly type: "uint128";
1072
- readonly name: "amountIn";
1073
- }];
1074
- readonly outputs: readonly [{
1075
- readonly type: "uint128";
1076
- readonly name: "amountOut";
1077
- }];
1078
- }, {
1079
- readonly name: "quoteSwapExactAmountOut";
1080
- readonly type: "function";
1081
- readonly stateMutability: "view";
1082
- readonly inputs: readonly [{
1083
- readonly type: "address";
1084
- readonly name: "tokenIn";
1085
- }, {
1086
- readonly type: "address";
1087
- readonly name: "tokenOut";
1088
- }, {
1089
- readonly type: "uint128";
1090
- readonly name: "amountOut";
1091
- }];
1092
- readonly outputs: readonly [{
1093
- readonly type: "uint128";
1094
- readonly name: "amountIn";
1095
- }];
1096
- }, {
1097
- readonly name: "balanceOf";
1098
- readonly type: "function";
1099
- readonly stateMutability: "view";
1100
- readonly inputs: readonly [{
1101
- readonly type: "address";
1102
- readonly name: "user";
1103
- }, {
1104
- readonly type: "address";
1105
- readonly name: "token";
1106
- }];
1107
- readonly outputs: readonly [{
1108
- readonly type: "uint128";
1109
- }];
1110
- }, {
1111
- readonly name: "withdraw";
1112
- readonly type: "function";
1113
- readonly stateMutability: "nonpayable";
1114
- readonly inputs: readonly [{
1115
- readonly type: "address";
1116
- readonly name: "token";
1117
- }, {
1118
- readonly type: "uint128";
1119
- readonly name: "amount";
1120
- }];
1121
- readonly outputs: readonly [];
1122
- }, {
1123
- readonly name: "getOrder";
1124
- readonly type: "function";
1125
- readonly stateMutability: "view";
1126
- readonly inputs: readonly [{
1127
- readonly type: "uint128";
1128
- readonly name: "orderId";
1129
- }];
1130
- readonly outputs: readonly [{
1131
- readonly type: "tuple";
1132
- readonly components: readonly [{
1133
- readonly type: "uint128";
1134
- readonly name: "orderId";
1135
- }, {
1136
- readonly type: "address";
1137
- readonly name: "maker";
1138
- }, {
1139
- readonly type: "bytes32";
1140
- readonly name: "bookKey";
1141
- }, {
1142
- readonly type: "bool";
1143
- readonly name: "isBid";
1144
- }, {
1145
- readonly type: "int16";
1146
- readonly name: "tick";
1147
- }, {
1148
- readonly type: "uint128";
1149
- readonly name: "amount";
1150
- }, {
1151
- readonly type: "uint128";
1152
- readonly name: "remaining";
1153
- }, {
1154
- readonly type: "uint128";
1155
- readonly name: "prev";
1156
- }, {
1157
- readonly type: "uint128";
1158
- readonly name: "next";
1159
- }, {
1160
- readonly type: "bool";
1161
- readonly name: "isFlip";
1162
- }, {
1163
- readonly type: "int16";
1164
- readonly name: "flipTick";
1165
- }];
1166
- }];
1167
- }, {
1168
- readonly name: "getTickLevel";
1169
- readonly type: "function";
1170
- readonly stateMutability: "view";
1171
- readonly inputs: readonly [{
1172
- readonly type: "address";
1173
- readonly name: "base";
1174
- }, {
1175
- readonly type: "int16";
1176
- readonly name: "tick";
1177
- }, {
1178
- readonly type: "bool";
1179
- readonly name: "isBid";
1180
- }];
1181
- readonly outputs: readonly [{
1182
- readonly type: "uint128";
1183
- readonly name: "head";
1184
- }, {
1185
- readonly type: "uint128";
1186
- readonly name: "tail";
1187
- }, {
1188
- readonly type: "uint128";
1189
- readonly name: "totalLiquidity";
1190
- }];
1191
- }, {
1192
- readonly name: "pairKey";
1193
- readonly type: "function";
1194
- readonly stateMutability: "pure";
1195
- readonly inputs: readonly [{
1196
- readonly type: "address";
1197
- readonly name: "tokenA";
1198
- }, {
1199
- readonly type: "address";
1200
- readonly name: "tokenB";
1201
- }];
1202
- readonly outputs: readonly [{
1203
- readonly type: "bytes32";
1204
- }];
1205
- }, {
1206
- readonly name: "activeOrderId";
1207
- readonly type: "function";
1208
- readonly stateMutability: "view";
1209
- readonly inputs: readonly [];
1210
- readonly outputs: readonly [{
1211
- readonly type: "uint128";
1212
- }];
1213
- }, {
1214
- readonly name: "pendingOrderId";
1215
- readonly type: "function";
1216
- readonly stateMutability: "view";
1217
- readonly inputs: readonly [];
1218
- readonly outputs: readonly [{
1219
- readonly type: "uint128";
1220
- }];
1221
- }, {
1222
- readonly name: "books";
1223
- readonly type: "function";
1224
- readonly stateMutability: "view";
1225
- readonly inputs: readonly [{
1226
- readonly type: "bytes32";
1227
- readonly name: "pairKey";
1228
- }];
1229
- readonly outputs: readonly [{
1230
- readonly type: "tuple";
1231
- readonly components: readonly [{
1232
- readonly type: "address";
1233
- readonly name: "base";
1234
- }, {
1235
- readonly type: "address";
1236
- readonly name: "quote";
1237
- }, {
1238
- readonly type: "int16";
1239
- readonly name: "bestBidTick";
1240
- }, {
1241
- readonly type: "int16";
1242
- readonly name: "bestAskTick";
1243
- }];
1244
- }];
1245
- }, {
1246
- readonly name: "MIN_TICK";
1247
- readonly type: "function";
1248
- readonly stateMutability: "pure";
1249
- readonly inputs: readonly [];
1250
- readonly outputs: readonly [{
1251
- readonly type: "int16";
1252
- }];
1253
- }, {
1254
- readonly name: "MAX_TICK";
1255
- readonly type: "function";
1256
- readonly stateMutability: "pure";
1257
- readonly inputs: readonly [];
1258
- readonly outputs: readonly [{
1259
- readonly type: "int16";
1260
- }];
1261
- }, {
1262
- readonly name: "TICK_SPACING";
1263
- readonly type: "function";
1264
- readonly stateMutability: "pure";
1265
- readonly inputs: readonly [];
1266
- readonly outputs: readonly [{
1267
- readonly type: "int16";
1268
- }];
1269
- }, {
1270
- readonly name: "PRICE_SCALE";
1271
- readonly type: "function";
1272
- readonly stateMutability: "pure";
1273
- readonly inputs: readonly [];
1274
- readonly outputs: readonly [{
1275
- readonly type: "uint32";
1276
- }];
1277
- }, {
1278
- readonly name: "MIN_PRICE";
1279
- readonly type: "function";
1280
- readonly stateMutability: "pure";
1281
- readonly inputs: readonly [];
1282
- readonly outputs: readonly [{
1283
- readonly type: "uint32";
1284
- }];
1285
- }, {
1286
- readonly name: "MAX_PRICE";
1287
- readonly type: "function";
1288
- readonly stateMutability: "pure";
1289
- readonly inputs: readonly [];
1290
- readonly outputs: readonly [{
1291
- readonly type: "uint32";
1292
- }];
1293
- }, {
1294
- readonly name: "tickToPrice";
1295
- readonly type: "function";
1296
- readonly stateMutability: "pure";
1297
- readonly inputs: readonly [{
1298
- readonly type: "int16";
1299
- readonly name: "tick";
1300
- }];
1301
- readonly outputs: readonly [{
1302
- readonly type: "uint32";
1303
- readonly name: "price";
1304
- }];
1305
- }, {
1306
- readonly name: "priceToTick";
1307
- readonly type: "function";
1308
- readonly stateMutability: "pure";
1309
- readonly inputs: readonly [{
1310
- readonly type: "uint32";
1311
- readonly name: "price";
1312
- }];
1313
- readonly outputs: readonly [{
1314
- readonly type: "int16";
1315
- readonly name: "tick";
1316
- }];
1317
- }, {
1318
- readonly name: "PairCreated";
1319
- readonly type: "event";
1320
- readonly inputs: readonly [{
1321
- readonly type: "bytes32";
1322
- readonly name: "key";
1323
- readonly indexed: true;
1324
- }, {
1325
- readonly type: "address";
1326
- readonly name: "base";
1327
- readonly indexed: true;
1328
- }, {
1329
- readonly type: "address";
1330
- readonly name: "quote";
1331
- readonly indexed: true;
1332
- }];
1333
- }, {
1334
- readonly name: "OrderPlaced";
1335
- readonly type: "event";
1336
- readonly inputs: readonly [{
1337
- readonly type: "uint128";
1338
- readonly name: "orderId";
1339
- readonly indexed: true;
1340
- }, {
1341
- readonly type: "address";
1342
- readonly name: "maker";
1343
- readonly indexed: true;
1344
- }, {
1345
- readonly type: "address";
1346
- readonly name: "token";
1347
- readonly indexed: true;
1348
- }, {
1349
- readonly type: "uint128";
1350
- readonly name: "amount";
1351
- }, {
1352
- readonly type: "bool";
1353
- readonly name: "isBid";
1354
- }, {
1355
- readonly type: "int16";
1356
- readonly name: "tick";
1357
- }];
1358
- }, {
1359
- readonly name: "FlipOrderPlaced";
1360
- readonly type: "event";
1361
- readonly inputs: readonly [{
1362
- readonly type: "uint128";
1363
- readonly name: "orderId";
1364
- readonly indexed: true;
1365
- }, {
1366
- readonly type: "address";
1367
- readonly name: "maker";
1368
- readonly indexed: true;
1369
- }, {
1370
- readonly type: "address";
1371
- readonly name: "token";
1372
- readonly indexed: true;
1373
- }, {
1374
- readonly type: "uint128";
1375
- readonly name: "amount";
1376
- }, {
1377
- readonly type: "bool";
1378
- readonly name: "isBid";
1379
- }, {
1380
- readonly type: "int16";
1381
- readonly name: "tick";
1382
- }, {
1383
- readonly type: "int16";
1384
- readonly name: "flipTick";
1385
- }];
1386
- }, {
1387
- readonly name: "OrderFilled";
1388
- readonly type: "event";
1389
- readonly inputs: readonly [{
1390
- readonly type: "uint128";
1391
- readonly name: "orderId";
1392
- readonly indexed: true;
1393
- }, {
1394
- readonly type: "address";
1395
- readonly name: "maker";
1396
- readonly indexed: true;
1397
- }, {
1398
- readonly type: "uint128";
1399
- readonly name: "amountFilled";
1400
- }, {
1401
- readonly type: "bool";
1402
- readonly name: "partialFill";
1403
- }];
1404
- }, {
1405
- readonly name: "OrderFilled";
1406
- readonly type: "event";
1407
- readonly inputs: readonly [{
1408
- readonly type: "uint128";
1409
- readonly name: "orderId";
1410
- readonly indexed: true;
1411
- }, {
1412
- readonly type: "address";
1413
- readonly name: "maker";
1414
- readonly indexed: true;
1415
- }, {
1416
- readonly type: "address";
1417
- readonly name: "taker";
1418
- readonly indexed: true;
1419
- }, {
1420
- readonly type: "uint128";
1421
- readonly name: "amountFilled";
1422
- }, {
1423
- readonly type: "bool";
1424
- readonly name: "partialFill";
1425
- }];
1426
- }, {
1427
- readonly name: "OrderCancelled";
1428
- readonly type: "event";
1429
- readonly inputs: readonly [{
1430
- readonly type: "uint128";
1431
- readonly name: "orderId";
1432
- readonly indexed: true;
1433
- }];
1434
- }, {
1435
- readonly name: "Unauthorized";
1436
- readonly type: "error";
1437
- readonly inputs: readonly [];
1438
- }, {
1439
- readonly name: "PairDoesNotExist";
1440
- readonly type: "error";
1441
- readonly inputs: readonly [];
1442
- }, {
1443
- readonly name: "PairAlreadyExists";
1444
- readonly type: "error";
1445
- readonly inputs: readonly [];
1446
- }, {
1447
- readonly name: "OrderDoesNotExist";
1448
- readonly type: "error";
1449
- readonly inputs: readonly [];
1450
- }, {
1451
- readonly name: "IdenticalTokens";
1452
- readonly type: "error";
1453
- readonly inputs: readonly [];
1454
- }, {
1455
- readonly name: "InvalidToken";
1456
- readonly type: "error";
1457
- readonly inputs: readonly [];
1458
- }, {
1459
- readonly name: "TickOutOfBounds";
1460
- readonly type: "error";
1461
- readonly inputs: readonly [{
1462
- readonly type: "int16";
1463
- readonly name: "tick";
1464
- }];
1465
- }, {
1466
- readonly name: "InvalidTick";
1467
- readonly type: "error";
1468
- readonly inputs: readonly [];
1469
- }, {
1470
- readonly name: "InvalidFlipTick";
1471
- readonly type: "error";
1472
- readonly inputs: readonly [];
1473
- }, {
1474
- readonly name: "InsufficientBalance";
1475
- readonly type: "error";
1476
- readonly inputs: readonly [];
1477
- }, {
1478
- readonly name: "InsufficientLiquidity";
1479
- readonly type: "error";
1480
- readonly inputs: readonly [];
1481
- }, {
1482
- readonly name: "InsufficientOutput";
1483
- readonly type: "error";
1484
- readonly inputs: readonly [];
1485
- }, {
1486
- readonly name: "MaxInputExceeded";
1487
- readonly type: "error";
1488
- readonly inputs: readonly [];
1489
- }, {
1490
- readonly name: "BelowMinimumOrderSize";
1491
- readonly type: "error";
1492
- readonly inputs: readonly [{
1493
- readonly type: "uint128";
1494
- readonly name: "amount";
1495
- }];
1496
- }, {
1497
- readonly name: "InvalidBaseToken";
1498
- readonly type: "error";
1499
- readonly inputs: readonly [];
1500
- }], "PairCreated">;
1501
- }
1502
- /**
1503
- * Creates a new trading pair on the DEX.
1504
- *
1505
- * @example
1506
- * ```ts
1507
- * import { createClient, http } from 'viem'
1508
- * import { privateKeyToAccount } from 'viem/accounts'
1509
- * import { tempo } from 'tempo.ts/chains'
1510
- * import { Actions } from 'tempo.ts/viem'
1511
- *
1512
- * const client = createClient({
1513
- * account: privateKeyToAccount('0x...'),
1514
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1515
- * transport: http(),
1516
- * })
1517
- *
1518
- * const result = await Actions.dex.createPairSync(client, {
1519
- * base: '0x20c...11',
1520
- * })
1521
- * ```
1522
- *
1523
- * @param client - Client.
1524
- * @param parameters - Parameters.
1525
- * @returns The transaction receipt and event data.
1526
- */
1527
- export declare function createPairSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: createPairSync.Parameters<chain, account>): Promise<createPairSync.ReturnValue>;
1528
- export declare namespace createPairSync {
1529
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = createPair.Parameters<chain, account>;
1530
- type Args = createPair.Args;
1531
- type ReturnValue = Compute<GetEventArgs<typeof Abis.stablecoinExchange, 'PairCreated', {
1532
- IndexedOnly: false;
1533
- Required: true;
1534
- }> & {
1535
- /** Transaction receipt. */
1536
- receipt: TransactionReceipt;
1537
- }>;
1538
- type ErrorType = BaseErrorType;
1539
- }
1540
- /**
1541
- * Gets a user's token balance on the DEX.
1542
- *
1543
- * @example
1544
- * ```ts
1545
- * import { createClient, http } from 'viem'
1546
- * import { tempo } from 'tempo.ts/chains'
1547
- * import { Actions } from 'tempo.ts/viem'
1548
- *
1549
- * const client = createClient({
1550
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1551
- * transport: http(),
1552
- * })
1553
- *
1554
- * const balance = await Actions.dex.getBalance(client, {
1555
- * account: '0x...',
1556
- * token: '0x20c...11',
1557
- * })
1558
- * ```
1559
- *
1560
- * @param client - Client.
1561
- * @param parameters - Parameters.
1562
- * @returns The user's token balance on the DEX.
1563
- */
1564
- export declare function getBalance<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: getBalance.Parameters<account>): Promise<getBalance.ReturnValue>;
1565
- export declare namespace getBalance {
1566
- type Parameters<account extends Account | undefined = Account | undefined> = ReadParameters & GetAccountParameter<account> & Args;
1567
- type Args = {
1568
- /** Address of the account. */
1569
- account: Address;
1570
- /** Address of the token. */
1571
- token: Address;
1572
- };
1573
- type ReturnValue = ReadContractReturnType<typeof Abis.stablecoinExchange, 'balanceOf', never>;
1574
- /**
1575
- * Defines a call to the `balanceOf` function.
1576
- *
1577
- * @param args - Arguments.
1578
- * @returns The call.
1579
- */
1580
- function call(args: Args): {
1581
- abi: [{
1582
- readonly name: "balanceOf";
1583
- readonly type: "function";
1584
- readonly stateMutability: "view";
1585
- readonly inputs: readonly [{
1586
- readonly type: "address";
1587
- readonly name: "user";
1588
- }, {
1589
- readonly type: "address";
1590
- readonly name: "token";
1591
- }];
1592
- readonly outputs: readonly [{
1593
- readonly type: "uint128";
1594
- }];
1595
- }];
1596
- functionName: "balanceOf";
1597
- args?: readonly [`0x${string}`, `0x${string}`] | undefined;
1598
- } & {
1599
- args: readonly [`0x${string}`, `0x${string}`];
1600
- } & {
1601
- address: Address;
1602
- } & {
1603
- data: import("viem").Hex;
1604
- to: Address;
1605
- };
1606
- }
1607
- /**
1608
- * Gets the quote for buying a specific amount of tokens.
1609
- *
1610
- * @example
1611
- * ```ts
1612
- * import { createClient, http, parseUnits } from 'viem'
1613
- * import { tempo } from 'tempo.ts/chains'
1614
- * import { Actions } from 'tempo.ts/viem'
1615
- *
1616
- * const client = createClient({
1617
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1618
- * transport: http(),
1619
- * })
1620
- *
1621
- * const amountIn = await Actions.dex.getBuyQuote(client, {
1622
- * amountOut: parseUnits('100', 6),
1623
- * tokenIn: '0x20c...11',
1624
- * tokenOut: '0x20c...20',
1625
- * })
1626
- * ```
1627
- *
1628
- * @param client - Client.
1629
- * @param parameters - Parameters.
1630
- * @returns The amount of tokenIn needed to buy the specified amountOut.
1631
- */
1632
- export declare function getBuyQuote<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: getBuyQuote.Parameters): Promise<getBuyQuote.ReturnValue>;
1633
- export declare namespace getBuyQuote {
1634
- type Parameters = ReadParameters & Args;
1635
- type Args = {
1636
- /** Amount of tokenOut to buy. */
1637
- amountOut: bigint;
1638
- /** Address of the token to spend. */
1639
- tokenIn: Address;
1640
- /** Address of the token to buy. */
1641
- tokenOut: Address;
1642
- };
1643
- type ReturnValue = ReadContractReturnType<typeof Abis.stablecoinExchange, 'quoteSwapExactAmountOut', never>;
1644
- /**
1645
- * Defines a call to the `quoteSwapExactAmountOut` function.
1646
- *
1647
- * @param args - Arguments.
1648
- * @returns The call.
1649
- */
1650
- function call(args: Args): {
1651
- abi: [{
1652
- readonly name: "quoteSwapExactAmountOut";
1653
- readonly type: "function";
1654
- readonly stateMutability: "view";
1655
- readonly inputs: readonly [{
1656
- readonly type: "address";
1657
- readonly name: "tokenIn";
1658
- }, {
1659
- readonly type: "address";
1660
- readonly name: "tokenOut";
1661
- }, {
1662
- readonly type: "uint128";
1663
- readonly name: "amountOut";
1664
- }];
1665
- readonly outputs: readonly [{
1666
- readonly type: "uint128";
1667
- readonly name: "amountIn";
1668
- }];
1669
- }];
1670
- functionName: "quoteSwapExactAmountOut";
1671
- args?: readonly [`0x${string}`, `0x${string}`, bigint] | undefined;
1672
- } & {
1673
- args: readonly [`0x${string}`, `0x${string}`, bigint];
1674
- } & {
1675
- address: Address;
1676
- } & {
1677
- data: import("viem").Hex;
1678
- to: Address;
1679
- };
1680
- }
1681
- /**
1682
- * Gets an order's details from the orderbook.
1683
- *
1684
- * @example
1685
- * ```ts
1686
- * import { createClient, http } from 'viem'
1687
- * import { tempo } from 'tempo.ts/chains'
1688
- * import { Actions } from 'tempo.ts/viem'
1689
- *
1690
- * const client = createClient({
1691
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1692
- * transport: http(),
1693
- * })
1694
- *
1695
- * const order = await Actions.dex.getOrder(client, {
1696
- * orderId: 123n,
1697
- * })
1698
- * ```
1699
- *
1700
- * @param client - Client.
1701
- * @param parameters - Parameters.
1702
- * @returns The order details.
1703
- */
1704
- export declare function getOrder<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: getOrder.Parameters): Promise<getOrder.ReturnValue>;
1705
- export declare namespace getOrder {
1706
- type Parameters = ReadParameters & Args;
1707
- type Args = {
1708
- /** Order ID to query. */
1709
- orderId: bigint;
1710
- };
1711
- type ReturnValue = ReadContractReturnType<typeof Abis.stablecoinExchange, 'getOrder', never>;
1712
- /**
1713
- * Defines a call to the `getOrder` function.
1714
- *
1715
- * @param args - Arguments.
1716
- * @returns The call.
1717
- */
1718
- function call(args: Args): {
1719
- abi: [{
1720
- readonly name: "getOrder";
1721
- readonly type: "function";
1722
- readonly stateMutability: "view";
1723
- readonly inputs: readonly [{
1724
- readonly type: "uint128";
1725
- readonly name: "orderId";
1726
- }];
1727
- readonly outputs: readonly [{
1728
- readonly type: "tuple";
1729
- readonly components: readonly [{
1730
- readonly type: "uint128";
1731
- readonly name: "orderId";
1732
- }, {
1733
- readonly type: "address";
1734
- readonly name: "maker";
1735
- }, {
1736
- readonly type: "bytes32";
1737
- readonly name: "bookKey";
1738
- }, {
1739
- readonly type: "bool";
1740
- readonly name: "isBid";
1741
- }, {
1742
- readonly type: "int16";
1743
- readonly name: "tick";
1744
- }, {
1745
- readonly type: "uint128";
1746
- readonly name: "amount";
1747
- }, {
1748
- readonly type: "uint128";
1749
- readonly name: "remaining";
1750
- }, {
1751
- readonly type: "uint128";
1752
- readonly name: "prev";
1753
- }, {
1754
- readonly type: "uint128";
1755
- readonly name: "next";
1756
- }, {
1757
- readonly type: "bool";
1758
- readonly name: "isFlip";
1759
- }, {
1760
- readonly type: "int16";
1761
- readonly name: "flipTick";
1762
- }];
1763
- }];
1764
- }];
1765
- functionName: "getOrder";
1766
- args?: readonly [bigint] | undefined;
1767
- } & {
1768
- args: readonly [bigint];
1769
- } & {
1770
- address: Address;
1771
- } & {
1772
- data: import("viem").Hex;
1773
- to: Address;
1774
- };
1775
- }
1776
- /**
1777
- * Gets orderbook information for a trading pair.
1778
- *
1779
- * @example
1780
- * ```ts
1781
- * import { createClient, http } from 'viem'
1782
- * import { tempo } from 'tempo.ts/chains'
1783
- * import { Actions } from 'tempo.ts/viem'
1784
- *
1785
- * const client = createClient({
1786
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1787
- * transport: http(),
1788
- * })
1789
- *
1790
- * const book = await Actions.dex.getOrderbook(client, {
1791
- * base: '0x20c...11',
1792
- * quote: '0x20c...20',
1793
- * })
1794
- * ```
1795
- *
1796
- * @param client - Client.
1797
- * @param parameters - Parameters.
1798
- * @returns The orderbook information.
1799
- */
1800
- export declare function getOrderbook<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: getOrderbook.Parameters): Promise<getOrderbook.ReturnValue>;
1801
- export declare namespace getOrderbook {
1802
- type Parameters = ReadParameters & Args;
1803
- type Args = {
1804
- /** Address of the base token. */
1805
- base: Address;
1806
- /** Address of the quote token. */
1807
- quote: Address;
1808
- };
1809
- type ReturnValue = ReadContractReturnType<typeof Abis.stablecoinExchange, 'books', never>;
1810
- /**
1811
- * Defines a call to the `books` function.
1812
- *
1813
- * @param args - Arguments.
1814
- * @returns The call.
1815
- */
1816
- function call(args: Args): {
1817
- abi: [{
1818
- readonly name: "books";
1819
- readonly type: "function";
1820
- readonly stateMutability: "view";
1821
- readonly inputs: readonly [{
1822
- readonly type: "bytes32";
1823
- readonly name: "pairKey";
1824
- }];
1825
- readonly outputs: readonly [{
1826
- readonly type: "tuple";
1827
- readonly components: readonly [{
1828
- readonly type: "address";
1829
- readonly name: "base";
1830
- }, {
1831
- readonly type: "address";
1832
- readonly name: "quote";
1833
- }, {
1834
- readonly type: "int16";
1835
- readonly name: "bestBidTick";
1836
- }, {
1837
- readonly type: "int16";
1838
- readonly name: "bestAskTick";
1839
- }];
1840
- }];
1841
- }];
1842
- functionName: "books";
1843
- args?: readonly [`0x${string}`] | undefined;
1844
- } & {
1845
- args: readonly [`0x${string}`];
1846
- } & {
1847
- address: Address;
1848
- } & {
1849
- data: import("viem").Hex;
1850
- to: Address;
1851
- };
1852
- }
1853
- /**
1854
- * Gets the price level information at a specific tick.
1855
- *
1856
- * @example
1857
- * ```ts
1858
- * import { createClient, http } from 'viem'
1859
- * import { tempo } from 'tempo.ts/chains'
1860
- * import { Actions, Tick } from 'tempo.ts/viem'
1861
- *
1862
- * const client = createClient({
1863
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1864
- * transport: http(),
1865
- * })
1866
- *
1867
- * const level = await Actions.dex.getTickLevel(client, {
1868
- * base: '0x20c...11',
1869
- * tick: Tick.fromPrice('1.001'),
1870
- * isBid: true,
1871
- * })
1872
- * ```
1873
- *
1874
- * @param client - Client.
1875
- * @param parameters - Parameters.
1876
- * @returns The price level information.
1877
- */
1878
- export declare function getTickLevel<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: getTickLevel.Parameters): Promise<getTickLevel.ReturnValue>;
1879
- export declare namespace getTickLevel {
1880
- type Parameters = ReadParameters & Args;
1881
- type Args = {
1882
- /** Address of the base token. */
1883
- base: Address;
1884
- /** Whether to query the bid side (true) or ask side (false). */
1885
- isBid: boolean;
1886
- /** Price tick to query. */
1887
- tick: number;
1888
- };
1889
- type ReturnValue = {
1890
- /** Order ID of the first order at this tick (0 if empty) */
1891
- head: bigint;
1892
- /** Order ID of the last order at this tick (0 if empty) */
1893
- tail: bigint;
1894
- /** Total liquidity available at this tick level */
1895
- totalLiquidity: bigint;
1896
- };
1897
- /**
1898
- * Defines a call to the `getTickLevel` function.
1899
- *
1900
- * @param args - Arguments.
1901
- * @returns The call.
1902
- */
1903
- function call(args: Args): {
1904
- abi: [{
1905
- readonly name: "getTickLevel";
1906
- readonly type: "function";
1907
- readonly stateMutability: "view";
1908
- readonly inputs: readonly [{
1909
- readonly type: "address";
1910
- readonly name: "base";
1911
- }, {
1912
- readonly type: "int16";
1913
- readonly name: "tick";
1914
- }, {
1915
- readonly type: "bool";
1916
- readonly name: "isBid";
1917
- }];
1918
- readonly outputs: readonly [{
1919
- readonly type: "uint128";
1920
- readonly name: "head";
1921
- }, {
1922
- readonly type: "uint128";
1923
- readonly name: "tail";
1924
- }, {
1925
- readonly type: "uint128";
1926
- readonly name: "totalLiquidity";
1927
- }];
1928
- }];
1929
- functionName: "getTickLevel";
1930
- args?: readonly [`0x${string}`, number, boolean] | readonly [`0x${string}`, number, import("viem").Widen<boolean>] | undefined;
1931
- } & {
1932
- args: readonly [`0x${string}`, number, import("viem").Widen<boolean>];
1933
- } & {
1934
- address: Address;
1935
- } & {
1936
- data: import("viem").Hex;
1937
- to: Address;
1938
- };
1939
- }
1940
- /**
1941
- * Gets the quote for selling a specific amount of tokens.
1942
- *
1943
- * @example
1944
- * ```ts
1945
- * import { createClient, http, parseUnits } from 'viem'
1946
- * import { tempo } from 'tempo.ts/chains'
1947
- * import { Actions } from 'tempo.ts/viem'
1948
- *
1949
- * const client = createClient({
1950
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1951
- * transport: http(),
1952
- * })
1953
- *
1954
- * const amountOut = await Actions.dex.getSellQuote(client, {
1955
- * amountIn: parseUnits('100', 6),
1956
- * tokenIn: '0x20c...11',
1957
- * tokenOut: '0x20c...20',
1958
- * })
1959
- * ```
1960
- *
1961
- * @param client - Client.
1962
- * @param parameters - Parameters.
1963
- * @returns The amount of tokenOut received for selling the specified amountIn.
1964
- */
1965
- export declare function getSellQuote<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: getSellQuote.Parameters): Promise<getSellQuote.ReturnValue>;
1966
- export declare namespace getSellQuote {
1967
- type Parameters = ReadParameters & Args;
1968
- type Args = {
1969
- /** Amount of tokenIn to sell. */
1970
- amountIn: bigint;
1971
- /** Address of the token to sell. */
1972
- tokenIn: Address;
1973
- /** Address of the token to receive. */
1974
- tokenOut: Address;
1975
- };
1976
- type ReturnValue = ReadContractReturnType<typeof Abis.stablecoinExchange, 'quoteSwapExactAmountIn', never>;
1977
- /**
1978
- * Defines a call to the `quoteSwapExactAmountIn` function.
1979
- *
1980
- * @param args - Arguments.
1981
- * @returns The call.
1982
- */
1983
- function call(args: Args): {
1984
- abi: [{
1985
- readonly name: "quoteSwapExactAmountIn";
1986
- readonly type: "function";
1987
- readonly stateMutability: "view";
1988
- readonly inputs: readonly [{
1989
- readonly type: "address";
1990
- readonly name: "tokenIn";
1991
- }, {
1992
- readonly type: "address";
1993
- readonly name: "tokenOut";
1994
- }, {
1995
- readonly type: "uint128";
1996
- readonly name: "amountIn";
1997
- }];
1998
- readonly outputs: readonly [{
1999
- readonly type: "uint128";
2000
- readonly name: "amountOut";
2001
- }];
2002
- }];
2003
- functionName: "quoteSwapExactAmountIn";
2004
- args?: readonly [`0x${string}`, `0x${string}`, bigint] | undefined;
2005
- } & {
2006
- args: readonly [`0x${string}`, `0x${string}`, bigint];
2007
- } & {
2008
- address: Address;
2009
- } & {
2010
- data: import("viem").Hex;
2011
- to: Address;
2012
- };
2013
- }
2014
- /**
2015
- * Places a limit order on the orderbook.
2016
- *
2017
- * @example
2018
- * ```ts
2019
- * import { createClient, http, parseUnits } from 'viem'
2020
- * import { privateKeyToAccount } from 'viem/accounts'
2021
- * import { tempo } from 'tempo.ts/chains'
2022
- * import { Actions, Tick } from 'tempo.ts/viem'
2023
- *
2024
- * const client = createClient({
2025
- * account: privateKeyToAccount('0x...'),
2026
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
2027
- * transport: http(),
2028
- * })
2029
- *
2030
- * const hash = await Actions.dex.place(client, {
2031
- * amount: parseUnits('100', 6),
2032
- * tick: Tick.fromPrice('0.99'),
2033
- * token: '0x20c...11',
2034
- * type: 'buy',
2035
- * })
2036
- * ```
2037
- *
2038
- * @param client - Client.
2039
- * @param parameters - Parameters.
2040
- * @returns The transaction hash.
2041
- */
2042
- export declare function place<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: place.Parameters<chain, account>): Promise<place.ReturnValue>;
2043
- export declare namespace place {
2044
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
2045
- type Args = {
2046
- /** Amount of tokens to place in the order. */
2047
- amount: bigint;
2048
- /** Price tick for the order. */
2049
- tick: number;
2050
- /** Address of the base token. */
2051
- token: Address;
2052
- /** Order type - 'buy' to buy the token, 'sell' to sell it. */
2053
- type: OrderType;
2054
- };
2055
- type ReturnValue = WriteContractReturnType;
2056
- type ErrorType = BaseErrorType;
2057
- /** @internal */
2058
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: place.Parameters<chain, account>): Promise<ReturnType<action>>;
2059
- /**
2060
- * Defines a call to the `place` function.
2061
- *
2062
- * Can be passed as a parameter to:
2063
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
2064
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
2065
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
2066
- *
2067
- * @example
2068
- * ```ts
2069
- * import { createClient, http, parseUnits, walletActions } from 'viem'
2070
- * import { tempo } from 'tempo.ts/chains'
2071
- * import { Actions, Tick } from 'tempo.ts/viem'
2072
- *
2073
- * const client = createClient({
2074
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
2075
- * transport: http(),
2076
- * }).extend(walletActions)
2077
- *
2078
- * const { result } = await client.sendCalls({
2079
- * calls: [
2080
- * Actions.dex.place.call({
2081
- * amount: parseUnits('100', 6),
2082
- * tick: Tick.fromPrice('0.99'),
2083
- * token: '0x20c0...beef',
2084
- * type: 'buy',
2085
- * }),
2086
- * ]
2087
- * })
2088
- * ```
2089
- *
2090
- * @param args - Arguments.
2091
- * @returns The call.
2092
- */
2093
- function call(args: Args): {
2094
- abi: [{
2095
- readonly name: "place";
2096
- readonly type: "function";
2097
- readonly stateMutability: "nonpayable";
2098
- readonly inputs: readonly [{
2099
- readonly type: "address";
2100
- readonly name: "token";
2101
- }, {
2102
- readonly type: "uint128";
2103
- readonly name: "amount";
2104
- }, {
2105
- readonly type: "bool";
2106
- readonly name: "isBid";
2107
- }, {
2108
- readonly type: "int16";
2109
- readonly name: "tick";
2110
- }];
2111
- readonly outputs: readonly [{
2112
- readonly type: "uint128";
2113
- readonly name: "orderId";
2114
- }];
2115
- }];
2116
- functionName: "place";
2117
- args?: readonly [`0x${string}`, bigint, boolean, number] | readonly [`0x${string}`, bigint, import("viem").Widen<boolean>, number] | undefined;
2118
- } & {
2119
- args: readonly [`0x${string}`, bigint, import("viem").Widen<boolean>, number];
2120
- } & {
2121
- address: Address;
2122
- } & {
2123
- data: import("viem").Hex;
2124
- to: Address;
2125
- };
2126
- /**
2127
- * Extracts the `OrderPlaced` event from logs.
2128
- *
2129
- * @param logs - The logs.
2130
- * @returns The `OrderPlaced` event.
2131
- */
2132
- function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{
2133
- readonly name: "createPair";
2134
- readonly type: "function";
2135
- readonly stateMutability: "nonpayable";
2136
- readonly inputs: readonly [{
2137
- readonly type: "address";
2138
- readonly name: "base";
2139
- }];
2140
- readonly outputs: readonly [{
2141
- readonly type: "bytes32";
2142
- readonly name: "key";
2143
- }];
2144
- }, {
2145
- readonly name: "place";
2146
- readonly type: "function";
2147
- readonly stateMutability: "nonpayable";
2148
- readonly inputs: readonly [{
2149
- readonly type: "address";
2150
- readonly name: "token";
2151
- }, {
2152
- readonly type: "uint128";
2153
- readonly name: "amount";
2154
- }, {
2155
- readonly type: "bool";
2156
- readonly name: "isBid";
2157
- }, {
2158
- readonly type: "int16";
2159
- readonly name: "tick";
2160
- }];
2161
- readonly outputs: readonly [{
2162
- readonly type: "uint128";
2163
- readonly name: "orderId";
2164
- }];
2165
- }, {
2166
- readonly name: "placeFlip";
2167
- readonly type: "function";
2168
- readonly stateMutability: "nonpayable";
2169
- readonly inputs: readonly [{
2170
- readonly type: "address";
2171
- readonly name: "token";
2172
- }, {
2173
- readonly type: "uint128";
2174
- readonly name: "amount";
2175
- }, {
2176
- readonly type: "bool";
2177
- readonly name: "isBid";
2178
- }, {
2179
- readonly type: "int16";
2180
- readonly name: "tick";
2181
- }, {
2182
- readonly type: "int16";
2183
- readonly name: "flipTick";
2184
- }];
2185
- readonly outputs: readonly [{
2186
- readonly type: "uint128";
2187
- readonly name: "orderId";
2188
- }];
2189
- }, {
2190
- readonly name: "cancel";
2191
- readonly type: "function";
2192
- readonly stateMutability: "nonpayable";
2193
- readonly inputs: readonly [{
2194
- readonly type: "uint128";
2195
- readonly name: "orderId";
2196
- }];
2197
- readonly outputs: readonly [];
2198
- }, {
2199
- readonly name: "executeBlock";
2200
- readonly type: "function";
2201
- readonly stateMutability: "nonpayable";
2202
- readonly inputs: readonly [];
2203
- readonly outputs: readonly [];
2204
- }, {
2205
- readonly name: "swapExactAmountIn";
2206
- readonly type: "function";
2207
- readonly stateMutability: "nonpayable";
2208
- readonly inputs: readonly [{
2209
- readonly type: "address";
2210
- readonly name: "tokenIn";
2211
- }, {
2212
- readonly type: "address";
2213
- readonly name: "tokenOut";
2214
- }, {
2215
- readonly type: "uint128";
2216
- readonly name: "amountIn";
2217
- }, {
2218
- readonly type: "uint128";
2219
- readonly name: "minAmountOut";
2220
- }];
2221
- readonly outputs: readonly [{
2222
- readonly type: "uint128";
2223
- readonly name: "amountOut";
2224
- }];
2225
- }, {
2226
- readonly name: "swapExactAmountOut";
2227
- readonly type: "function";
2228
- readonly stateMutability: "nonpayable";
2229
- readonly inputs: readonly [{
2230
- readonly type: "address";
2231
- readonly name: "tokenIn";
2232
- }, {
2233
- readonly type: "address";
2234
- readonly name: "tokenOut";
2235
- }, {
2236
- readonly type: "uint128";
2237
- readonly name: "amountOut";
2238
- }, {
2239
- readonly type: "uint128";
2240
- readonly name: "maxAmountIn";
2241
- }];
2242
- readonly outputs: readonly [{
2243
- readonly type: "uint128";
2244
- readonly name: "amountIn";
2245
- }];
2246
- }, {
2247
- readonly name: "quoteSwapExactAmountIn";
2248
- readonly type: "function";
2249
- readonly stateMutability: "view";
2250
- readonly inputs: readonly [{
2251
- readonly type: "address";
2252
- readonly name: "tokenIn";
2253
- }, {
2254
- readonly type: "address";
2255
- readonly name: "tokenOut";
2256
- }, {
2257
- readonly type: "uint128";
2258
- readonly name: "amountIn";
2259
- }];
2260
- readonly outputs: readonly [{
2261
- readonly type: "uint128";
2262
- readonly name: "amountOut";
2263
- }];
2264
- }, {
2265
- readonly name: "quoteSwapExactAmountOut";
2266
- readonly type: "function";
2267
- readonly stateMutability: "view";
2268
- readonly inputs: readonly [{
2269
- readonly type: "address";
2270
- readonly name: "tokenIn";
2271
- }, {
2272
- readonly type: "address";
2273
- readonly name: "tokenOut";
2274
- }, {
2275
- readonly type: "uint128";
2276
- readonly name: "amountOut";
2277
- }];
2278
- readonly outputs: readonly [{
2279
- readonly type: "uint128";
2280
- readonly name: "amountIn";
2281
- }];
2282
- }, {
2283
- readonly name: "balanceOf";
2284
- readonly type: "function";
2285
- readonly stateMutability: "view";
2286
- readonly inputs: readonly [{
2287
- readonly type: "address";
2288
- readonly name: "user";
2289
- }, {
2290
- readonly type: "address";
2291
- readonly name: "token";
2292
- }];
2293
- readonly outputs: readonly [{
2294
- readonly type: "uint128";
2295
- }];
2296
- }, {
2297
- readonly name: "withdraw";
2298
- readonly type: "function";
2299
- readonly stateMutability: "nonpayable";
2300
- readonly inputs: readonly [{
2301
- readonly type: "address";
2302
- readonly name: "token";
2303
- }, {
2304
- readonly type: "uint128";
2305
- readonly name: "amount";
2306
- }];
2307
- readonly outputs: readonly [];
2308
- }, {
2309
- readonly name: "getOrder";
2310
- readonly type: "function";
2311
- readonly stateMutability: "view";
2312
- readonly inputs: readonly [{
2313
- readonly type: "uint128";
2314
- readonly name: "orderId";
2315
- }];
2316
- readonly outputs: readonly [{
2317
- readonly type: "tuple";
2318
- readonly components: readonly [{
2319
- readonly type: "uint128";
2320
- readonly name: "orderId";
2321
- }, {
2322
- readonly type: "address";
2323
- readonly name: "maker";
2324
- }, {
2325
- readonly type: "bytes32";
2326
- readonly name: "bookKey";
2327
- }, {
2328
- readonly type: "bool";
2329
- readonly name: "isBid";
2330
- }, {
2331
- readonly type: "int16";
2332
- readonly name: "tick";
2333
- }, {
2334
- readonly type: "uint128";
2335
- readonly name: "amount";
2336
- }, {
2337
- readonly type: "uint128";
2338
- readonly name: "remaining";
2339
- }, {
2340
- readonly type: "uint128";
2341
- readonly name: "prev";
2342
- }, {
2343
- readonly type: "uint128";
2344
- readonly name: "next";
2345
- }, {
2346
- readonly type: "bool";
2347
- readonly name: "isFlip";
2348
- }, {
2349
- readonly type: "int16";
2350
- readonly name: "flipTick";
2351
- }];
2352
- }];
2353
- }, {
2354
- readonly name: "getTickLevel";
2355
- readonly type: "function";
2356
- readonly stateMutability: "view";
2357
- readonly inputs: readonly [{
2358
- readonly type: "address";
2359
- readonly name: "base";
2360
- }, {
2361
- readonly type: "int16";
2362
- readonly name: "tick";
2363
- }, {
2364
- readonly type: "bool";
2365
- readonly name: "isBid";
2366
- }];
2367
- readonly outputs: readonly [{
2368
- readonly type: "uint128";
2369
- readonly name: "head";
2370
- }, {
2371
- readonly type: "uint128";
2372
- readonly name: "tail";
2373
- }, {
2374
- readonly type: "uint128";
2375
- readonly name: "totalLiquidity";
2376
- }];
2377
- }, {
2378
- readonly name: "pairKey";
2379
- readonly type: "function";
2380
- readonly stateMutability: "pure";
2381
- readonly inputs: readonly [{
2382
- readonly type: "address";
2383
- readonly name: "tokenA";
2384
- }, {
2385
- readonly type: "address";
2386
- readonly name: "tokenB";
2387
- }];
2388
- readonly outputs: readonly [{
2389
- readonly type: "bytes32";
2390
- }];
2391
- }, {
2392
- readonly name: "activeOrderId";
2393
- readonly type: "function";
2394
- readonly stateMutability: "view";
2395
- readonly inputs: readonly [];
2396
- readonly outputs: readonly [{
2397
- readonly type: "uint128";
2398
- }];
2399
- }, {
2400
- readonly name: "pendingOrderId";
2401
- readonly type: "function";
2402
- readonly stateMutability: "view";
2403
- readonly inputs: readonly [];
2404
- readonly outputs: readonly [{
2405
- readonly type: "uint128";
2406
- }];
2407
- }, {
2408
- readonly name: "books";
2409
- readonly type: "function";
2410
- readonly stateMutability: "view";
2411
- readonly inputs: readonly [{
2412
- readonly type: "bytes32";
2413
- readonly name: "pairKey";
2414
- }];
2415
- readonly outputs: readonly [{
2416
- readonly type: "tuple";
2417
- readonly components: readonly [{
2418
- readonly type: "address";
2419
- readonly name: "base";
2420
- }, {
2421
- readonly type: "address";
2422
- readonly name: "quote";
2423
- }, {
2424
- readonly type: "int16";
2425
- readonly name: "bestBidTick";
2426
- }, {
2427
- readonly type: "int16";
2428
- readonly name: "bestAskTick";
2429
- }];
2430
- }];
2431
- }, {
2432
- readonly name: "MIN_TICK";
2433
- readonly type: "function";
2434
- readonly stateMutability: "pure";
2435
- readonly inputs: readonly [];
2436
- readonly outputs: readonly [{
2437
- readonly type: "int16";
2438
- }];
2439
- }, {
2440
- readonly name: "MAX_TICK";
2441
- readonly type: "function";
2442
- readonly stateMutability: "pure";
2443
- readonly inputs: readonly [];
2444
- readonly outputs: readonly [{
2445
- readonly type: "int16";
2446
- }];
2447
- }, {
2448
- readonly name: "TICK_SPACING";
2449
- readonly type: "function";
2450
- readonly stateMutability: "pure";
2451
- readonly inputs: readonly [];
2452
- readonly outputs: readonly [{
2453
- readonly type: "int16";
2454
- }];
2455
- }, {
2456
- readonly name: "PRICE_SCALE";
2457
- readonly type: "function";
2458
- readonly stateMutability: "pure";
2459
- readonly inputs: readonly [];
2460
- readonly outputs: readonly [{
2461
- readonly type: "uint32";
2462
- }];
2463
- }, {
2464
- readonly name: "MIN_PRICE";
2465
- readonly type: "function";
2466
- readonly stateMutability: "pure";
2467
- readonly inputs: readonly [];
2468
- readonly outputs: readonly [{
2469
- readonly type: "uint32";
2470
- }];
2471
- }, {
2472
- readonly name: "MAX_PRICE";
2473
- readonly type: "function";
2474
- readonly stateMutability: "pure";
2475
- readonly inputs: readonly [];
2476
- readonly outputs: readonly [{
2477
- readonly type: "uint32";
2478
- }];
2479
- }, {
2480
- readonly name: "tickToPrice";
2481
- readonly type: "function";
2482
- readonly stateMutability: "pure";
2483
- readonly inputs: readonly [{
2484
- readonly type: "int16";
2485
- readonly name: "tick";
2486
- }];
2487
- readonly outputs: readonly [{
2488
- readonly type: "uint32";
2489
- readonly name: "price";
2490
- }];
2491
- }, {
2492
- readonly name: "priceToTick";
2493
- readonly type: "function";
2494
- readonly stateMutability: "pure";
2495
- readonly inputs: readonly [{
2496
- readonly type: "uint32";
2497
- readonly name: "price";
2498
- }];
2499
- readonly outputs: readonly [{
2500
- readonly type: "int16";
2501
- readonly name: "tick";
2502
- }];
2503
- }, {
2504
- readonly name: "PairCreated";
2505
- readonly type: "event";
2506
- readonly inputs: readonly [{
2507
- readonly type: "bytes32";
2508
- readonly name: "key";
2509
- readonly indexed: true;
2510
- }, {
2511
- readonly type: "address";
2512
- readonly name: "base";
2513
- readonly indexed: true;
2514
- }, {
2515
- readonly type: "address";
2516
- readonly name: "quote";
2517
- readonly indexed: true;
2518
- }];
2519
- }, {
2520
- readonly name: "OrderPlaced";
2521
- readonly type: "event";
2522
- readonly inputs: readonly [{
2523
- readonly type: "uint128";
2524
- readonly name: "orderId";
2525
- readonly indexed: true;
2526
- }, {
2527
- readonly type: "address";
2528
- readonly name: "maker";
2529
- readonly indexed: true;
2530
- }, {
2531
- readonly type: "address";
2532
- readonly name: "token";
2533
- readonly indexed: true;
2534
- }, {
2535
- readonly type: "uint128";
2536
- readonly name: "amount";
2537
- }, {
2538
- readonly type: "bool";
2539
- readonly name: "isBid";
2540
- }, {
2541
- readonly type: "int16";
2542
- readonly name: "tick";
2543
- }];
2544
- }, {
2545
- readonly name: "FlipOrderPlaced";
2546
- readonly type: "event";
2547
- readonly inputs: readonly [{
2548
- readonly type: "uint128";
2549
- readonly name: "orderId";
2550
- readonly indexed: true;
2551
- }, {
2552
- readonly type: "address";
2553
- readonly name: "maker";
2554
- readonly indexed: true;
2555
- }, {
2556
- readonly type: "address";
2557
- readonly name: "token";
2558
- readonly indexed: true;
2559
- }, {
2560
- readonly type: "uint128";
2561
- readonly name: "amount";
2562
- }, {
2563
- readonly type: "bool";
2564
- readonly name: "isBid";
2565
- }, {
2566
- readonly type: "int16";
2567
- readonly name: "tick";
2568
- }, {
2569
- readonly type: "int16";
2570
- readonly name: "flipTick";
2571
- }];
2572
- }, {
2573
- readonly name: "OrderFilled";
2574
- readonly type: "event";
2575
- readonly inputs: readonly [{
2576
- readonly type: "uint128";
2577
- readonly name: "orderId";
2578
- readonly indexed: true;
2579
- }, {
2580
- readonly type: "address";
2581
- readonly name: "maker";
2582
- readonly indexed: true;
2583
- }, {
2584
- readonly type: "uint128";
2585
- readonly name: "amountFilled";
2586
- }, {
2587
- readonly type: "bool";
2588
- readonly name: "partialFill";
2589
- }];
2590
- }, {
2591
- readonly name: "OrderFilled";
2592
- readonly type: "event";
2593
- readonly inputs: readonly [{
2594
- readonly type: "uint128";
2595
- readonly name: "orderId";
2596
- readonly indexed: true;
2597
- }, {
2598
- readonly type: "address";
2599
- readonly name: "maker";
2600
- readonly indexed: true;
2601
- }, {
2602
- readonly type: "address";
2603
- readonly name: "taker";
2604
- readonly indexed: true;
2605
- }, {
2606
- readonly type: "uint128";
2607
- readonly name: "amountFilled";
2608
- }, {
2609
- readonly type: "bool";
2610
- readonly name: "partialFill";
2611
- }];
2612
- }, {
2613
- readonly name: "OrderCancelled";
2614
- readonly type: "event";
2615
- readonly inputs: readonly [{
2616
- readonly type: "uint128";
2617
- readonly name: "orderId";
2618
- readonly indexed: true;
2619
- }];
2620
- }, {
2621
- readonly name: "Unauthorized";
2622
- readonly type: "error";
2623
- readonly inputs: readonly [];
2624
- }, {
2625
- readonly name: "PairDoesNotExist";
2626
- readonly type: "error";
2627
- readonly inputs: readonly [];
2628
- }, {
2629
- readonly name: "PairAlreadyExists";
2630
- readonly type: "error";
2631
- readonly inputs: readonly [];
2632
- }, {
2633
- readonly name: "OrderDoesNotExist";
2634
- readonly type: "error";
2635
- readonly inputs: readonly [];
2636
- }, {
2637
- readonly name: "IdenticalTokens";
2638
- readonly type: "error";
2639
- readonly inputs: readonly [];
2640
- }, {
2641
- readonly name: "InvalidToken";
2642
- readonly type: "error";
2643
- readonly inputs: readonly [];
2644
- }, {
2645
- readonly name: "TickOutOfBounds";
2646
- readonly type: "error";
2647
- readonly inputs: readonly [{
2648
- readonly type: "int16";
2649
- readonly name: "tick";
2650
- }];
2651
- }, {
2652
- readonly name: "InvalidTick";
2653
- readonly type: "error";
2654
- readonly inputs: readonly [];
2655
- }, {
2656
- readonly name: "InvalidFlipTick";
2657
- readonly type: "error";
2658
- readonly inputs: readonly [];
2659
- }, {
2660
- readonly name: "InsufficientBalance";
2661
- readonly type: "error";
2662
- readonly inputs: readonly [];
2663
- }, {
2664
- readonly name: "InsufficientLiquidity";
2665
- readonly type: "error";
2666
- readonly inputs: readonly [];
2667
- }, {
2668
- readonly name: "InsufficientOutput";
2669
- readonly type: "error";
2670
- readonly inputs: readonly [];
2671
- }, {
2672
- readonly name: "MaxInputExceeded";
2673
- readonly type: "error";
2674
- readonly inputs: readonly [];
2675
- }, {
2676
- readonly name: "BelowMinimumOrderSize";
2677
- readonly type: "error";
2678
- readonly inputs: readonly [{
2679
- readonly type: "uint128";
2680
- readonly name: "amount";
2681
- }];
2682
- }, {
2683
- readonly name: "InvalidBaseToken";
2684
- readonly type: "error";
2685
- readonly inputs: readonly [];
2686
- }], "OrderPlaced">;
2687
- }
2688
- /**
2689
- * Places a flip order that automatically flips when filled.
2690
- *
2691
- * @example
2692
- * ```ts
2693
- * import { createClient, http, parseUnits } from 'viem'
2694
- * import { privateKeyToAccount } from 'viem/accounts'
2695
- * import { tempo } from 'tempo.ts/chains'
2696
- * import { Actions, Tick } from 'tempo.ts/viem'
2697
- *
2698
- * const client = createClient({
2699
- * account: privateKeyToAccount('0x...'),
2700
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
2701
- * transport: http(),
2702
- * })
2703
- *
2704
- * const hash = await Actions.dex.placeFlip(client, {
2705
- * amount: parseUnits('100', 6),
2706
- * flipTick: Tick.fromPrice('1.01'),
2707
- * tick: Tick.fromPrice('0.99'),
2708
- * token: '0x20c...11',
2709
- * type: 'buy',
2710
- * })
2711
- * ```
2712
- *
2713
- * @param client - Client.
2714
- * @param parameters - Parameters.
2715
- * @returns The transaction hash.
2716
- */
2717
- export declare function placeFlip<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: placeFlip.Parameters<chain, account>): Promise<placeFlip.ReturnValue>;
2718
- export declare namespace placeFlip {
2719
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
2720
- type Args = {
2721
- /** Amount of tokens to place in the order. */
2722
- amount: bigint;
2723
- /** Target tick to flip to when order is filled. */
2724
- flipTick: number;
2725
- /** Price tick for the order. */
2726
- tick: number;
2727
- /** Address of the base token. */
2728
- token: Address;
2729
- /** Order type - 'buy' to buy the token, 'sell' to sell it. */
2730
- type: OrderType;
2731
- };
2732
- type ReturnValue = WriteContractReturnType;
2733
- type ErrorType = BaseErrorType;
2734
- /** @internal */
2735
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: placeFlip.Parameters<chain, account>): Promise<ReturnType<action>>;
2736
- /**
2737
- * Defines a call to the `placeFlip` function.
2738
- *
2739
- * Can be passed as a parameter to:
2740
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
2741
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
2742
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
2743
- *
2744
- * @example
2745
- * ```ts
2746
- * import { createClient, http, parseUnits, walletActions } from 'viem'
2747
- * import { tempo } from 'tempo.ts/chains'
2748
- * import { Actions, Tick } from 'tempo.ts/viem'
2749
- *
2750
- * const client = createClient({
2751
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
2752
- * transport: http(),
2753
- * }).extend(walletActions)
2754
- *
2755
- * const { result } = await client.sendCalls({
2756
- * calls: [
2757
- * Actions.dex.placeFlip.call({
2758
- * amount: parseUnits('100', 6),
2759
- * flipTick: Tick.fromPrice('1.01'),
2760
- * tick: Tick.fromPrice('0.99'),
2761
- * token: '0x20c0...beef',
2762
- * type: 'buy',
2763
- * }),
2764
- * ]
2765
- * })
2766
- * ```
2767
- *
2768
- * @param args - Arguments.
2769
- * @returns The call.
2770
- */
2771
- function call(args: Args): {
2772
- abi: [{
2773
- readonly name: "placeFlip";
2774
- readonly type: "function";
2775
- readonly stateMutability: "nonpayable";
2776
- readonly inputs: readonly [{
2777
- readonly type: "address";
2778
- readonly name: "token";
2779
- }, {
2780
- readonly type: "uint128";
2781
- readonly name: "amount";
2782
- }, {
2783
- readonly type: "bool";
2784
- readonly name: "isBid";
2785
- }, {
2786
- readonly type: "int16";
2787
- readonly name: "tick";
2788
- }, {
2789
- readonly type: "int16";
2790
- readonly name: "flipTick";
2791
- }];
2792
- readonly outputs: readonly [{
2793
- readonly type: "uint128";
2794
- readonly name: "orderId";
2795
- }];
2796
- }];
2797
- functionName: "placeFlip";
2798
- args?: readonly [`0x${string}`, bigint, boolean, number, number] | readonly [`0x${string}`, bigint, import("viem").Widen<boolean>, number, number] | undefined;
2799
- } & {
2800
- args: readonly [`0x${string}`, bigint, import("viem").Widen<boolean>, number, number];
2801
- } & {
2802
- address: Address;
2803
- } & {
2804
- data: import("viem").Hex;
2805
- to: Address;
2806
- };
2807
- /**
2808
- * Extracts the `FlipOrderPlaced` event from logs.
2809
- *
2810
- * @param logs - The logs.
2811
- * @returns The `FlipOrderPlaced` event.
2812
- */
2813
- function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{
2814
- readonly name: "createPair";
2815
- readonly type: "function";
2816
- readonly stateMutability: "nonpayable";
2817
- readonly inputs: readonly [{
2818
- readonly type: "address";
2819
- readonly name: "base";
2820
- }];
2821
- readonly outputs: readonly [{
2822
- readonly type: "bytes32";
2823
- readonly name: "key";
2824
- }];
2825
- }, {
2826
- readonly name: "place";
2827
- readonly type: "function";
2828
- readonly stateMutability: "nonpayable";
2829
- readonly inputs: readonly [{
2830
- readonly type: "address";
2831
- readonly name: "token";
2832
- }, {
2833
- readonly type: "uint128";
2834
- readonly name: "amount";
2835
- }, {
2836
- readonly type: "bool";
2837
- readonly name: "isBid";
2838
- }, {
2839
- readonly type: "int16";
2840
- readonly name: "tick";
2841
- }];
2842
- readonly outputs: readonly [{
2843
- readonly type: "uint128";
2844
- readonly name: "orderId";
2845
- }];
2846
- }, {
2847
- readonly name: "placeFlip";
2848
- readonly type: "function";
2849
- readonly stateMutability: "nonpayable";
2850
- readonly inputs: readonly [{
2851
- readonly type: "address";
2852
- readonly name: "token";
2853
- }, {
2854
- readonly type: "uint128";
2855
- readonly name: "amount";
2856
- }, {
2857
- readonly type: "bool";
2858
- readonly name: "isBid";
2859
- }, {
2860
- readonly type: "int16";
2861
- readonly name: "tick";
2862
- }, {
2863
- readonly type: "int16";
2864
- readonly name: "flipTick";
2865
- }];
2866
- readonly outputs: readonly [{
2867
- readonly type: "uint128";
2868
- readonly name: "orderId";
2869
- }];
2870
- }, {
2871
- readonly name: "cancel";
2872
- readonly type: "function";
2873
- readonly stateMutability: "nonpayable";
2874
- readonly inputs: readonly [{
2875
- readonly type: "uint128";
2876
- readonly name: "orderId";
2877
- }];
2878
- readonly outputs: readonly [];
2879
- }, {
2880
- readonly name: "executeBlock";
2881
- readonly type: "function";
2882
- readonly stateMutability: "nonpayable";
2883
- readonly inputs: readonly [];
2884
- readonly outputs: readonly [];
2885
- }, {
2886
- readonly name: "swapExactAmountIn";
2887
- readonly type: "function";
2888
- readonly stateMutability: "nonpayable";
2889
- readonly inputs: readonly [{
2890
- readonly type: "address";
2891
- readonly name: "tokenIn";
2892
- }, {
2893
- readonly type: "address";
2894
- readonly name: "tokenOut";
2895
- }, {
2896
- readonly type: "uint128";
2897
- readonly name: "amountIn";
2898
- }, {
2899
- readonly type: "uint128";
2900
- readonly name: "minAmountOut";
2901
- }];
2902
- readonly outputs: readonly [{
2903
- readonly type: "uint128";
2904
- readonly name: "amountOut";
2905
- }];
2906
- }, {
2907
- readonly name: "swapExactAmountOut";
2908
- readonly type: "function";
2909
- readonly stateMutability: "nonpayable";
2910
- readonly inputs: readonly [{
2911
- readonly type: "address";
2912
- readonly name: "tokenIn";
2913
- }, {
2914
- readonly type: "address";
2915
- readonly name: "tokenOut";
2916
- }, {
2917
- readonly type: "uint128";
2918
- readonly name: "amountOut";
2919
- }, {
2920
- readonly type: "uint128";
2921
- readonly name: "maxAmountIn";
2922
- }];
2923
- readonly outputs: readonly [{
2924
- readonly type: "uint128";
2925
- readonly name: "amountIn";
2926
- }];
2927
- }, {
2928
- readonly name: "quoteSwapExactAmountIn";
2929
- readonly type: "function";
2930
- readonly stateMutability: "view";
2931
- readonly inputs: readonly [{
2932
- readonly type: "address";
2933
- readonly name: "tokenIn";
2934
- }, {
2935
- readonly type: "address";
2936
- readonly name: "tokenOut";
2937
- }, {
2938
- readonly type: "uint128";
2939
- readonly name: "amountIn";
2940
- }];
2941
- readonly outputs: readonly [{
2942
- readonly type: "uint128";
2943
- readonly name: "amountOut";
2944
- }];
2945
- }, {
2946
- readonly name: "quoteSwapExactAmountOut";
2947
- readonly type: "function";
2948
- readonly stateMutability: "view";
2949
- readonly inputs: readonly [{
2950
- readonly type: "address";
2951
- readonly name: "tokenIn";
2952
- }, {
2953
- readonly type: "address";
2954
- readonly name: "tokenOut";
2955
- }, {
2956
- readonly type: "uint128";
2957
- readonly name: "amountOut";
2958
- }];
2959
- readonly outputs: readonly [{
2960
- readonly type: "uint128";
2961
- readonly name: "amountIn";
2962
- }];
2963
- }, {
2964
- readonly name: "balanceOf";
2965
- readonly type: "function";
2966
- readonly stateMutability: "view";
2967
- readonly inputs: readonly [{
2968
- readonly type: "address";
2969
- readonly name: "user";
2970
- }, {
2971
- readonly type: "address";
2972
- readonly name: "token";
2973
- }];
2974
- readonly outputs: readonly [{
2975
- readonly type: "uint128";
2976
- }];
2977
- }, {
2978
- readonly name: "withdraw";
2979
- readonly type: "function";
2980
- readonly stateMutability: "nonpayable";
2981
- readonly inputs: readonly [{
2982
- readonly type: "address";
2983
- readonly name: "token";
2984
- }, {
2985
- readonly type: "uint128";
2986
- readonly name: "amount";
2987
- }];
2988
- readonly outputs: readonly [];
2989
- }, {
2990
- readonly name: "getOrder";
2991
- readonly type: "function";
2992
- readonly stateMutability: "view";
2993
- readonly inputs: readonly [{
2994
- readonly type: "uint128";
2995
- readonly name: "orderId";
2996
- }];
2997
- readonly outputs: readonly [{
2998
- readonly type: "tuple";
2999
- readonly components: readonly [{
3000
- readonly type: "uint128";
3001
- readonly name: "orderId";
3002
- }, {
3003
- readonly type: "address";
3004
- readonly name: "maker";
3005
- }, {
3006
- readonly type: "bytes32";
3007
- readonly name: "bookKey";
3008
- }, {
3009
- readonly type: "bool";
3010
- readonly name: "isBid";
3011
- }, {
3012
- readonly type: "int16";
3013
- readonly name: "tick";
3014
- }, {
3015
- readonly type: "uint128";
3016
- readonly name: "amount";
3017
- }, {
3018
- readonly type: "uint128";
3019
- readonly name: "remaining";
3020
- }, {
3021
- readonly type: "uint128";
3022
- readonly name: "prev";
3023
- }, {
3024
- readonly type: "uint128";
3025
- readonly name: "next";
3026
- }, {
3027
- readonly type: "bool";
3028
- readonly name: "isFlip";
3029
- }, {
3030
- readonly type: "int16";
3031
- readonly name: "flipTick";
3032
- }];
3033
- }];
3034
- }, {
3035
- readonly name: "getTickLevel";
3036
- readonly type: "function";
3037
- readonly stateMutability: "view";
3038
- readonly inputs: readonly [{
3039
- readonly type: "address";
3040
- readonly name: "base";
3041
- }, {
3042
- readonly type: "int16";
3043
- readonly name: "tick";
3044
- }, {
3045
- readonly type: "bool";
3046
- readonly name: "isBid";
3047
- }];
3048
- readonly outputs: readonly [{
3049
- readonly type: "uint128";
3050
- readonly name: "head";
3051
- }, {
3052
- readonly type: "uint128";
3053
- readonly name: "tail";
3054
- }, {
3055
- readonly type: "uint128";
3056
- readonly name: "totalLiquidity";
3057
- }];
3058
- }, {
3059
- readonly name: "pairKey";
3060
- readonly type: "function";
3061
- readonly stateMutability: "pure";
3062
- readonly inputs: readonly [{
3063
- readonly type: "address";
3064
- readonly name: "tokenA";
3065
- }, {
3066
- readonly type: "address";
3067
- readonly name: "tokenB";
3068
- }];
3069
- readonly outputs: readonly [{
3070
- readonly type: "bytes32";
3071
- }];
3072
- }, {
3073
- readonly name: "activeOrderId";
3074
- readonly type: "function";
3075
- readonly stateMutability: "view";
3076
- readonly inputs: readonly [];
3077
- readonly outputs: readonly [{
3078
- readonly type: "uint128";
3079
- }];
3080
- }, {
3081
- readonly name: "pendingOrderId";
3082
- readonly type: "function";
3083
- readonly stateMutability: "view";
3084
- readonly inputs: readonly [];
3085
- readonly outputs: readonly [{
3086
- readonly type: "uint128";
3087
- }];
3088
- }, {
3089
- readonly name: "books";
3090
- readonly type: "function";
3091
- readonly stateMutability: "view";
3092
- readonly inputs: readonly [{
3093
- readonly type: "bytes32";
3094
- readonly name: "pairKey";
3095
- }];
3096
- readonly outputs: readonly [{
3097
- readonly type: "tuple";
3098
- readonly components: readonly [{
3099
- readonly type: "address";
3100
- readonly name: "base";
3101
- }, {
3102
- readonly type: "address";
3103
- readonly name: "quote";
3104
- }, {
3105
- readonly type: "int16";
3106
- readonly name: "bestBidTick";
3107
- }, {
3108
- readonly type: "int16";
3109
- readonly name: "bestAskTick";
3110
- }];
3111
- }];
3112
- }, {
3113
- readonly name: "MIN_TICK";
3114
- readonly type: "function";
3115
- readonly stateMutability: "pure";
3116
- readonly inputs: readonly [];
3117
- readonly outputs: readonly [{
3118
- readonly type: "int16";
3119
- }];
3120
- }, {
3121
- readonly name: "MAX_TICK";
3122
- readonly type: "function";
3123
- readonly stateMutability: "pure";
3124
- readonly inputs: readonly [];
3125
- readonly outputs: readonly [{
3126
- readonly type: "int16";
3127
- }];
3128
- }, {
3129
- readonly name: "TICK_SPACING";
3130
- readonly type: "function";
3131
- readonly stateMutability: "pure";
3132
- readonly inputs: readonly [];
3133
- readonly outputs: readonly [{
3134
- readonly type: "int16";
3135
- }];
3136
- }, {
3137
- readonly name: "PRICE_SCALE";
3138
- readonly type: "function";
3139
- readonly stateMutability: "pure";
3140
- readonly inputs: readonly [];
3141
- readonly outputs: readonly [{
3142
- readonly type: "uint32";
3143
- }];
3144
- }, {
3145
- readonly name: "MIN_PRICE";
3146
- readonly type: "function";
3147
- readonly stateMutability: "pure";
3148
- readonly inputs: readonly [];
3149
- readonly outputs: readonly [{
3150
- readonly type: "uint32";
3151
- }];
3152
- }, {
3153
- readonly name: "MAX_PRICE";
3154
- readonly type: "function";
3155
- readonly stateMutability: "pure";
3156
- readonly inputs: readonly [];
3157
- readonly outputs: readonly [{
3158
- readonly type: "uint32";
3159
- }];
3160
- }, {
3161
- readonly name: "tickToPrice";
3162
- readonly type: "function";
3163
- readonly stateMutability: "pure";
3164
- readonly inputs: readonly [{
3165
- readonly type: "int16";
3166
- readonly name: "tick";
3167
- }];
3168
- readonly outputs: readonly [{
3169
- readonly type: "uint32";
3170
- readonly name: "price";
3171
- }];
3172
- }, {
3173
- readonly name: "priceToTick";
3174
- readonly type: "function";
3175
- readonly stateMutability: "pure";
3176
- readonly inputs: readonly [{
3177
- readonly type: "uint32";
3178
- readonly name: "price";
3179
- }];
3180
- readonly outputs: readonly [{
3181
- readonly type: "int16";
3182
- readonly name: "tick";
3183
- }];
3184
- }, {
3185
- readonly name: "PairCreated";
3186
- readonly type: "event";
3187
- readonly inputs: readonly [{
3188
- readonly type: "bytes32";
3189
- readonly name: "key";
3190
- readonly indexed: true;
3191
- }, {
3192
- readonly type: "address";
3193
- readonly name: "base";
3194
- readonly indexed: true;
3195
- }, {
3196
- readonly type: "address";
3197
- readonly name: "quote";
3198
- readonly indexed: true;
3199
- }];
3200
- }, {
3201
- readonly name: "OrderPlaced";
3202
- readonly type: "event";
3203
- readonly inputs: readonly [{
3204
- readonly type: "uint128";
3205
- readonly name: "orderId";
3206
- readonly indexed: true;
3207
- }, {
3208
- readonly type: "address";
3209
- readonly name: "maker";
3210
- readonly indexed: true;
3211
- }, {
3212
- readonly type: "address";
3213
- readonly name: "token";
3214
- readonly indexed: true;
3215
- }, {
3216
- readonly type: "uint128";
3217
- readonly name: "amount";
3218
- }, {
3219
- readonly type: "bool";
3220
- readonly name: "isBid";
3221
- }, {
3222
- readonly type: "int16";
3223
- readonly name: "tick";
3224
- }];
3225
- }, {
3226
- readonly name: "FlipOrderPlaced";
3227
- readonly type: "event";
3228
- readonly inputs: readonly [{
3229
- readonly type: "uint128";
3230
- readonly name: "orderId";
3231
- readonly indexed: true;
3232
- }, {
3233
- readonly type: "address";
3234
- readonly name: "maker";
3235
- readonly indexed: true;
3236
- }, {
3237
- readonly type: "address";
3238
- readonly name: "token";
3239
- readonly indexed: true;
3240
- }, {
3241
- readonly type: "uint128";
3242
- readonly name: "amount";
3243
- }, {
3244
- readonly type: "bool";
3245
- readonly name: "isBid";
3246
- }, {
3247
- readonly type: "int16";
3248
- readonly name: "tick";
3249
- }, {
3250
- readonly type: "int16";
3251
- readonly name: "flipTick";
3252
- }];
3253
- }, {
3254
- readonly name: "OrderFilled";
3255
- readonly type: "event";
3256
- readonly inputs: readonly [{
3257
- readonly type: "uint128";
3258
- readonly name: "orderId";
3259
- readonly indexed: true;
3260
- }, {
3261
- readonly type: "address";
3262
- readonly name: "maker";
3263
- readonly indexed: true;
3264
- }, {
3265
- readonly type: "uint128";
3266
- readonly name: "amountFilled";
3267
- }, {
3268
- readonly type: "bool";
3269
- readonly name: "partialFill";
3270
- }];
3271
- }, {
3272
- readonly name: "OrderFilled";
3273
- readonly type: "event";
3274
- readonly inputs: readonly [{
3275
- readonly type: "uint128";
3276
- readonly name: "orderId";
3277
- readonly indexed: true;
3278
- }, {
3279
- readonly type: "address";
3280
- readonly name: "maker";
3281
- readonly indexed: true;
3282
- }, {
3283
- readonly type: "address";
3284
- readonly name: "taker";
3285
- readonly indexed: true;
3286
- }, {
3287
- readonly type: "uint128";
3288
- readonly name: "amountFilled";
3289
- }, {
3290
- readonly type: "bool";
3291
- readonly name: "partialFill";
3292
- }];
3293
- }, {
3294
- readonly name: "OrderCancelled";
3295
- readonly type: "event";
3296
- readonly inputs: readonly [{
3297
- readonly type: "uint128";
3298
- readonly name: "orderId";
3299
- readonly indexed: true;
3300
- }];
3301
- }, {
3302
- readonly name: "Unauthorized";
3303
- readonly type: "error";
3304
- readonly inputs: readonly [];
3305
- }, {
3306
- readonly name: "PairDoesNotExist";
3307
- readonly type: "error";
3308
- readonly inputs: readonly [];
3309
- }, {
3310
- readonly name: "PairAlreadyExists";
3311
- readonly type: "error";
3312
- readonly inputs: readonly [];
3313
- }, {
3314
- readonly name: "OrderDoesNotExist";
3315
- readonly type: "error";
3316
- readonly inputs: readonly [];
3317
- }, {
3318
- readonly name: "IdenticalTokens";
3319
- readonly type: "error";
3320
- readonly inputs: readonly [];
3321
- }, {
3322
- readonly name: "InvalidToken";
3323
- readonly type: "error";
3324
- readonly inputs: readonly [];
3325
- }, {
3326
- readonly name: "TickOutOfBounds";
3327
- readonly type: "error";
3328
- readonly inputs: readonly [{
3329
- readonly type: "int16";
3330
- readonly name: "tick";
3331
- }];
3332
- }, {
3333
- readonly name: "InvalidTick";
3334
- readonly type: "error";
3335
- readonly inputs: readonly [];
3336
- }, {
3337
- readonly name: "InvalidFlipTick";
3338
- readonly type: "error";
3339
- readonly inputs: readonly [];
3340
- }, {
3341
- readonly name: "InsufficientBalance";
3342
- readonly type: "error";
3343
- readonly inputs: readonly [];
3344
- }, {
3345
- readonly name: "InsufficientLiquidity";
3346
- readonly type: "error";
3347
- readonly inputs: readonly [];
3348
- }, {
3349
- readonly name: "InsufficientOutput";
3350
- readonly type: "error";
3351
- readonly inputs: readonly [];
3352
- }, {
3353
- readonly name: "MaxInputExceeded";
3354
- readonly type: "error";
3355
- readonly inputs: readonly [];
3356
- }, {
3357
- readonly name: "BelowMinimumOrderSize";
3358
- readonly type: "error";
3359
- readonly inputs: readonly [{
3360
- readonly type: "uint128";
3361
- readonly name: "amount";
3362
- }];
3363
- }, {
3364
- readonly name: "InvalidBaseToken";
3365
- readonly type: "error";
3366
- readonly inputs: readonly [];
3367
- }], "FlipOrderPlaced">;
3368
- }
3369
- /**
3370
- * Places a flip order that automatically flips when filled.
3371
- *
3372
- * @example
3373
- * ```ts
3374
- * import { createClient, http, parseUnits } from 'viem'
3375
- * import { privateKeyToAccount } from 'viem/accounts'
3376
- * import { tempo } from 'tempo.ts/chains'
3377
- * import { Actions, Tick } from 'tempo.ts/viem'
3378
- *
3379
- * const client = createClient({
3380
- * account: privateKeyToAccount('0x...'),
3381
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3382
- * transport: http(),
3383
- * })
3384
- *
3385
- * const result = await Actions.dex.placeFlipSync(client, {
3386
- * amount: parseUnits('100', 6),
3387
- * flipTick: Tick.fromPrice('1.01'),
3388
- * tick: Tick.fromPrice('0.99'),
3389
- * token: '0x20c...11',
3390
- * type: 'buy',
3391
- * })
3392
- * ```
3393
- *
3394
- * @param client - Client.
3395
- * @param parameters - Parameters.
3396
- * @returns The transaction receipt and event data.
3397
- */
3398
- export declare function placeFlipSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: placeFlipSync.Parameters<chain, account>): Promise<placeFlipSync.ReturnValue>;
3399
- export declare namespace placeFlipSync {
3400
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = placeFlip.Parameters<chain, account>;
3401
- type Args = placeFlip.Args;
3402
- type ReturnValue = Compute<GetEventArgs<typeof Abis.stablecoinExchange, 'FlipOrderPlaced', {
3403
- IndexedOnly: false;
3404
- Required: true;
3405
- }> & {
3406
- /** Transaction receipt. */
3407
- receipt: TransactionReceipt;
3408
- }>;
3409
- type ErrorType = BaseErrorType;
3410
- }
3411
- /**
3412
- * Places a limit order on the orderbook.
3413
- *
3414
- * @example
3415
- * ```ts
3416
- * import { createClient, http, parseUnits } from 'viem'
3417
- * import { privateKeyToAccount } from 'viem/accounts'
3418
- * import { tempo } from 'tempo.ts/chains'
3419
- * import { Actions, Tick } from 'tempo.ts/viem'
3420
- *
3421
- * const client = createClient({
3422
- * account: privateKeyToAccount('0x...'),
3423
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3424
- * transport: http(),
3425
- * })
3426
- *
3427
- * const result = await Actions.dex.placeSync(client, {
3428
- * amount: parseUnits('100', 6),
3429
- * tick: Tick.fromPrice('0.99'),
3430
- * token: '0x20c...11',
3431
- * type: 'buy',
3432
- * })
3433
- * ```
3434
- *
3435
- * @param client - Client.
3436
- * @param parameters - Parameters.
3437
- * @returns The transaction receipt and event data.
3438
- */
3439
- export declare function placeSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: placeSync.Parameters<chain, account>): Promise<placeSync.ReturnValue>;
3440
- export declare namespace placeSync {
3441
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = place.Parameters<chain, account>;
3442
- type Args = place.Args;
3443
- type ReturnValue = Compute<GetEventArgs<typeof Abis.stablecoinExchange, 'OrderPlaced', {
3444
- IndexedOnly: false;
3445
- Required: true;
3446
- }> & {
3447
- /** Transaction receipt. */
3448
- receipt: TransactionReceipt;
3449
- }>;
3450
- type ErrorType = BaseErrorType;
3451
- }
3452
- /**
3453
- * Sells a specific amount of tokens.
3454
- *
3455
- * @example
3456
- * ```ts
3457
- * import { createClient, http, parseUnits } from 'viem'
3458
- * import { privateKeyToAccount } from 'viem/accounts'
3459
- * import { tempo } from 'tempo.ts/chains'
3460
- * import { Actions } from 'tempo.ts/viem'
3461
- *
3462
- * const client = createClient({
3463
- * account: privateKeyToAccount('0x...'),
3464
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3465
- * transport: http(),
3466
- * })
3467
- *
3468
- * const hash = await Actions.dex.sell(client, {
3469
- * amountIn: parseUnits('100', 6),
3470
- * minAmountOut: parseUnits('95', 6),
3471
- * tokenIn: '0x20c...11',
3472
- * tokenOut: '0x20c...20',
3473
- * })
3474
- * ```
3475
- *
3476
- * @param client - Client.
3477
- * @param parameters - Parameters.
3478
- * @returns The transaction hash.
3479
- */
3480
- export declare function sell<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: sell.Parameters<chain, account>): Promise<sell.ReturnValue>;
3481
- export declare namespace sell {
3482
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
3483
- type Args = {
3484
- /** Amount of tokenIn to sell. */
3485
- amountIn: bigint;
3486
- /** Minimum amount of tokenOut to receive. */
3487
- minAmountOut: bigint;
3488
- /** Address of the token to sell. */
3489
- tokenIn: Address;
3490
- /** Address of the token to receive. */
3491
- tokenOut: Address;
3492
- };
3493
- type ReturnValue = WriteContractReturnType;
3494
- type ErrorType = BaseErrorType;
3495
- /** @internal */
3496
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: sell.Parameters<chain, account>): Promise<ReturnType<action>>;
3497
- /**
3498
- * Defines a call to the `swapExactAmountIn` function.
3499
- *
3500
- * Can be passed as a parameter to:
3501
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
3502
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
3503
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
3504
- *
3505
- * @example
3506
- * ```ts
3507
- * import { createClient, http, parseUnits, walletActions } from 'viem'
3508
- * import { tempo } from 'tempo.ts/chains'
3509
- * import { Actions } from 'tempo.ts/viem'
3510
- *
3511
- * const client = createClient({
3512
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3513
- * transport: http(),
3514
- * }).extend(walletActions)
3515
- *
3516
- * const { result } = await client.sendCalls({
3517
- * calls: [
3518
- * Actions.dex.sell.call({
3519
- * amountIn: parseUnits('100', 6),
3520
- * minAmountOut: parseUnits('95', 6),
3521
- * tokenIn: '0x20c0...beef',
3522
- * tokenOut: '0x20c0...babe',
3523
- * }),
3524
- * ]
3525
- * })
3526
- * ```
3527
- *
3528
- * @param args - Arguments.
3529
- * @returns The call.
3530
- */
3531
- function call(args: Args): {
3532
- abi: [{
3533
- readonly name: "swapExactAmountIn";
3534
- readonly type: "function";
3535
- readonly stateMutability: "nonpayable";
3536
- readonly inputs: readonly [{
3537
- readonly type: "address";
3538
- readonly name: "tokenIn";
3539
- }, {
3540
- readonly type: "address";
3541
- readonly name: "tokenOut";
3542
- }, {
3543
- readonly type: "uint128";
3544
- readonly name: "amountIn";
3545
- }, {
3546
- readonly type: "uint128";
3547
- readonly name: "minAmountOut";
3548
- }];
3549
- readonly outputs: readonly [{
3550
- readonly type: "uint128";
3551
- readonly name: "amountOut";
3552
- }];
3553
- }];
3554
- functionName: "swapExactAmountIn";
3555
- args?: readonly [`0x${string}`, `0x${string}`, bigint, bigint] | undefined;
3556
- } & {
3557
- args: readonly [`0x${string}`, `0x${string}`, bigint, bigint];
3558
- } & {
3559
- address: Address;
3560
- } & {
3561
- data: import("viem").Hex;
3562
- to: Address;
3563
- };
3564
- }
3565
- /**
3566
- * Sells a specific amount of tokens.
3567
- *
3568
- * @example
3569
- * ```ts
3570
- * import { createClient, http, parseUnits } from 'viem'
3571
- * import { privateKeyToAccount } from 'viem/accounts'
3572
- * import { tempo } from 'tempo.ts/chains'
3573
- * import { Actions } from 'tempo.ts/viem'
3574
- *
3575
- * const client = createClient({
3576
- * account: privateKeyToAccount('0x...'),
3577
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3578
- * transport: http(),
3579
- * })
3580
- *
3581
- * const result = await Actions.dex.sellSync(client, {
3582
- * amountIn: parseUnits('100', 6),
3583
- * minAmountOut: parseUnits('95', 6),
3584
- * tokenIn: '0x20c...11',
3585
- * tokenOut: '0x20c...20',
3586
- * })
3587
- * ```
3588
- *
3589
- * @param client - Client.
3590
- * @param parameters - Parameters.
3591
- * @returns The transaction receipt.
3592
- */
3593
- export declare function sellSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: sellSync.Parameters<chain, account>): Promise<sellSync.ReturnValue>;
3594
- export declare namespace sellSync {
3595
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = sell.Parameters<chain, account>;
3596
- type Args = sell.Args;
3597
- type ReturnValue = Compute<{
3598
- /** Transaction receipt. */
3599
- receipt: TransactionReceipt;
3600
- }>;
3601
- type ErrorType = BaseErrorType;
3602
- }
3603
- /**
3604
- * Watches for flip order placed events.
3605
- *
3606
- * @example
3607
- * ```ts
3608
- * import { createClient, http } from 'viem'
3609
- * import { tempo } from 'tempo.ts/chains'
3610
- * import { Actions } from 'tempo.ts/viem'
3611
- *
3612
- * const client = createClient({
3613
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3614
- * transport: http(),
3615
- * })
3616
- *
3617
- * const unwatch = Actions.dex.watchFlipOrderPlaced(client, {
3618
- * onFlipOrderPlaced: (args, log) => {
3619
- * console.log('Flip order placed:', args)
3620
- * },
3621
- * })
3622
- * ```
3623
- *
3624
- * @param client - Client.
3625
- * @param parameters - Parameters.
3626
- * @returns A function to unsubscribe from the event.
3627
- */
3628
- export declare function watchFlipOrderPlaced<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: watchFlipOrderPlaced.Parameters): import("viem").WatchContractEventReturnType;
3629
- export declare namespace watchFlipOrderPlaced {
3630
- type Args = GetEventArgs<typeof Abis.stablecoinExchange, 'FlipOrderPlaced', {
3631
- IndexedOnly: false;
3632
- Required: true;
3633
- }>;
3634
- type Log = viem_Log<bigint, number, false, ExtractAbiItem<typeof Abis.stablecoinExchange, 'FlipOrderPlaced'>, true>;
3635
- type Parameters = UnionOmit<WatchContractEventParameters<typeof Abis.stablecoinExchange, 'FlipOrderPlaced', true>, 'abi' | 'address' | 'batch' | 'eventName' | 'onLogs' | 'strict'> & {
3636
- /** Address of the maker to filter events. */
3637
- maker?: Address | undefined;
3638
- /** Callback to invoke when a flip order is placed. */
3639
- onFlipOrderPlaced: (args: Args, log: Log) => void;
3640
- /** Address of the token to filter events. */
3641
- token?: Address | undefined;
3642
- };
3643
- }
3644
- /**
3645
- * Watches for order cancelled events.
3646
- *
3647
- * @example
3648
- * ```ts
3649
- * import { createClient, http } from 'viem'
3650
- * import { tempo } from 'tempo.ts/chains'
3651
- * import { Actions } from 'tempo.ts/viem'
3652
- *
3653
- * const client = createClient({
3654
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3655
- * transport: http(),
3656
- * })
3657
- *
3658
- * const unwatch = Actions.dex.watchOrderCancelled(client, {
3659
- * onOrderCancelled: (args, log) => {
3660
- * console.log('Order cancelled:', args)
3661
- * },
3662
- * })
3663
- * ```
3664
- *
3665
- * @param client - Client.
3666
- * @param parameters - Parameters.
3667
- * @returns A function to unsubscribe from the event.
3668
- */
3669
- export declare function watchOrderCancelled<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: watchOrderCancelled.Parameters): import("viem").WatchContractEventReturnType;
3670
- export declare namespace watchOrderCancelled {
3671
- type Args = GetEventArgs<typeof Abis.stablecoinExchange, 'OrderCancelled', {
3672
- IndexedOnly: false;
3673
- Required: true;
3674
- }>;
3675
- type Log = viem_Log<bigint, number, false, ExtractAbiItem<typeof Abis.stablecoinExchange, 'OrderCancelled'>, true>;
3676
- type Parameters = UnionOmit<WatchContractEventParameters<typeof Abis.stablecoinExchange, 'OrderCancelled', true>, 'abi' | 'address' | 'batch' | 'eventName' | 'onLogs' | 'strict'> & {
3677
- /** Callback to invoke when an order is cancelled. */
3678
- onOrderCancelled: (args: Args, log: Log) => void;
3679
- /** Order ID to filter events. */
3680
- orderId?: bigint | undefined;
3681
- };
3682
- }
3683
- /**
3684
- * Watches for order filled events.
3685
- *
3686
- * @example
3687
- * ```ts
3688
- * import { createClient, http } from 'viem'
3689
- * import { tempo } from 'tempo.ts/chains'
3690
- * import { Actions } from 'tempo.ts/viem'
3691
- *
3692
- * const client = createClient({
3693
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3694
- * transport: http(),
3695
- * })
3696
- *
3697
- * const unwatch = Actions.dex.watchOrderFilled(client, {
3698
- * onOrderFilled: (args, log) => {
3699
- * console.log('Order filled:', args)
3700
- * },
3701
- * })
3702
- * ```
3703
- *
3704
- * @param client - Client.
3705
- * @param parameters - Parameters.
3706
- * @returns A function to unsubscribe from the event.
3707
- */
3708
- export declare function watchOrderFilled<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: watchOrderFilled.Parameters): import("viem").WatchContractEventReturnType;
3709
- export declare namespace watchOrderFilled {
3710
- type Args = GetEventArgs<typeof Abis.stablecoinExchange, 'OrderFilled', {
3711
- IndexedOnly: false;
3712
- Required: true;
3713
- }>;
3714
- type Log = viem_Log<bigint, number, false, ExtractAbiItem<typeof Abis.stablecoinExchange, 'OrderFilled'>, true>;
3715
- type Parameters = UnionOmit<WatchContractEventParameters<typeof Abis.stablecoinExchange, 'OrderFilled', true>, 'abi' | 'address' | 'batch' | 'eventName' | 'onLogs' | 'strict'> & {
3716
- /** Address of the maker to filter events. */
3717
- maker?: Address | undefined;
3718
- /** Callback to invoke when an order is filled. */
3719
- onOrderFilled: (args: Args, log: Log) => void;
3720
- /** Order ID to filter events. */
3721
- orderId?: bigint | undefined;
3722
- /** Address of the taker to filter events. */
3723
- taker?: Address | undefined;
3724
- };
3725
- }
3726
- /**
3727
- * Watches for order placed events.
3728
- *
3729
- * @example
3730
- * ```ts
3731
- * import { createClient, http } from 'viem'
3732
- * import { tempo } from 'tempo.ts/chains'
3733
- * import { Actions } from 'tempo.ts/viem'
3734
- *
3735
- * const client = createClient({
3736
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3737
- * transport: http(),
3738
- * })
3739
- *
3740
- * const unwatch = Actions.dex.watchOrderPlaced(client, {
3741
- * onOrderPlaced: (args, log) => {
3742
- * console.log('Order placed:', args)
3743
- * },
3744
- * })
3745
- * ```
3746
- *
3747
- * @param client - Client.
3748
- * @param parameters - Parameters.
3749
- * @returns A function to unsubscribe from the event.
3750
- */
3751
- export declare function watchOrderPlaced<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: watchOrderPlaced.Parameters): import("viem").WatchContractEventReturnType;
3752
- export declare namespace watchOrderPlaced {
3753
- type Args = GetEventArgs<typeof Abis.stablecoinExchange, 'OrderPlaced', {
3754
- IndexedOnly: false;
3755
- Required: true;
3756
- }>;
3757
- type Log = viem_Log<bigint, number, false, ExtractAbiItem<typeof Abis.stablecoinExchange, 'OrderPlaced'>, true>;
3758
- type Parameters = UnionOmit<WatchContractEventParameters<typeof Abis.stablecoinExchange, 'OrderPlaced', true>, 'abi' | 'address' | 'batch' | 'eventName' | 'onLogs' | 'strict'> & {
3759
- /** Address of the maker to filter events. */
3760
- maker?: Address | undefined;
3761
- /** Callback to invoke when an order is placed. */
3762
- onOrderPlaced: (args: Args, log: Log) => void;
3763
- /** Address of the token to filter events. */
3764
- token?: Address | undefined;
3765
- };
3766
- }
3767
- /**
3768
- * Withdraws tokens from the DEX to the caller's wallet.
3769
- *
3770
- * @example
3771
- * ```ts
3772
- * import { createClient, http } from 'viem'
3773
- * import { privateKeyToAccount } from 'viem/accounts'
3774
- * import { tempo } from 'tempo.ts/chains'
3775
- * import { Actions } from 'tempo.ts/viem'
3776
- *
3777
- * const client = createClient({
3778
- * account: privateKeyToAccount('0x...'),
3779
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3780
- * transport: http(),
3781
- * })
3782
- *
3783
- * const hash = await Actions.dex.withdraw(client, {
3784
- * amount: 100n,
3785
- * token: '0x20c...11',
3786
- * })
3787
- * ```
3788
- *
3789
- * @param client - Client.
3790
- * @param parameters - Parameters.
3791
- * @returns The transaction hash.
3792
- */
3793
- export declare function withdraw<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: withdraw.Parameters<chain, account>): Promise<withdraw.ReturnValue>;
3794
- export declare namespace withdraw {
3795
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args;
3796
- type Args = {
3797
- /** Amount to withdraw. */
3798
- amount: bigint;
3799
- /** Address of the token to withdraw. */
3800
- token: Address;
3801
- };
3802
- type ReturnValue = WriteContractReturnType;
3803
- type ErrorType = BaseErrorType;
3804
- /** @internal */
3805
- function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: withdraw.Parameters<chain, account>): Promise<ReturnType<action>>;
3806
- /**
3807
- * Defines a call to the `withdraw` function.
3808
- *
3809
- * Can be passed as a parameter to:
3810
- * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call
3811
- * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call
3812
- * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls
3813
- *
3814
- * @example
3815
- * ```ts
3816
- * import { createClient, http, parseUnits, walletActions } from 'viem'
3817
- * import { tempo } from 'tempo.ts/chains'
3818
- * import { Actions } from 'tempo.ts/viem'
3819
- *
3820
- * const client = createClient({
3821
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3822
- * transport: http(),
3823
- * }).extend(walletActions)
3824
- *
3825
- * const { result } = await client.sendCalls({
3826
- * calls: [
3827
- * Actions.dex.withdraw.call({
3828
- * amount: parseUnits('100', 6),
3829
- * token: '0x20c0...beef',
3830
- * }),
3831
- * ]
3832
- * })
3833
- * ```
3834
- *
3835
- * @param args - Arguments.
3836
- * @returns The call.
3837
- */
3838
- function call(args: Args): {
3839
- abi: [{
3840
- readonly name: "withdraw";
3841
- readonly type: "function";
3842
- readonly stateMutability: "nonpayable";
3843
- readonly inputs: readonly [{
3844
- readonly type: "address";
3845
- readonly name: "token";
3846
- }, {
3847
- readonly type: "uint128";
3848
- readonly name: "amount";
3849
- }];
3850
- readonly outputs: readonly [];
3851
- }];
3852
- functionName: "withdraw";
3853
- args?: readonly [`0x${string}`, bigint] | undefined;
3854
- } & {
3855
- args: readonly [`0x${string}`, bigint];
3856
- } & {
3857
- address: Address;
3858
- } & {
3859
- data: import("viem").Hex;
3860
- to: Address;
3861
- };
3862
- }
3863
- /**
3864
- * Withdraws tokens from the DEX to the caller's wallet.
3865
- *
3866
- * @example
3867
- * ```ts
3868
- * import { createClient, http } from 'viem'
3869
- * import { privateKeyToAccount } from 'viem/accounts'
3870
- * import { tempo } from 'tempo.ts/chains'
3871
- * import { Actions } from 'tempo.ts/viem'
3872
- *
3873
- * const client = createClient({
3874
- * account: privateKeyToAccount('0x...'),
3875
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
3876
- * transport: http(),
3877
- * })
3878
- *
3879
- * const result = await Actions.dex.withdrawSync(client, {
3880
- * amount: 100n,
3881
- * token: '0x20c...11',
3882
- * })
3883
- * ```
3884
- *
3885
- * @param client - Client.
3886
- * @param parameters - Parameters.
3887
- * @returns The transaction receipt.
3888
- */
3889
- export declare function withdrawSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: withdrawSync.Parameters<chain, account>): Promise<withdrawSync.ReturnValue>;
3890
- export declare namespace withdrawSync {
3891
- type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = withdraw.Parameters<chain, account>;
3892
- type Args = withdraw.Args;
3893
- type ReturnValue = Compute<{
3894
- /** Transaction receipt. */
3895
- receipt: TransactionReceipt;
3896
- }>;
3897
- type ErrorType = BaseErrorType;
3898
- }
3899
- export {};
3900
- //# sourceMappingURL=dex.d.ts.map