@dolomite-exchange/zap-sdk 0.3.21 → 0.3.23

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 (35) hide show
  1. package/dist/src/lib/Constants.js +220 -170
  2. package/dist/src/lib/Constants.js.map +1 -1
  3. package/package.json +4 -3
  4. package/src/DolomiteZap.ts +940 -0
  5. package/src/abis/IArbitrumGasInfo.json +198 -0
  6. package/src/abis/IDolomiteMarginExchangeWrapper.json +80 -0
  7. package/src/abis/IERC20.json +185 -0
  8. package/src/abis/IGmxV2DataStore.json +101 -0
  9. package/src/abis/IGmxV2Reader.json +3487 -0
  10. package/src/abis/IIsolationModeFactory.json +902 -0
  11. package/src/abis/types/IArbitrumGasInfo.ts +299 -0
  12. package/src/abis/types/IERC20.ts +269 -0
  13. package/src/abis/types/IGmxV2DataStore.ts +170 -0
  14. package/src/abis/types/IGmxV2Reader.ts +825 -0
  15. package/src/clients/AggregatorClient.ts +22 -0
  16. package/src/clients/DolomiteClient.ts +301 -0
  17. package/src/clients/IsolationModeClient.ts +75 -0
  18. package/src/clients/OdosAggregator.ts +107 -0
  19. package/src/clients/OogaBoogaAggregator.ts +76 -0
  20. package/src/clients/ParaswapAggregator.ts +135 -0
  21. package/src/index.ts +29 -0
  22. package/src/lib/ApiTypes.ts +241 -0
  23. package/src/lib/Constants.ts +1441 -0
  24. package/src/lib/Environment.ts +1 -0
  25. package/src/lib/GraphqlPageable.ts +23 -0
  26. package/src/lib/LocalCache.ts +34 -0
  27. package/src/lib/Logger.ts +59 -0
  28. package/src/lib/MathUtils.ts +13 -0
  29. package/src/lib/Utils.ts +52 -0
  30. package/src/lib/estimators/GmxV2GmEstimator.ts +349 -0
  31. package/src/lib/estimators/PendlePtEstimatorV3.ts +321 -0
  32. package/src/lib/estimators/PendleYtEstimatorV3.ts +77 -0
  33. package/src/lib/estimators/SimpleEstimator.ts +16 -0
  34. package/src/lib/estimators/StandardEstimator.ts +137 -0
  35. package/src/lib/graphql-types.ts +19 -0
@@ -0,0 +1,299 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ import type { FunctionFragment, Result } from '@ethersproject/abi';
3
+ import type { Provider } from '@ethersproject/providers';
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+ import type {
7
+ BaseContract,
8
+ BigNumber,
9
+ BigNumberish,
10
+ BytesLike,
11
+ CallOverrides,
12
+ ContractTransaction,
13
+ Overrides,
14
+ PopulatedTransaction,
15
+ Signer,
16
+ utils,
17
+ } from 'ethers';
18
+
19
+ export interface IArbitrumGasInfoInterface extends utils.Interface {
20
+ functions: {
21
+ 'getCurrentTxL1GasFees()': FunctionFragment;
22
+ 'getGasAccountingParams()': FunctionFragment;
23
+ 'getL1GasPriceEstimate()': FunctionFragment;
24
+ 'getPricesInArbGas()': FunctionFragment;
25
+ 'getPricesInArbGasWithAggregator(address)': FunctionFragment;
26
+ 'getPricesInWei()': FunctionFragment;
27
+ 'getPricesInWeiWithAggregator(address)': FunctionFragment;
28
+ 'setL1GasPriceEstimate(uint256)': FunctionFragment;
29
+ };
30
+ events: {};
31
+
32
+ getFunction(
33
+ nameOrSignatureOrTopic:
34
+ | 'getCurrentTxL1GasFees'
35
+ | 'getGasAccountingParams'
36
+ | 'getL1GasPriceEstimate'
37
+ | 'getPricesInArbGas'
38
+ | 'getPricesInArbGasWithAggregator'
39
+ | 'getPricesInWei'
40
+ | 'getPricesInWeiWithAggregator'
41
+ | 'setL1GasPriceEstimate',
42
+ ): FunctionFragment;
43
+
44
+ encodeFunctionData(
45
+ functionFragment: 'getCurrentTxL1GasFees',
46
+ values?: undefined,
47
+ ): string;
48
+
49
+ encodeFunctionData(
50
+ functionFragment: 'getGasAccountingParams',
51
+ values?: undefined,
52
+ ): string;
53
+
54
+ encodeFunctionData(
55
+ functionFragment: 'getL1GasPriceEstimate',
56
+ values?: undefined,
57
+ ): string;
58
+
59
+ encodeFunctionData(
60
+ functionFragment: 'getPricesInArbGas',
61
+ values?: undefined,
62
+ ): string;
63
+
64
+ encodeFunctionData(
65
+ functionFragment: 'getPricesInArbGasWithAggregator',
66
+ values: [string],
67
+ ): string;
68
+
69
+ encodeFunctionData(
70
+ functionFragment: 'getPricesInWei',
71
+ values?: undefined,
72
+ ): string;
73
+
74
+ encodeFunctionData(
75
+ functionFragment: 'getPricesInWeiWithAggregator',
76
+ values: [string],
77
+ ): string;
78
+
79
+ encodeFunctionData(
80
+ functionFragment: 'setL1GasPriceEstimate',
81
+ values: [BigNumberish],
82
+ ): string;
83
+
84
+ decodeFunctionResult(
85
+ functionFragment: 'getCurrentTxL1GasFees',
86
+ data: BytesLike,
87
+ ): Result;
88
+
89
+ decodeFunctionResult(
90
+ functionFragment: 'getGasAccountingParams',
91
+ data: BytesLike,
92
+ ): Result;
93
+
94
+ decodeFunctionResult(
95
+ functionFragment: 'getL1GasPriceEstimate',
96
+ data: BytesLike,
97
+ ): Result;
98
+
99
+ decodeFunctionResult(
100
+ functionFragment: 'getPricesInArbGas',
101
+ data: BytesLike,
102
+ ): Result;
103
+
104
+ decodeFunctionResult(
105
+ functionFragment: 'getPricesInArbGasWithAggregator',
106
+ data: BytesLike,
107
+ ): Result;
108
+
109
+ decodeFunctionResult(
110
+ functionFragment: 'getPricesInWei',
111
+ data: BytesLike,
112
+ ): Result;
113
+
114
+ decodeFunctionResult(
115
+ functionFragment: 'getPricesInWeiWithAggregator',
116
+ data: BytesLike,
117
+ ): Result;
118
+
119
+ decodeFunctionResult(
120
+ functionFragment: 'setL1GasPriceEstimate',
121
+ data: BytesLike,
122
+ ): Result;
123
+ }
124
+
125
+ export interface IArbitrumGasInfo extends BaseContract {
126
+ interface: IArbitrumGasInfoInterface;
127
+ functions: {
128
+ getCurrentTxL1GasFees(overrides?: CallOverrides): Promise<[BigNumber]>;
129
+
130
+ getGasAccountingParams(
131
+ overrides?: CallOverrides,
132
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
133
+
134
+ getL1GasPriceEstimate(overrides?: CallOverrides): Promise<[BigNumber]>;
135
+
136
+ getPricesInArbGas(
137
+ overrides?: CallOverrides,
138
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
139
+
140
+ getPricesInArbGasWithAggregator(
141
+ aggregator: string,
142
+ overrides?: CallOverrides,
143
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
144
+
145
+ getPricesInWei(
146
+ overrides?: CallOverrides,
147
+ ): Promise<
148
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
149
+ >;
150
+
151
+ getPricesInWeiWithAggregator(
152
+ aggregator: string,
153
+ overrides?: CallOverrides,
154
+ ): Promise<
155
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
156
+ >;
157
+
158
+ setL1GasPriceEstimate(
159
+ priceInWei: BigNumberish,
160
+ overrides?: Overrides & { from?: string },
161
+ ): Promise<ContractTransaction>;
162
+ };
163
+ callStatic: {
164
+ getCurrentTxL1GasFees(overrides?: CallOverrides): Promise<BigNumber>;
165
+
166
+ getGasAccountingParams(
167
+ overrides?: CallOverrides,
168
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
169
+
170
+ getL1GasPriceEstimate(overrides?: CallOverrides): Promise<BigNumber>;
171
+
172
+ getPricesInArbGas(
173
+ overrides?: CallOverrides,
174
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
175
+
176
+ getPricesInArbGasWithAggregator(
177
+ aggregator: string,
178
+ overrides?: CallOverrides,
179
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
180
+
181
+ getPricesInWei(
182
+ overrides?: CallOverrides,
183
+ ): Promise<
184
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
185
+ >;
186
+
187
+ getPricesInWeiWithAggregator(
188
+ aggregator: string,
189
+ overrides?: CallOverrides,
190
+ ): Promise<
191
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
192
+ >;
193
+
194
+ setL1GasPriceEstimate(
195
+ priceInWei: BigNumberish,
196
+ overrides?: CallOverrides,
197
+ ): Promise<void>;
198
+ };
199
+ filters: {};
200
+ estimateGas: {
201
+ getCurrentTxL1GasFees(overrides?: CallOverrides): Promise<BigNumber>;
202
+
203
+ getGasAccountingParams(overrides?: CallOverrides): Promise<BigNumber>;
204
+
205
+ getL1GasPriceEstimate(overrides?: CallOverrides): Promise<BigNumber>;
206
+
207
+ getPricesInArbGas(overrides?: CallOverrides): Promise<BigNumber>;
208
+
209
+ getPricesInArbGasWithAggregator(
210
+ aggregator: string,
211
+ overrides?: CallOverrides,
212
+ ): Promise<BigNumber>;
213
+
214
+ getPricesInWei(overrides?: CallOverrides): Promise<BigNumber>;
215
+
216
+ getPricesInWeiWithAggregator(
217
+ aggregator: string,
218
+ overrides?: CallOverrides,
219
+ ): Promise<BigNumber>;
220
+
221
+ setL1GasPriceEstimate(
222
+ priceInWei: BigNumberish,
223
+ overrides?: Overrides & { from?: string },
224
+ ): Promise<BigNumber>;
225
+ };
226
+ populateTransaction: {
227
+ getCurrentTxL1GasFees(
228
+ overrides?: CallOverrides,
229
+ ): Promise<PopulatedTransaction>;
230
+
231
+ getGasAccountingParams(
232
+ overrides?: CallOverrides,
233
+ ): Promise<PopulatedTransaction>;
234
+
235
+ getL1GasPriceEstimate(
236
+ overrides?: CallOverrides,
237
+ ): Promise<PopulatedTransaction>;
238
+
239
+ getPricesInArbGas(overrides?: CallOverrides): Promise<PopulatedTransaction>;
240
+
241
+ getPricesInArbGasWithAggregator(
242
+ aggregator: string,
243
+ overrides?: CallOverrides,
244
+ ): Promise<PopulatedTransaction>;
245
+
246
+ getPricesInWei(overrides?: CallOverrides): Promise<PopulatedTransaction>;
247
+
248
+ getPricesInWeiWithAggregator(
249
+ aggregator: string,
250
+ overrides?: CallOverrides,
251
+ ): Promise<PopulatedTransaction>;
252
+
253
+ setL1GasPriceEstimate(
254
+ priceInWei: BigNumberish,
255
+ overrides?: Overrides & { from?: string },
256
+ ): Promise<PopulatedTransaction>;
257
+ };
258
+
259
+ connect(signerOrProvider: Signer | Provider | string): this;
260
+
261
+ attach(addressOrName: string): this;
262
+
263
+ deployed(): Promise<this>;
264
+
265
+ getCurrentTxL1GasFees(overrides?: CallOverrides): Promise<BigNumber>;
266
+
267
+ getGasAccountingParams(
268
+ overrides?: CallOverrides,
269
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
270
+
271
+ getL1GasPriceEstimate(overrides?: CallOverrides): Promise<BigNumber>;
272
+
273
+ getPricesInArbGas(
274
+ overrides?: CallOverrides,
275
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
276
+
277
+ getPricesInArbGasWithAggregator(
278
+ aggregator: string,
279
+ overrides?: CallOverrides,
280
+ ): Promise<[BigNumber, BigNumber, BigNumber]>;
281
+
282
+ getPricesInWei(
283
+ overrides?: CallOverrides,
284
+ ): Promise<
285
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
286
+ >;
287
+
288
+ getPricesInWeiWithAggregator(
289
+ aggregator: string,
290
+ overrides?: CallOverrides,
291
+ ): Promise<
292
+ [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]
293
+ >;
294
+
295
+ setL1GasPriceEstimate(
296
+ priceInWei: BigNumberish,
297
+ overrides?: Overrides & { from?: string },
298
+ ): Promise<ContractTransaction>;
299
+ }
@@ -0,0 +1,269 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ import type { EventFragment, FunctionFragment, Result } from '@ethersproject/abi';
3
+ import type { Listener, Provider } from '@ethersproject/providers';
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+ import type {
7
+ BaseContract,
8
+ BigNumber,
9
+ BigNumberish,
10
+ BytesLike,
11
+ CallOverrides,
12
+ ContractTransaction,
13
+ Overrides,
14
+ PopulatedTransaction,
15
+ Signer,
16
+ utils,
17
+ } from 'ethers';
18
+
19
+ export interface IERC20Interface extends utils.Interface {
20
+ functions: {
21
+ 'allowance(address,address)': FunctionFragment;
22
+ 'approve(address,uint256)': FunctionFragment;
23
+ 'balanceOf(address)': FunctionFragment;
24
+ 'totalSupply()': FunctionFragment;
25
+ 'transfer(address,uint256)': FunctionFragment;
26
+ 'transferFrom(address,address,uint256)': FunctionFragment;
27
+ };
28
+ events: {
29
+ 'Approval(address,address,uint256)': EventFragment;
30
+ 'Transfer(address,address,uint256)': EventFragment;
31
+ };
32
+
33
+ getFunction(
34
+ nameOrSignatureOrTopic:
35
+ | 'allowance'
36
+ | 'approve'
37
+ | 'balanceOf'
38
+ | 'totalSupply'
39
+ | 'transfer'
40
+ | 'transferFrom',
41
+ ): FunctionFragment;
42
+
43
+ encodeFunctionData(
44
+ functionFragment: 'allowance',
45
+ values: [string, string],
46
+ ): string;
47
+
48
+ encodeFunctionData(
49
+ functionFragment: 'approve',
50
+ values: [string, BigNumberish],
51
+ ): string;
52
+
53
+ encodeFunctionData(functionFragment: 'balanceOf', values: [string]): string;
54
+
55
+ encodeFunctionData(
56
+ functionFragment: 'totalSupply',
57
+ values?: undefined,
58
+ ): string;
59
+
60
+ encodeFunctionData(
61
+ functionFragment: 'transfer',
62
+ values: [string, BigNumberish],
63
+ ): string;
64
+
65
+ encodeFunctionData(
66
+ functionFragment: 'transferFrom',
67
+ values: [string, string, BigNumberish],
68
+ ): string;
69
+
70
+ decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
71
+
72
+ decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
73
+
74
+ decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
75
+
76
+ decodeFunctionResult(
77
+ functionFragment: 'totalSupply',
78
+ data: BytesLike,
79
+ ): Result;
80
+
81
+ decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
82
+
83
+ decodeFunctionResult(
84
+ functionFragment: 'transferFrom',
85
+ data: BytesLike,
86
+ ): Result;
87
+
88
+ getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
89
+
90
+ getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
91
+ }
92
+
93
+ export interface ApprovalEventObject {
94
+ owner: string;
95
+ spender: string;
96
+ value: BigNumber;
97
+ }
98
+
99
+ export interface TransferEventObject {
100
+ from: string;
101
+ to: string;
102
+ value: BigNumber;
103
+ }
104
+
105
+ export interface IERC20 extends BaseContract {
106
+ interface: IERC20Interface;
107
+ functions: {
108
+ allowance(
109
+ owner: string,
110
+ spender: string,
111
+ overrides?: CallOverrides,
112
+ ): Promise<[BigNumber]>;
113
+
114
+ approve(
115
+ spender: string,
116
+ amount: BigNumberish,
117
+ overrides?: Overrides & { from?: string },
118
+ ): Promise<ContractTransaction>;
119
+
120
+ balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
121
+
122
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
123
+
124
+ transfer(
125
+ to: string,
126
+ amount: BigNumberish,
127
+ overrides?: Overrides & { from?: string },
128
+ ): Promise<ContractTransaction>;
129
+
130
+ transferFrom(
131
+ from: string,
132
+ to: string,
133
+ amount: BigNumberish,
134
+ overrides?: Overrides & { from?: string },
135
+ ): Promise<ContractTransaction>;
136
+ };
137
+ callStatic: {
138
+ allowance(
139
+ owner: string,
140
+ spender: string,
141
+ overrides?: CallOverrides,
142
+ ): Promise<BigNumber>;
143
+
144
+ approve(
145
+ spender: string,
146
+ amount: BigNumberish,
147
+ overrides?: CallOverrides,
148
+ ): Promise<boolean>;
149
+
150
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
151
+
152
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
153
+
154
+ transfer(
155
+ to: string,
156
+ amount: BigNumberish,
157
+ overrides?: CallOverrides,
158
+ ): Promise<boolean>;
159
+
160
+ transferFrom(
161
+ from: string,
162
+ to: string,
163
+ amount: BigNumberish,
164
+ overrides?: CallOverrides,
165
+ ): Promise<boolean>;
166
+ };
167
+ estimateGas: {
168
+ allowance(
169
+ owner: string,
170
+ spender: string,
171
+ overrides?: CallOverrides,
172
+ ): Promise<BigNumber>;
173
+
174
+ approve(
175
+ spender: string,
176
+ amount: BigNumberish,
177
+ overrides?: Overrides & { from?: string },
178
+ ): Promise<BigNumber>;
179
+
180
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
181
+
182
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
183
+
184
+ transfer(
185
+ to: string,
186
+ amount: BigNumberish,
187
+ overrides?: Overrides & { from?: string },
188
+ ): Promise<BigNumber>;
189
+
190
+ transferFrom(
191
+ from: string,
192
+ to: string,
193
+ amount: BigNumberish,
194
+ overrides?: Overrides & { from?: string },
195
+ ): Promise<BigNumber>;
196
+ };
197
+ populateTransaction: {
198
+ allowance(
199
+ owner: string,
200
+ spender: string,
201
+ overrides?: CallOverrides,
202
+ ): Promise<PopulatedTransaction>;
203
+
204
+ approve(
205
+ spender: string,
206
+ amount: BigNumberish,
207
+ overrides?: Overrides & { from?: string },
208
+ ): Promise<PopulatedTransaction>;
209
+
210
+ balanceOf(
211
+ account: string,
212
+ overrides?: CallOverrides,
213
+ ): Promise<PopulatedTransaction>;
214
+
215
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
216
+
217
+ transfer(
218
+ to: string,
219
+ amount: BigNumberish,
220
+ overrides?: Overrides & { from?: string },
221
+ ): Promise<PopulatedTransaction>;
222
+
223
+ transferFrom(
224
+ from: string,
225
+ to: string,
226
+ amount: BigNumberish,
227
+ overrides?: Overrides & { from?: string },
228
+ ): Promise<PopulatedTransaction>;
229
+ };
230
+
231
+ connect(signerOrProvider: Signer | Provider | string): this;
232
+
233
+ attach(addressOrName: string): this;
234
+
235
+ deployed(): Promise<this>;
236
+
237
+ listeners(eventName?: string): Array<Listener>;
238
+
239
+ removeAllListeners(eventName?: string): this;
240
+
241
+ allowance(
242
+ owner: string,
243
+ spender: string,
244
+ overrides?: CallOverrides,
245
+ ): Promise<BigNumber>;
246
+
247
+ approve(
248
+ spender: string,
249
+ amount: BigNumberish,
250
+ overrides?: Overrides & { from?: string },
251
+ ): Promise<ContractTransaction>;
252
+
253
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
254
+
255
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
256
+
257
+ transfer(
258
+ to: string,
259
+ amount: BigNumberish,
260
+ overrides?: Overrides & { from?: string },
261
+ ): Promise<ContractTransaction>;
262
+
263
+ transferFrom(
264
+ from: string,
265
+ to: string,
266
+ amount: BigNumberish,
267
+ overrides?: Overrides & { from?: string },
268
+ ): Promise<ContractTransaction>;
269
+ }