@ichidao/ichi-vaults-sdk 0.0.1 → 0.0.2
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.
- package/README.md +155 -93
- package/dist/src/__tests__/index.test.js +17 -0
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/functions/balances.js +36 -31
- package/dist/src/functions/balances.js.map +1 -1
- package/dist/src/functions/deposit.js +40 -34
- package/dist/src/functions/deposit.js.map +1 -1
- package/dist/src/functions/vault.d.ts +2 -1
- package/dist/src/functions/vault.js +62 -2
- package/dist/src/functions/vault.js.map +1 -1
- package/dist/src/functions/withdraw.js +11 -9
- package/dist/src/functions/withdraw.js.map +1 -1
- package/dist/src/index.cjs.js +2 -1
- package/dist/src/index.esm.js +2 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/src/functions/vault.d.ts +2 -1
- package/dist/src/src/types/index.d.ts +7 -0
- package/dist/src/src/types/vaultQueryData.d.ts +4 -7
- package/dist/src/types/index.d.ts +7 -0
- package/dist/src/types/vaultQueryData.d.ts +4 -7
- package/package.json +1 -1
package/README.md
CHANGED
@@ -9,18 +9,18 @@ This sdk contains collection of functions to interact with IchiVault's smart con
|
|
9
9
|
* [__Installation__](#Installation)
|
10
10
|
* [__Usage__](#Usage)
|
11
11
|
* [__Vault Functions__](#Vault)
|
12
|
-
* [`
|
13
|
-
* [`
|
14
|
-
* [`
|
15
|
-
* [`
|
16
|
-
* [`
|
17
|
-
* [`
|
18
|
-
* [`
|
19
|
-
* [`
|
20
|
-
* [`
|
21
|
-
* [`
|
22
|
-
|
23
|
-
|
12
|
+
* [`approveDepositToken()`](#1-approveDepositToken)
|
13
|
+
* [`deposit()`](#2-depositLP)
|
14
|
+
* [`withdraw()`](#3-withdraw)
|
15
|
+
* [`isDepositTokenApproved()`](#4-isDepositTokenApproved)
|
16
|
+
* [`isTokenAllowed()`](#5-isTokenAllowed)
|
17
|
+
* [`getMaxDepositAmount()`](#6-getMaxDepositAmount)
|
18
|
+
* [`getUserBalance()`](#7-getUserBalance)
|
19
|
+
* [`getUserAmounts()`](#8-getUserAmounts)
|
20
|
+
* [`getTotalSupply()`](#9-getTotalSupply)
|
21
|
+
* [`getTotalAmounts()`](#10-getTotalAmounts)
|
22
|
+
* [`getIchiVaultInfo()`](#11-getIchiVaultInfo)
|
23
|
+
* [`getVaultsByTokens()`](#12-getVaultsByTokens)
|
24
24
|
|
25
25
|
## Installation
|
26
26
|
Install with
|
@@ -35,22 +35,23 @@ npm install @ichidao/ichi-vaults-sdk
|
|
35
35
|
## Usage
|
36
36
|
### Vault
|
37
37
|
|
38
|
-
#### 1. `
|
38
|
+
#### 1. `approveDepositToken()`
|
39
39
|
|
40
40
|
| param | type | default | required
|
41
41
|
| -------- | -------- | -------- | --------
|
42
42
|
| accountAddress | string | - | true
|
43
43
|
| tokenIdx | 0 \| 1 | - | true
|
44
|
-
| amount | string \| number, | - | true |
|
45
44
|
| vaultAddress | string | - | true |
|
46
45
|
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
47
|
-
| dex | SupportedDex | - | true |
|
46
|
+
| dex | SupportedDex | - | true |
|
47
|
+
| amount | string \| number | undefined | false |
|
48
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
48
49
|
|
49
50
|
<br/>
|
50
51
|
|
51
52
|
```typescript
|
52
53
|
import { Web3Provider } from '@ethersproject/providers';
|
53
|
-
import {
|
54
|
+
import { approveDepositToken, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
54
55
|
|
55
56
|
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
56
57
|
const vaultAddress = "0x3ac9...a5f132"
|
@@ -58,84 +59,133 @@ const accountAddress = "0xaaaa...aaaaaa"
|
|
58
59
|
const amount = 100
|
59
60
|
const dex = SupportedDex.UniswapV3
|
60
61
|
|
61
|
-
const
|
62
|
-
accountAddress,
|
62
|
+
const txnDetails = await approveDepositToken(
|
63
|
+
accountAddress,
|
63
64
|
0, // token idx can be 0 or 1
|
64
|
-
amount,
|
65
65
|
vaultAddress,
|
66
66
|
web3Provider,
|
67
|
-
dex
|
68
|
-
)
|
67
|
+
dex,
|
68
|
+
amount // (optional)
|
69
|
+
);
|
70
|
+
|
71
|
+
await txnDetails.wait();
|
72
|
+
|
73
|
+
// can now deposit token0
|
74
|
+
// ...
|
69
75
|
```
|
70
76
|
|
71
|
-
#### 2. `
|
77
|
+
#### 2. `deposit()`
|
72
78
|
|
73
79
|
| param | type | default | required
|
74
80
|
| -------- | -------- | -------- | --------
|
75
81
|
| accountAddress | string | - | true
|
76
|
-
|
|
77
|
-
|
|
82
|
+
| amount0 | string \| number | - | true
|
83
|
+
| amount1 | string \| number | - | true
|
84
|
+
| vaultAddress | string | - | true
|
78
85
|
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
79
|
-
| dex | SupportedDex | - | true
|
80
|
-
|
|
86
|
+
| dex | SupportedDex | - | true
|
87
|
+
| percentSlippage | number | 1 | false
|
81
88
|
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
82
89
|
|
83
90
|
<br/>
|
84
91
|
|
85
92
|
```typescript
|
86
93
|
import { Web3Provider } from '@ethersproject/providers';
|
87
|
-
import {
|
94
|
+
import { deposit, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
88
95
|
|
89
96
|
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
90
97
|
const vaultAddress = "0x3ac9...a5f132"
|
91
|
-
const accountAddress = "0xaaaa...aaaaaa"
|
92
|
-
const amount = 100
|
93
98
|
const dex = SupportedDex.UniswapV3
|
99
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
94
100
|
|
95
|
-
const
|
96
|
-
|
97
|
-
|
101
|
+
const amount0 = 100
|
102
|
+
const amount1 = 0
|
103
|
+
|
104
|
+
const txnDetails = await deposit(
|
105
|
+
accountAddress,
|
106
|
+
amount0, // can be 0 when only depositing amount1
|
107
|
+
amount1, // can be 0 when only depositing amount0
|
98
108
|
vaultAddress,
|
99
109
|
web3Provider,
|
100
110
|
dex,
|
101
|
-
|
102
|
-
)
|
111
|
+
1 // acceptable slippage (percents)
|
112
|
+
)
|
113
|
+
```
|
103
114
|
|
104
|
-
|
115
|
+
#### 3. `withdraw()`
|
105
116
|
|
106
|
-
|
107
|
-
|
117
|
+
| param | type | default | required
|
118
|
+
| -------- | -------- | -------- | --------
|
119
|
+
| accountAddress | string | - | true
|
120
|
+
| shares | string \| number | - | true
|
121
|
+
| vaultAddress | string | - | true
|
122
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
123
|
+
| dex | SupportedDex | - | true
|
124
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
125
|
+
|
126
|
+
<br/>
|
127
|
+
|
128
|
+
```typescript
|
129
|
+
import { Web3Provider } from '@ethersproject/providers';
|
130
|
+
import { getUserBalance, withdraw, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
131
|
+
|
132
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
133
|
+
const vaultAddress = "0x3ac9...a5f132"
|
134
|
+
const dex = SupportedDex.UniswapV3
|
135
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
136
|
+
|
137
|
+
const totalUserShares: string = await getUserBalance(
|
138
|
+
accountAddress,
|
139
|
+
vaultAddress,
|
140
|
+
web3Provider
|
141
|
+
dex,
|
142
|
+
)
|
143
|
+
|
144
|
+
let shares = Number(totalUserShare) * 0.5 // 50% of user deshare balance
|
145
|
+
|
146
|
+
const txnDetails = await withdraw(
|
147
|
+
accountAddress,
|
148
|
+
shares,
|
149
|
+
vaultAddress,
|
150
|
+
web3Provider,
|
151
|
+
dex
|
152
|
+
)
|
108
153
|
```
|
109
154
|
|
110
|
-
####
|
155
|
+
#### 4. `isDepositTokenApproved()`
|
111
156
|
|
112
157
|
| param | type | default | required
|
113
158
|
| -------- | -------- | -------- | --------
|
159
|
+
| accountAddress | string | - | true
|
114
160
|
| tokenIdx | 0 \| 1 | - | true
|
161
|
+
| amount | string \| number, | - | true |
|
115
162
|
| vaultAddress | string | - | true |
|
116
163
|
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
117
|
-
| dex | SupportedDex | - | true |
|
164
|
+
| dex | SupportedDex | - | true |
|
118
165
|
|
119
166
|
<br/>
|
120
167
|
|
121
168
|
```typescript
|
122
169
|
import { Web3Provider } from '@ethersproject/providers';
|
123
|
-
import {
|
170
|
+
import { isDepositTokenApproved, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
124
171
|
|
125
172
|
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
126
173
|
const vaultAddress = "0x3ac9...a5f132"
|
174
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
175
|
+
const amount = 100
|
127
176
|
const dex = SupportedDex.UniswapV3
|
128
177
|
|
129
|
-
const
|
178
|
+
const isToken0Approved: boolean = await isDepositTokenApproved(
|
179
|
+
accountAddress,
|
130
180
|
0, // token idx can be 0 or 1
|
181
|
+
amount,
|
131
182
|
vaultAddress,
|
132
183
|
web3Provider,
|
133
184
|
dex
|
134
185
|
)
|
135
|
-
|
136
186
|
```
|
137
187
|
|
138
|
-
####
|
188
|
+
#### 5. `isTokenAllowed()`
|
139
189
|
|
140
190
|
| param | type | default | required
|
141
191
|
| -------- | -------- | -------- | --------
|
@@ -148,13 +198,13 @@ const isAllowed = await isTokenAllowed(
|
|
148
198
|
|
149
199
|
```typescript
|
150
200
|
import { Web3Provider } from '@ethersproject/providers';
|
151
|
-
import {
|
201
|
+
import { isTokenAllowed, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
152
202
|
|
153
203
|
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
154
204
|
const vaultAddress = "0x3ac9...a5f132"
|
155
205
|
const dex = SupportedDex.UniswapV3
|
156
206
|
|
157
|
-
const
|
207
|
+
const isAllowed = await isTokenAllowed(
|
158
208
|
0, // token idx can be 0 or 1
|
159
209
|
vaultAddress,
|
160
210
|
web3Provider,
|
@@ -163,45 +213,35 @@ const maxAmount = await getMaxDepositAmount(
|
|
163
213
|
|
164
214
|
```
|
165
215
|
|
166
|
-
####
|
216
|
+
#### 6. `getMaxDepositAmount()`
|
167
217
|
|
168
218
|
| param | type | default | required
|
169
219
|
| -------- | -------- | -------- | --------
|
170
|
-
|
|
171
|
-
|
|
172
|
-
| amount1 | string \| number | - | true
|
173
|
-
| vaultAddress | string | - | true
|
220
|
+
| tokenIdx | 0 \| 1 | - | true
|
221
|
+
| vaultAddress | string | - | true |
|
174
222
|
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
175
|
-
| dex | SupportedDex | - | true
|
176
|
-
| percentSlippage | number | 1 | false
|
177
|
-
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
223
|
+
| dex | SupportedDex | - | true |
|
178
224
|
|
179
225
|
<br/>
|
180
226
|
|
181
227
|
```typescript
|
182
228
|
import { Web3Provider } from '@ethersproject/providers';
|
183
|
-
import {
|
229
|
+
import { getMaxDepositAmount, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
184
230
|
|
185
231
|
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
186
232
|
const vaultAddress = "0x3ac9...a5f132"
|
187
233
|
const dex = SupportedDex.UniswapV3
|
188
|
-
const accountAddress = "0xaaaa...aaaaaa"
|
189
234
|
|
190
|
-
const
|
191
|
-
|
192
|
-
|
193
|
-
const txnDetails = await deposit(
|
194
|
-
accountAddress,
|
195
|
-
amount0, // can be 0 when only depositing amount1
|
196
|
-
amount1, // can be 0 when only depositing amount0
|
235
|
+
const maxAmount = await getMaxDepositAmount(
|
236
|
+
0, // token idx can be 0 or 1
|
197
237
|
vaultAddress,
|
198
238
|
web3Provider,
|
199
|
-
dex
|
200
|
-
1 // acceptable slippage (percents)
|
239
|
+
dex
|
201
240
|
)
|
241
|
+
|
202
242
|
```
|
203
243
|
|
204
|
-
####
|
244
|
+
#### 7. `getUserBalance()`
|
205
245
|
|
206
246
|
| param | type | default | required
|
207
247
|
| -------- | -------- | -------- | --------
|
@@ -240,7 +280,7 @@ const sharesBN: BigNumber = await getUserBalance(
|
|
240
280
|
)
|
241
281
|
```
|
242
282
|
|
243
|
-
####
|
283
|
+
#### 8. `getUserAmounts()`
|
244
284
|
|
245
285
|
| param | type | default | required
|
246
286
|
| -------- | -------- | -------- | --------
|
@@ -279,7 +319,7 @@ const amountsBN: [BigNumber, BigNumber] & {amount0: BigNumber, amount1: BigNumbe
|
|
279
319
|
)
|
280
320
|
```
|
281
321
|
|
282
|
-
####
|
322
|
+
#### 9. `getTotalSupply()`
|
283
323
|
|
284
324
|
| param | type | default | required
|
285
325
|
| -------- | -------- | -------- | --------
|
@@ -316,7 +356,7 @@ const sharesBN: BigNumber = await getTotalSupply(
|
|
316
356
|
)
|
317
357
|
```
|
318
358
|
|
319
|
-
####
|
359
|
+
#### 10. `getTotalAmounts()`
|
320
360
|
|
321
361
|
| param | type | default | required
|
322
362
|
| -------- | -------- | -------- | --------
|
@@ -354,48 +394,58 @@ const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber}
|
|
354
394
|
)
|
355
395
|
```
|
356
396
|
|
357
|
-
####
|
397
|
+
#### 11. `getIchiVaultInfo()`
|
358
398
|
|
359
399
|
| param | type | default | required
|
360
400
|
| -------- | -------- | -------- | --------
|
361
|
-
|
|
362
|
-
| shares | string \| number | - | true
|
363
|
-
| vaultAddress | string | - | true
|
364
|
-
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
401
|
+
| chain | SupportedChain | - | true
|
365
402
|
| dex | SupportedDex | - | true
|
366
|
-
|
|
403
|
+
| vaultAddress | string | - | true |
|
367
404
|
|
368
405
|
<br/>
|
369
406
|
|
370
407
|
```typescript
|
371
408
|
import { Web3Provider } from '@ethersproject/providers';
|
372
|
-
import {
|
409
|
+
import { getIchiVaultInfo, SupportedDex, SupportedChain, IchiVault } from '@ichidao/ichi-vaults-sdk';
|
373
410
|
|
374
|
-
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
375
411
|
const vaultAddress = "0x3ac9...a5f132"
|
376
|
-
const dex = SupportedDex.UniswapV3
|
377
|
-
const
|
412
|
+
const dex = SupportedDex.UniswapV3;
|
413
|
+
const chain = SupportedChain.Polygon;
|
378
414
|
|
379
|
-
const
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
)
|
415
|
+
const vaultInfo = await getIchiVaultInfo(chain, dex, vaultAddress);
|
416
|
+
if (vaultInfo) {
|
417
|
+
const addressTokenA = vaultInfo.tokenA;
|
418
|
+
}
|
419
|
+
```
|
385
420
|
|
386
|
-
|
421
|
+
#### 12. `getVaultsByTokens()`
|
387
422
|
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
)
|
395
|
-
```
|
423
|
+
| param | type | default | required
|
424
|
+
| -------- | -------- | -------- | --------
|
425
|
+
| chain | SupportedChain | - | true
|
426
|
+
| dex | SupportedDex | - | true
|
427
|
+
| depositTokenAddress | string | - | true |
|
428
|
+
| pairedTokenAddress | string | - | true |
|
396
429
|
|
430
|
+
<br/>
|
397
431
|
|
432
|
+
```typescript
|
433
|
+
import { Web3Provider } from '@ethersproject/providers';
|
434
|
+
import { getVaultsByTokens, SupportedDex, SupportedChain, IchiVault } from '@ichidao/ichi-vaults-sdk';
|
435
|
+
|
436
|
+
const depositToken = "0x1b...bfd6"
|
437
|
+
const pairedToken = "0x11...c4d6"
|
438
|
+
const dex = SupportedDex.UniswapV3;
|
439
|
+
const chain = SupportedChain.Polygon;
|
440
|
+
|
441
|
+
const vault = await getVaultsByTokens(chain, dex, depositToken, pairedToken)
|
442
|
+
if (!vault) {
|
443
|
+
console.log("Couldn't find vaults with these parameters")
|
444
|
+
} else {
|
445
|
+
const vaultAddress = vault.id;
|
446
|
+
}
|
398
447
|
|
448
|
+
```
|
399
449
|
## Types
|
400
450
|
|
401
451
|
### SupportedChainId
|
@@ -418,3 +468,15 @@ enum SupportedDex {
|
|
418
468
|
Pancakeswap,
|
419
469
|
}
|
420
470
|
```
|
471
|
+
|
472
|
+
### IchiVault
|
473
|
+
|
474
|
+
```typescript
|
475
|
+
interface IchiVault {
|
476
|
+
id: string; // vault address
|
477
|
+
tokenA: string; // token0 address
|
478
|
+
tokenB: string; // token1 address
|
479
|
+
allowTokenA: boolean;
|
480
|
+
allowTokenB: boolean;
|
481
|
+
}
|
482
|
+
```
|
@@ -51,6 +51,7 @@ var index_1 = require("../index");
|
|
51
51
|
var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
52
52
|
var parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
|
53
53
|
var hdWalletProvider = new hdwallet_provider_1.default([process.env.PRIVATE_KEY], process.env.PROVIDER_URL, 0, 1);
|
54
|
+
// const jsonRpcProvider = new ethers.providers.JsonRpcProvider(process.env.PROVIDER_URL);
|
54
55
|
var provider = new providers_1.Web3Provider(hdWalletProvider, { chainId: types_1.SupportedChainId.polygon, name: 'polygon' });
|
55
56
|
var account = process.env.ACCOUNT;
|
56
57
|
var vault = {
|
@@ -58,6 +59,10 @@ var vault = {
|
|
58
59
|
chainId: types_1.SupportedChainId.polygon,
|
59
60
|
dex: types_1.SupportedDex.UniswapV3,
|
60
61
|
};
|
62
|
+
var tokens = {
|
63
|
+
pairedToken: '0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6',
|
64
|
+
depositToken: '0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6',
|
65
|
+
};
|
61
66
|
var iface = new ethers_1.ethers.utils.Interface(IchiVault_json_1.default);
|
62
67
|
var amount0 = '0.01';
|
63
68
|
var amount1 = '0';
|
@@ -234,5 +239,17 @@ describe('GraphQL', function () {
|
|
234
239
|
}
|
235
240
|
});
|
236
241
|
}); });
|
242
|
+
it('Get vaults by tokens', function () { return __awaiter(void 0, void 0, void 0, function () {
|
243
|
+
var a;
|
244
|
+
return __generator(this, function (_a) {
|
245
|
+
switch (_a.label) {
|
246
|
+
case 0: return [4 /*yield*/, (0, index_1.getVaultsByTokens)(vault.chainId, vault.dex, tokens.depositToken, tokens.pairedToken)];
|
247
|
+
case 1:
|
248
|
+
a = _a.sent();
|
249
|
+
expect(a).toBeTruthy();
|
250
|
+
return [2 /*return*/];
|
251
|
+
}
|
252
|
+
});
|
253
|
+
}); });
|
237
254
|
});
|
238
255
|
//# sourceMappingURL=index.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7B,yBAAuB;AAEvB,iFAA0D;AAC1D,sDAAwD;AACxD,iCAAgC;AAChC,kCAA0D;AAC1D,0EAAmD;AACnD,
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|
@@ -46,6 +46,7 @@ var ethers_1 = require("ethers");
|
|
46
46
|
var contracts_1 = require("../contracts");
|
47
47
|
var types_1 = require("../types");
|
48
48
|
var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
49
|
+
// eslint-disable-next-line import/no-cycle
|
49
50
|
var vault_1 = require("./vault");
|
50
51
|
function getTokenDecimals(tokenAddress, jsonProvider) {
|
51
52
|
return __awaiter(this, void 0, void 0, function () {
|
@@ -68,19 +69,20 @@ function getUserBalance(accountAddress, vaultAddress, jsonProvider, dex, raw) {
|
|
68
69
|
var chainId, vault, vaultContract, shares;
|
69
70
|
return __generator(this, function (_a) {
|
70
71
|
switch (_a.label) {
|
71
|
-
case 0:
|
72
|
-
|
72
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
73
|
+
case 1:
|
74
|
+
chainId = (_a.sent()).chainId;
|
73
75
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
74
76
|
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
75
77
|
}
|
76
78
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
77
|
-
case
|
79
|
+
case 2:
|
78
80
|
vault = _a.sent();
|
79
81
|
if (!vault)
|
80
82
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
81
83
|
vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
82
84
|
return [4 /*yield*/, vaultContract.balanceOf(accountAddress)];
|
83
|
-
case
|
85
|
+
case 3:
|
84
86
|
shares = _a.sent();
|
85
87
|
return [2 /*return*/, raw ? shares : (0, formatBigInt_1.default)(shares, types_1.ichiVaultDecimals)];
|
86
88
|
}
|
@@ -93,26 +95,27 @@ function getTotalAmounts(vaultAddress, jsonProvider, dex, raw) {
|
|
93
95
|
var chainId, vault, vaultContract, totalAmountsBN, token0Decimals, token1Decimals, totalAmounts;
|
94
96
|
return __generator(this, function (_a) {
|
95
97
|
switch (_a.label) {
|
96
|
-
case 0:
|
97
|
-
|
98
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
99
|
+
case 1:
|
100
|
+
chainId = (_a.sent()).chainId;
|
98
101
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
99
102
|
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
100
103
|
}
|
101
104
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
102
|
-
case
|
105
|
+
case 2:
|
103
106
|
vault = _a.sent();
|
104
107
|
if (!vault)
|
105
108
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
106
109
|
vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
107
110
|
return [4 /*yield*/, vaultContract.getTotalAmounts()];
|
108
|
-
case
|
111
|
+
case 3:
|
109
112
|
totalAmountsBN = _a.sent();
|
110
|
-
if (!!raw) return [3 /*break*/,
|
113
|
+
if (!!raw) return [3 /*break*/, 6];
|
111
114
|
return [4 /*yield*/, getTokenDecimals(vault.tokenA, jsonProvider)];
|
112
|
-
case
|
115
|
+
case 4:
|
113
116
|
token0Decimals = _a.sent();
|
114
117
|
return [4 /*yield*/, getTokenDecimals(vault.tokenB, jsonProvider)];
|
115
|
-
case
|
118
|
+
case 5:
|
116
119
|
token1Decimals = _a.sent();
|
117
120
|
totalAmounts = {
|
118
121
|
total0: (0, formatBigInt_1.default)(totalAmountsBN.total0, token0Decimals),
|
@@ -121,7 +124,7 @@ function getTotalAmounts(vaultAddress, jsonProvider, dex, raw) {
|
|
121
124
|
1: (0, formatBigInt_1.default)(totalAmountsBN.total1, token1Decimals),
|
122
125
|
};
|
123
126
|
return [2 /*return*/, totalAmounts];
|
124
|
-
case
|
127
|
+
case 6: return [2 /*return*/, totalAmountsBN];
|
125
128
|
}
|
126
129
|
});
|
127
130
|
});
|
@@ -132,19 +135,20 @@ function getTotalSupply(vaultAddress, jsonProvider, dex, raw) {
|
|
132
135
|
var chainId, vault, vaultContract, totalSupply;
|
133
136
|
return __generator(this, function (_a) {
|
134
137
|
switch (_a.label) {
|
135
|
-
case 0:
|
136
|
-
|
138
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
139
|
+
case 1:
|
140
|
+
chainId = (_a.sent()).chainId;
|
137
141
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
138
142
|
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
139
143
|
}
|
140
144
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
141
|
-
case
|
145
|
+
case 2:
|
142
146
|
vault = _a.sent();
|
143
147
|
if (!vault)
|
144
148
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
145
149
|
vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
146
150
|
return [4 /*yield*/, vaultContract.totalSupply()];
|
147
|
-
case
|
151
|
+
case 3:
|
148
152
|
totalSupply = _a.sent();
|
149
153
|
return [2 /*return*/, raw ? totalSupply : (0, formatBigInt_1.default)(totalSupply, types_1.ichiVaultDecimals)];
|
150
154
|
}
|
@@ -157,39 +161,40 @@ function getUserAmounts(accountAddress, vaultAddress, jsonProvider, dex, raw) {
|
|
157
161
|
var chainId, vaultContract, vault, totalAmountsBN, totalSupplyBN, userBalanceBN, userAmountsBN, token0Decimals, token1Decimals, userAmounts;
|
158
162
|
return __generator(this, function (_a) {
|
159
163
|
switch (_a.label) {
|
160
|
-
case 0:
|
161
|
-
|
164
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
165
|
+
case 1:
|
166
|
+
chainId = (_a.sent()).chainId;
|
162
167
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
163
168
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
164
169
|
}
|
165
170
|
vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
166
171
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
167
|
-
case
|
172
|
+
case 2:
|
168
173
|
vault = _a.sent();
|
169
174
|
if (!vault)
|
170
175
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
171
176
|
return [4 /*yield*/, getTotalAmounts(vaultAddress, jsonProvider, dex, true)];
|
172
|
-
case
|
177
|
+
case 3:
|
173
178
|
totalAmountsBN = _a.sent();
|
174
179
|
return [4 /*yield*/, vaultContract.totalSupply()];
|
175
|
-
case
|
180
|
+
case 4:
|
176
181
|
totalSupplyBN = _a.sent();
|
177
182
|
return [4 /*yield*/, getUserBalance(accountAddress, vaultAddress, jsonProvider, dex, true)];
|
178
|
-
case
|
183
|
+
case 5:
|
179
184
|
userBalanceBN = _a.sent();
|
180
|
-
if (!(totalSupplyBN !== ethers_1.BigNumber.from(0))) return [3 /*break*/,
|
185
|
+
if (!(totalSupplyBN !== ethers_1.BigNumber.from(0))) return [3 /*break*/, 10];
|
181
186
|
userAmountsBN = {
|
182
187
|
amount0: userBalanceBN.mul(totalAmountsBN[0]).div(totalSupplyBN),
|
183
188
|
amount1: userBalanceBN.mul(totalAmountsBN[1]).div(totalSupplyBN),
|
184
189
|
0: userBalanceBN.mul(totalAmountsBN[0]).div(totalSupplyBN),
|
185
190
|
1: userBalanceBN.mul(totalAmountsBN[1]).div(totalSupplyBN),
|
186
191
|
};
|
187
|
-
if (!!raw) return [3 /*break*/,
|
192
|
+
if (!!raw) return [3 /*break*/, 8];
|
188
193
|
return [4 /*yield*/, getTokenDecimals(vault.tokenA, jsonProvider)];
|
189
|
-
case
|
194
|
+
case 6:
|
190
195
|
token0Decimals = _a.sent();
|
191
196
|
return [4 /*yield*/, getTokenDecimals(vault.tokenB, jsonProvider)];
|
192
|
-
case
|
197
|
+
case 7:
|
193
198
|
token1Decimals = _a.sent();
|
194
199
|
userAmounts = {
|
195
200
|
amount0: (0, formatBigInt_1.default)(userAmountsBN.amount0, token0Decimals),
|
@@ -198,9 +203,9 @@ function getUserAmounts(accountAddress, vaultAddress, jsonProvider, dex, raw) {
|
|
198
203
|
1: (0, formatBigInt_1.default)(userAmountsBN.amount1, token1Decimals),
|
199
204
|
};
|
200
205
|
return [2 /*return*/, userAmounts];
|
201
|
-
case
|
202
|
-
case
|
203
|
-
case
|
206
|
+
case 8: return [2 /*return*/, userAmountsBN];
|
207
|
+
case 9: return [3 /*break*/, 11];
|
208
|
+
case 10:
|
204
209
|
if (!raw) {
|
205
210
|
return [2 /*return*/, {
|
206
211
|
amount0: '0',
|
@@ -217,8 +222,8 @@ function getUserAmounts(accountAddress, vaultAddress, jsonProvider, dex, raw) {
|
|
217
222
|
1: ethers_1.BigNumber.from(0),
|
218
223
|
}];
|
219
224
|
}
|
220
|
-
_a.label =
|
221
|
-
case
|
225
|
+
_a.label = 11;
|
226
|
+
case 11: return [2 /*return*/];
|
222
227
|
}
|
223
228
|
});
|
224
229
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/functions/balances.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGjD,iCAAmC;AACnC,0CAAsE;AACtE,kCAQkB;AAClB,uEAAiD;AACjD,iCAA2C;AAE3C,SAAsB,gBAAgB,CAAC,YAAoB,EAAE,YAA6B;;;;;;oBAClF,aAAa,GAAG,IAAA,4BAAgB,EAAC,YAAY,EAAE,YAAY,CAAC,CAAC;oBAC7C,qBAAM,aAAa,CAAC,QAAQ,EAAE,EAAA;;oBAA9C,aAAa,GAAG,SAA8B;oBACpD,sBAAO,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,EAAC;;;;CAC5B;AAJD,4CAIC;AAiBD,SAAsB,cAAc,CAClC,cAAsB,EACtB,YAAoB,EACpB,YAA6B,EAC7B,GAAiB,EACjB,GAAU
|
1
|
+
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/functions/balances.ts"],"names":[],"mappings":"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"}
|
@@ -58,6 +58,7 @@ var parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
|
|
58
58
|
var types_1 = require("../types");
|
59
59
|
var calculateGasMargin_1 = __importDefault(require("../types/calculateGasMargin"));
|
60
60
|
var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
61
|
+
// eslint-disable-next-line import/no-cycle
|
61
62
|
var vault_1 = require("./vault");
|
62
63
|
var addresses_1 = __importDefault(require("../utils/config/addresses"));
|
63
64
|
function isTokenAllowed(tokenIdx, vaultAddress, jsonProvider, dex) {
|
@@ -65,13 +66,14 @@ function isTokenAllowed(tokenIdx, vaultAddress, jsonProvider, dex) {
|
|
65
66
|
var chainId, vault, tokenAllowed;
|
66
67
|
return __generator(this, function (_a) {
|
67
68
|
switch (_a.label) {
|
68
|
-
case 0:
|
69
|
-
|
69
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
70
|
+
case 1:
|
71
|
+
chainId = (_a.sent()).chainId;
|
70
72
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
71
73
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
72
74
|
}
|
73
75
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
74
|
-
case
|
76
|
+
case 2:
|
75
77
|
vault = _a.sent();
|
76
78
|
if (!vault)
|
77
79
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
@@ -87,24 +89,25 @@ function isDepositTokenApproved(accountAddress, tokenIdx, amount, vaultAddress,
|
|
87
89
|
var chainId, signer, vault, token, tokenContract, currentAllowanceBN, tokenDecimals, currentAllowance;
|
88
90
|
return __generator(this, function (_a) {
|
89
91
|
switch (_a.label) {
|
90
|
-
case 0:
|
91
|
-
|
92
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
93
|
+
case 1:
|
94
|
+
chainId = (_a.sent()).chainId;
|
92
95
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
93
96
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
94
97
|
}
|
95
98
|
signer = jsonProvider.getSigner(accountAddress);
|
96
99
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
97
|
-
case
|
100
|
+
case 2:
|
98
101
|
vault = _a.sent();
|
99
102
|
if (!vault)
|
100
103
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
101
104
|
token = vault[tokenIdx === 0 ? 'tokenA' : 'tokenB'];
|
102
105
|
tokenContract = (0, contracts_1.getERC20Contract)(token, signer);
|
103
106
|
return [4 /*yield*/, tokenContract.allowance(accountAddress, vaultAddress)];
|
104
|
-
case
|
107
|
+
case 3:
|
105
108
|
currentAllowanceBN = _a.sent();
|
106
109
|
return [4 /*yield*/, tokenContract.decimals()];
|
107
|
-
case
|
110
|
+
case 4:
|
108
111
|
tokenDecimals = _a.sent();
|
109
112
|
currentAllowance = +(0, formatBigInt_1.default)(currentAllowanceBN, +tokenDecimals);
|
110
113
|
return [2 /*return*/, currentAllowance !== 0 && currentAllowance >= +(amount !== null && amount !== void 0 ? amount : 0)];
|
@@ -119,21 +122,22 @@ function approveDepositToken(accountAddress, tokenIdx, vaultAddress, jsonProvide
|
|
119
122
|
var chainId, signer, vault, token, tokenContract, tokenDecimals, amountBN, depositGuardAddress, gasLimit, _d, _e;
|
120
123
|
return __generator(this, function (_f) {
|
121
124
|
switch (_f.label) {
|
122
|
-
case 0:
|
123
|
-
|
125
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
126
|
+
case 1:
|
127
|
+
chainId = (_f.sent()).chainId;
|
124
128
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
125
129
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
126
130
|
}
|
127
131
|
signer = jsonProvider.getSigner(accountAddress);
|
128
132
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
129
|
-
case
|
133
|
+
case 2:
|
130
134
|
vault = _f.sent();
|
131
135
|
if (!vault)
|
132
136
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
133
137
|
token = vault[tokenIdx === 0 ? 'tokenA' : 'tokenB'];
|
134
138
|
tokenContract = (0, contracts_1.getERC20Contract)(token, signer);
|
135
139
|
return [4 /*yield*/, tokenContract.decimals()];
|
136
|
-
case
|
140
|
+
case 3:
|
137
141
|
tokenDecimals = _f.sent();
|
138
142
|
amountBN = amount
|
139
143
|
? amount instanceof ethers_1.BigNumber
|
@@ -141,16 +145,16 @@ function approveDepositToken(accountAddress, tokenIdx, vaultAddress, jsonProvide
|
|
141
145
|
: (0, parseBigInt_1.default)(amount, +tokenDecimals || 18)
|
142
146
|
: constants_1.MaxUint256;
|
143
147
|
depositGuardAddress = (_b = (_a = addresses_1.default[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuardAddress) !== null && _b !== void 0 ? _b : '';
|
144
|
-
if (!((_c = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _c !== void 0)) return [3 /*break*/,
|
148
|
+
if (!((_c = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _c !== void 0)) return [3 /*break*/, 4];
|
145
149
|
_d = _c;
|
146
|
-
return [3 /*break*/,
|
147
|
-
case
|
150
|
+
return [3 /*break*/, 6];
|
151
|
+
case 4:
|
148
152
|
_e = calculateGasMargin_1.default;
|
149
153
|
return [4 /*yield*/, tokenContract.estimateGas.approve(depositGuardAddress, amountBN)];
|
150
|
-
case 4:
|
151
|
-
_d = _e.apply(void 0, [_f.sent()]);
|
152
|
-
_f.label = 5;
|
153
154
|
case 5:
|
155
|
+
_d = _e.apply(void 0, [_f.sent()]);
|
156
|
+
_f.label = 6;
|
157
|
+
case 6:
|
154
158
|
gasLimit = _d;
|
155
159
|
return [2 /*return*/, tokenContract.approve(depositGuardAddress, amountBN, { gasLimit: gasLimit })];
|
156
160
|
}
|
@@ -163,13 +167,14 @@ function getMaxDepositAmount(tokenIdx, vaultAddress, jsonProvider, dex) {
|
|
163
167
|
var chainId, vault, vaultContract, maxDepositAmount;
|
164
168
|
return __generator(this, function (_a) {
|
165
169
|
switch (_a.label) {
|
166
|
-
case 0:
|
167
|
-
|
170
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
171
|
+
case 1:
|
172
|
+
chainId = (_a.sent()).chainId;
|
168
173
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
169
174
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
170
175
|
}
|
171
176
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
172
|
-
case
|
177
|
+
case 2:
|
173
178
|
vault = _a.sent();
|
174
179
|
if (!vault)
|
175
180
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
@@ -188,14 +193,15 @@ function deposit(accountAddress, amount0, amount1, vaultAddress, jsonProvider, d
|
|
188
193
|
var chainId, signer, vault, vaultDeployerAddress, token0, token1, isToken0Allowed, isToken1Allowed, token0Contract, token1Contract, token0Decimals, token1Decimals, amount0BN, amount1BN, depositAmount, depositToken, depositGuardAddress, depositGuardContract, lpAmount, gasLimit, _f, _g, tx;
|
189
194
|
return __generator(this, function (_h) {
|
190
195
|
switch (_h.label) {
|
191
|
-
case 0:
|
192
|
-
|
196
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
197
|
+
case 1:
|
198
|
+
chainId = (_h.sent()).chainId;
|
193
199
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
194
200
|
throw new Error("Unsupported chainId: ".concat(chainId));
|
195
201
|
}
|
196
202
|
signer = jsonProvider.getSigner(accountAddress);
|
197
203
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
198
|
-
case
|
204
|
+
case 2:
|
199
205
|
vault = _h.sent();
|
200
206
|
if (!vault)
|
201
207
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
@@ -207,10 +213,10 @@ function deposit(accountAddress, amount0, amount1, vaultAddress, jsonProvider, d
|
|
207
213
|
token0Contract = (0, contracts_1.getERC20Contract)(token0, signer);
|
208
214
|
token1Contract = (0, contracts_1.getERC20Contract)(token1, signer);
|
209
215
|
return [4 /*yield*/, token0Contract.decimals()];
|
210
|
-
case
|
216
|
+
case 3:
|
211
217
|
token0Decimals = _h.sent();
|
212
218
|
return [4 /*yield*/, token1Contract.decimals()];
|
213
|
-
case
|
219
|
+
case 4:
|
214
220
|
token1Decimals = _h.sent();
|
215
221
|
amount0BN = amount0 instanceof ethers_1.BigNumber ? amount0 : (0, parseBigInt_1.default)(amount0, +token0Decimals);
|
216
222
|
amount1BN = amount1 instanceof ethers_1.BigNumber ? amount1 : (0, parseBigInt_1.default)(amount1, +token1Decimals);
|
@@ -229,7 +235,7 @@ function deposit(accountAddress, amount0, amount1, vaultAddress, jsonProvider, d
|
|
229
235
|
depositGuardAddress = (_d = (_c = addresses_1.default[chainId][dex]) === null || _c === void 0 ? void 0 : _c.depositGuardAddress) !== null && _d !== void 0 ? _d : '';
|
230
236
|
depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
|
231
237
|
return [4 /*yield*/, depositGuardContract.callStatic.forwardDepositToICHIVault(vaultAddress, vaultDeployerAddress, depositToken, depositAmount, ethers_1.BigNumber.from(0), accountAddress)];
|
232
|
-
case
|
238
|
+
case 5:
|
233
239
|
lpAmount = _h.sent();
|
234
240
|
// reduce the estimated LP amount by an acceptable slippage %, for example 1%
|
235
241
|
if (percentSlippage < 0.01)
|
@@ -237,19 +243,19 @@ function deposit(accountAddress, amount0, amount1, vaultAddress, jsonProvider, d
|
|
237
243
|
if (percentSlippage > 100)
|
238
244
|
throw new Error('Slippage parameter is more than 100%.');
|
239
245
|
lpAmount = lpAmount.mul(Math.floor((100 - percentSlippage) * 1000)).div(100000);
|
240
|
-
if (!((_e = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _e !== void 0)) return [3 /*break*/,
|
246
|
+
if (!((_e = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _e !== void 0)) return [3 /*break*/, 6];
|
241
247
|
_f = _e;
|
242
|
-
return [3 /*break*/,
|
243
|
-
case
|
248
|
+
return [3 /*break*/, 8];
|
249
|
+
case 6:
|
244
250
|
_g = calculateGasMargin_1.default;
|
245
251
|
return [4 /*yield*/, depositGuardContract.estimateGas.forwardDepositToICHIVault(vaultAddress, vaultDeployerAddress, depositToken, depositAmount, lpAmount, accountAddress)];
|
246
|
-
case 6:
|
247
|
-
_f = _g.apply(void 0, [_h.sent()]);
|
248
|
-
_h.label = 7;
|
249
252
|
case 7:
|
253
|
+
_f = _g.apply(void 0, [_h.sent()]);
|
254
|
+
_h.label = 8;
|
255
|
+
case 8:
|
250
256
|
gasLimit = _f;
|
251
257
|
return [4 /*yield*/, depositGuardContract.forwardDepositToICHIVault(vaultAddress, vaultDeployerAddress, depositToken, depositAmount, lpAmount, accountAddress, __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
|
252
|
-
case
|
258
|
+
case 9:
|
253
259
|
tx = _h.sent();
|
254
260
|
return [2 /*return*/, tx];
|
255
261
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/functions/deposit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,sDAAsD;AACtD,iCAAmC;AACnC,0CAA+F;AAC/F,qEAA+C;AAC/C,kCAA0D;AAC1D,mFAA6D;AAC7D,uEAAiD;AACjD,iCAA2C;AAC3C,wEAAsD;AAEtD,SAAsB,cAAc,CAClC,QAAe,EACf,YAAoB,EACpB,YAA6B,EAC7B,GAAiB
|
1
|
+
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/functions/deposit.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
1
|
import { SupportedDex, SupportedChainId } from '../types';
|
2
|
-
import { VaultQueryData } from '../types/vaultQueryData';
|
2
|
+
import { VaultQueryData, VaultsByTokensQueryData } from '../types/vaultQueryData';
|
3
3
|
export declare function getIchiVaultInfo(chainId: SupportedChainId, dex: SupportedDex, vaultAddress: string): Promise<VaultQueryData['ichiVault']>;
|
4
|
+
export declare function getVaultsByTokens(chainId: SupportedChainId, dex: SupportedDex, depositTokenAddress: string, pairedTokenAddress: string): Promise<VaultsByTokensQueryData['ichiVaults']>;
|
@@ -39,9 +39,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
39
39
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
40
40
|
}
|
41
41
|
};
|
42
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
43
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
44
|
+
if (ar || !(i in from)) {
|
45
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
46
|
+
ar[i] = from[i];
|
47
|
+
}
|
48
|
+
}
|
49
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
50
|
+
};
|
42
51
|
var _a, _b, _c, _d, _e;
|
43
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
44
|
-
exports.getIchiVaultInfo = void 0;
|
53
|
+
exports.getVaultsByTokens = exports.getIchiVaultInfo = void 0;
|
45
54
|
// eslint-disable-next-line import/no-unresolved
|
46
55
|
var graphql_request_1 = require("graphql-request");
|
47
56
|
var types_1 = require("../types");
|
@@ -62,6 +71,7 @@ var urls = (_a = {},
|
|
62
71
|
_e),
|
63
72
|
_a);
|
64
73
|
var vaultQuery = (0, graphql_request_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query ($vaultAddress: String!) {\n ichiVault(id: $vaultAddress) {\n id\n tokenA\n tokenB\n allowTokenA\n allowTokenB\n }\n }\n"], ["\n query ($vaultAddress: String!) {\n ichiVault(id: $vaultAddress) {\n id\n tokenA\n tokenB\n allowTokenA\n allowTokenB\n }\n }\n"])));
|
74
|
+
var vaultByTokensQuery = (0, graphql_request_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query ($addressTokenA: String!, $addressTokenB: String!) {\n ichiVaults(where: { tokenA: $addressTokenA, tokenB: $addressTokenB }) {\n id\n tokenA\n tokenB\n allowTokenA\n allowTokenB\n }\n }\n"], ["\n query ($addressTokenA: String!, $addressTokenB: String!) {\n ichiVaults(where: { tokenA: $addressTokenA, tokenB: $addressTokenB }) {\n id\n tokenA\n tokenB\n allowTokenA\n allowTokenB\n }\n }\n"])));
|
65
75
|
// eslint-disable-next-line import/prefer-default-export
|
66
76
|
function getIchiVaultInfo(chainId, dex, vaultAddress) {
|
67
77
|
return __awaiter(this, void 0, void 0, function () {
|
@@ -92,5 +102,55 @@ function getIchiVaultInfo(chainId, dex, vaultAddress) {
|
|
92
102
|
});
|
93
103
|
}
|
94
104
|
exports.getIchiVaultInfo = getIchiVaultInfo;
|
95
|
-
|
105
|
+
function getVaultsByTokens(chainId, dex, depositTokenAddress, pairedTokenAddress) {
|
106
|
+
return __awaiter(this, void 0, void 0, function () {
|
107
|
+
var url, addressTokenA, addressTokenB, key1, arrVaults1, key2, arrVaults2;
|
108
|
+
return __generator(this, function (_a) {
|
109
|
+
switch (_a.label) {
|
110
|
+
case 0:
|
111
|
+
url = urls[chainId][dex];
|
112
|
+
if (!url)
|
113
|
+
throw new Error("Unsupported DEX ".concat(dex, " on chain ").concat(chainId));
|
114
|
+
addressTokenA = depositTokenAddress;
|
115
|
+
addressTokenB = pairedTokenAddress;
|
116
|
+
key1 = "".concat(addressTokenA, "-").concat(addressTokenB);
|
117
|
+
if (Object.prototype.hasOwnProperty.call(promises, key1))
|
118
|
+
return [2 /*return*/, promises[key1]];
|
119
|
+
promises[key1] = (0, graphql_request_1.request)(url, vaultByTokensQuery, {
|
120
|
+
addressTokenA: addressTokenA,
|
121
|
+
addressTokenB: addressTokenB,
|
122
|
+
})
|
123
|
+
.then(function (_a) {
|
124
|
+
var ichiVaults = _a.ichiVaults;
|
125
|
+
return ichiVaults;
|
126
|
+
})
|
127
|
+
.finally(function () { return setTimeout(function () { return delete promises[key1]; }, 2 * 60 * 100 /* 2 mins */); });
|
128
|
+
return [4 /*yield*/, promises[key1]];
|
129
|
+
case 1:
|
130
|
+
arrVaults1 = (_a.sent()).filter(function (v) { return v.allowTokenA; });
|
131
|
+
addressTokenA = pairedTokenAddress;
|
132
|
+
addressTokenB = depositTokenAddress;
|
133
|
+
key2 = "".concat(addressTokenA, "-").concat(addressTokenB);
|
134
|
+
if (Object.prototype.hasOwnProperty.call(promises, key2))
|
135
|
+
return [2 /*return*/, promises[key2]];
|
136
|
+
promises[key2] = (0, graphql_request_1.request)(url, vaultByTokensQuery, {
|
137
|
+
addressTokenA: addressTokenA,
|
138
|
+
addressTokenB: addressTokenB,
|
139
|
+
})
|
140
|
+
.then(function (_a) {
|
141
|
+
var ichiVaults = _a.ichiVaults;
|
142
|
+
return ichiVaults;
|
143
|
+
})
|
144
|
+
.finally(function () { return setTimeout(function () { return delete promises[key2]; }, 2 * 60 * 100 /* 2 mins */); });
|
145
|
+
return [4 /*yield*/, promises[key2]];
|
146
|
+
case 2:
|
147
|
+
arrVaults2 = (_a.sent()).filter(function (v) { return v.allowTokenB; });
|
148
|
+
// eslint-disable-next-line no-return-await
|
149
|
+
return [2 /*return*/, __spreadArray(__spreadArray([], arrVaults1, true), arrVaults2, true)];
|
150
|
+
}
|
151
|
+
});
|
152
|
+
});
|
153
|
+
}
|
154
|
+
exports.getVaultsByTokens = getVaultsByTokens;
|
155
|
+
var templateObject_1, templateObject_2;
|
96
156
|
//# sourceMappingURL=vault.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/functions/vault.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/functions/vault.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,mDAA+C;AAC/C,kCAAqE;AAIrE,IAAM,QAAQ,GAAiC,EAAE,CAAC;AAOlD,IAAM,IAAI;IACR,GAAC,wBAAgB,CAAC,QAAQ;QACxB,GAAC,oBAAY,CAAC,SAAS,IAAG,8DAA8D;WACzF;IACD,GAAC,wBAAgB,CAAC,OAAO;QACvB,GAAC,oBAAY,CAAC,SAAS,IAAG,6DAA6D;WACxF;IACD,GAAC,wBAAgB,CAAC,OAAO;QACvB,GAAC,oBAAY,CAAC,SAAS,IAAG,6DAA6D;QACvF,GAAC,oBAAY,CAAC,KAAK,IAAG,mEAAmE;WAC1F;IACD,GAAC,wBAAgB,CAAC,GAAG;QACnB,GAAC,oBAAY,CAAC,WAAW,IAAG,qEAAqE;WAClG;OACF,CAAC;AAEF,IAAM,UAAU,OAAG,qBAAG,wOAAA,oKAUrB,IAAA,CAAC;AAEF,IAAM,kBAAkB,OAAG,qBAAG,2SAAA,uOAU7B,IAAA,CAAC;AAEF,wDAAwD;AACxD,SAAsB,gBAAgB,CACpC,OAAyB,EACzB,GAAiB,EACjB,YAAoB;;;;;;oBAEd,GAAG,GAAG,UAAG,OAAO,GAAG,YAAY,UAAO,CAAC;oBAE7C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;wBAAE,sBAAO,QAAQ,CAAC,GAAG,CAAC,EAAC;oBAExE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,CAAC,GAAG;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAAmB,GAAG,uBAAa,OAAO,CAAE,CAAC,CAAC;oBAExE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAA,yBAAO,EAA2C,GAAG,EAAE,UAAU,EAAE;wBACjF,YAAY,cAAA;qBACb,CAAC;yBACC,IAAI,CAAC,UAAC,EAAa;4BAAX,SAAS,eAAA;wBAAO,OAAA,SAAS;oBAAT,CAAS,CAAC;yBAClC,OAAO,CAAC,cAAM,OAAA,UAAU,CAAC,cAAM,OAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,EAApB,CAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAjE,CAAiE,CAAC,CAAC;oBAG7E,qBAAM,QAAQ,CAAC,GAAG,CAAC,EAAA;;gBAD1B,2CAA2C;gBAC3C,sBAAO,SAAmB,EAAC;;;;CAC5B;AApBD,4CAoBC;AAED,SAAsB,iBAAiB,CACrC,OAAyB,EACzB,GAAiB,EACjB,mBAA2B,EAC3B,kBAA0B;;;;;;oBAEpB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,CAAC,GAAG;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAAmB,GAAG,uBAAa,OAAO,CAAE,CAAC,CAAC;oBAEpE,aAAa,GAAG,mBAAmB,CAAC;oBACpC,aAAa,GAAG,kBAAkB,CAAC;oBAEjC,IAAI,GAAG,UAAG,aAAa,cAAI,aAAa,CAAE,CAAC;oBACjD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAAE,sBAAO,QAAQ,CAAC,IAAI,CAAC,EAAC;oBAEhF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,yBAAO,EACtB,GAAG,EACH,kBAAkB,EAClB;wBACE,aAAa,eAAA;wBACb,aAAa,eAAA;qBACd,CACF;yBACE,IAAI,CAAC,UAAC,EAAc;4BAAZ,UAAU,gBAAA;wBAAO,OAAA,UAAU;oBAAV,CAAU,CAAC;yBACpC,OAAO,CAAC,cAAM,OAAA,UAAU,CAAC,cAAM,OAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,EAArB,CAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAlE,CAAkE,CAAC,CAAC;oBAEhE,qBAAM,QAAQ,CAAC,IAAI,CAAC,EAAA;;oBAAnC,UAAU,GAAI,CAAC,SAAoB,CAAW,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAC,CAAe,CAAC,WAAW,EAA5B,CAA4B,CAAC;oBAEhG,aAAa,GAAG,kBAAkB,CAAC;oBACnC,aAAa,GAAG,mBAAmB,CAAC;oBAE9B,IAAI,GAAG,UAAG,aAAa,cAAI,aAAa,CAAE,CAAC;oBACjD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAAE,sBAAO,QAAQ,CAAC,IAAI,CAAC,EAAC;oBAEhF,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAA,yBAAO,EACtB,GAAG,EACH,kBAAkB,EAClB;wBACE,aAAa,eAAA;wBACb,aAAa,eAAA;qBACd,CACF;yBACE,IAAI,CAAC,UAAC,EAAc;4BAAZ,UAAU,gBAAA;wBAAO,OAAA,UAAU;oBAAV,CAAU,CAAC;yBACpC,OAAO,CAAC,cAAM,OAAA,UAAU,CAAC,cAAM,OAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,EAArB,CAAqB,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,EAAlE,CAAkE,CAAC,CAAC;oBAEhE,qBAAM,QAAQ,CAAC,IAAI,CAAC,EAAA;;oBAAnC,UAAU,GAAI,CAAC,SAAoB,CAAW,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAC,CAAe,CAAC,WAAW,EAA5B,CAA4B,CAAC;oBAEhG,2CAA2C;oBAC3C,sDAAW,UAAU,SAAK,UAAU,SAAE;;;;CACvC;AAjDD,8CAiDC"}
|
@@ -57,6 +57,7 @@ var contracts_1 = require("../contracts");
|
|
57
57
|
var parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
|
58
58
|
var types_1 = require("../types");
|
59
59
|
var calculateGasMargin_1 = __importDefault(require("../types/calculateGasMargin"));
|
60
|
+
// eslint-disable-next-line import/no-cycle
|
60
61
|
var vault_1 = require("./vault");
|
61
62
|
function withdraw(accountAddress, shares, vaultAddress, jsonProvider, dex, overrides) {
|
62
63
|
var _a;
|
@@ -65,15 +66,16 @@ function withdraw(accountAddress, shares, vaultAddress, jsonProvider, dex, overr
|
|
65
66
|
var _d;
|
66
67
|
return __generator(this, function (_e) {
|
67
68
|
switch (_e.label) {
|
68
|
-
case 0:
|
69
|
-
|
69
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
70
|
+
case 1:
|
71
|
+
chainId = (_e.sent()).chainId;
|
70
72
|
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
71
73
|
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
72
74
|
}
|
73
75
|
signer = jsonProvider.getSigner(accountAddress);
|
74
76
|
vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, signer);
|
75
77
|
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress)];
|
76
|
-
case
|
78
|
+
case 2:
|
77
79
|
vault = _e.sent();
|
78
80
|
if (!vault)
|
79
81
|
throw new Error("Vault not found [".concat(chainId, ", ").concat(vaultAddress, "]"));
|
@@ -81,16 +83,16 @@ function withdraw(accountAddress, shares, vaultAddress, jsonProvider, dex, overr
|
|
81
83
|
shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18),
|
82
84
|
accountAddress,
|
83
85
|
];
|
84
|
-
if (!((_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0)) return [3 /*break*/,
|
86
|
+
if (!((_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0)) return [3 /*break*/, 3];
|
85
87
|
_b = _a;
|
86
|
-
return [3 /*break*/,
|
87
|
-
case
|
88
|
+
return [3 /*break*/, 5];
|
89
|
+
case 3:
|
88
90
|
_c = calculateGasMargin_1.default;
|
89
91
|
return [4 /*yield*/, (_d = vaultContract.estimateGas).withdraw.apply(_d, params)];
|
90
|
-
case 3:
|
91
|
-
_b = _c.apply(void 0, [_e.sent()]);
|
92
|
-
_e.label = 4;
|
93
92
|
case 4:
|
93
|
+
_b = _c.apply(void 0, [_e.sent()]);
|
94
|
+
_e.label = 5;
|
95
|
+
case 5:
|
94
96
|
gasLimit = _b;
|
95
97
|
params[2] = __assign(__assign({}, overrides), { gasLimit: gasLimit });
|
96
98
|
return [2 /*return*/, vaultContract.withdraw.apply(vaultContract, params)];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjD,iCAAmC;AACnC,0CAAoD;AACpD,qEAA+C;AAC/C,kCAA0D;AAC1D,mFAA6D;AAC7D,iCAA2C;AAE3C,SAAsB,QAAQ,CAC5B,cAAsB,EACtB,MAAmC,EACnC,YAAoB,EACpB,YAA6B,EAC7B,GAAiB,EACjB,SAAqB
|
1
|
+
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIjD,iCAAmC;AACnC,0CAAoD;AACpD,qEAA+C;AAC/C,kCAA0D;AAC1D,mFAA6D;AAC7D,2CAA2C;AAC3C,iCAA2C;AAE3C,SAAsB,QAAQ,CAC5B,cAAsB,EACtB,MAAmC,EACnC,YAAoB,EACpB,YAA6B,EAC7B,GAAiB,EACjB,SAAqB;;;;;;;wBAED,qBAAM,YAAY,CAAC,UAAU,EAAE,EAAA;;oBAA3C,OAAO,GAAK,CAAA,SAA+B,CAAA,QAApC;oBAEf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;wBACtD,MAAM,IAAI,KAAK,CAAC,+BAAwB,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,WAAW,CAAE,CAAC,CAAC;qBACnE;oBAEK,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAEhD,aAAa,GAAG,IAAA,gCAAoB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBACnD,qBAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAA;;oBAA1D,KAAK,GAAG,SAAkD;oBAChE,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,2BAAoB,OAAO,eAAK,YAAY,MAAG,CAAC,CAAC;oBAEvE,MAAM,GAA8C;wBACxD,MAAM,YAAY,kBAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,MAAM,EAAE,EAAE,CAAC;wBAC9D,cAAc;qBACf,CAAC;gCAEe,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ;;;;oBAAI,KAAA,4BAAkB,CAAA;oBAAC,qBAAM,CAAA,KAAA,aAAa,CAAC,WAAW,CAAA,CAAC,QAAQ,WAAI,MAAM,GAAC;;oBAAtE,KAAA,kBAAmB,SAAmD,EAAC,CAAA;;;oBAAzG,QAAQ,KAAiG;oBAE/G,MAAM,CAAC,CAAC,CAAC,yBAAQ,SAAS,KAAE,QAAQ,UAAA,GAAE,CAAC;oBAEvC,sBAAO,aAAa,CAAC,QAAQ,OAAtB,aAAa,EAAa,MAAM,GAAE;;;;CAC1C;AA9BD,4BA8BC"}
|
package/dist/src/index.cjs.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
/**
|
3
3
|
* @license
|
4
4
|
* author: ICHI DAO <core@ichi.org>
|
5
|
-
* ichi-vaults-sdk.js v0.0.
|
5
|
+
* ichi-vaults-sdk.js v0.0.2
|
6
6
|
* Released under the MIT license.
|
7
7
|
*/
|
8
8
|
|
@@ -11,6 +11,7 @@
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
var tslib_1 = require("tslib");
|
13
13
|
/* eslint-disable import/prefer-default-export */
|
14
|
+
// eslint-disable-next-line import/no-cycle
|
14
15
|
tslib_1.__exportStar(require("./functions/balances"), exports);
|
15
16
|
tslib_1.__exportStar(require("./functions/deposit"), exports);
|
16
17
|
tslib_1.__exportStar(require("./functions/withdraw"), exports);
|
package/dist/src/index.esm.js
CHANGED
@@ -2,13 +2,14 @@
|
|
2
2
|
/**
|
3
3
|
* @license
|
4
4
|
* author: ICHI DAO <core@ichi.org>
|
5
|
-
* ichi-vaults-sdk.js v0.0.
|
5
|
+
* ichi-vaults-sdk.js v0.0.2
|
6
6
|
* Released under the MIT license.
|
7
7
|
*/
|
8
8
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
10
10
|
var tslib_1 = require("tslib");
|
11
11
|
/* eslint-disable import/prefer-default-export */
|
12
|
+
// eslint-disable-next-line import/no-cycle
|
12
13
|
tslib_1.__exportStar(require("./functions/balances"), exports);
|
13
14
|
tslib_1.__exportStar(require("./functions/deposit"), exports);
|
14
15
|
tslib_1.__exportStar(require("./functions/withdraw"), exports);
|
package/dist/src/index.js
CHANGED
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
17
|
/* eslint-disable import/prefer-default-export */
|
18
|
+
// eslint-disable-next-line import/no-cycle
|
18
19
|
__exportStar(require("./functions/balances"), exports);
|
19
20
|
__exportStar(require("./functions/deposit"), exports);
|
20
21
|
__exportStar(require("./functions/withdraw"), exports);
|
package/dist/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,uDAAqC;AACrC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAClC,gDAA8B"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,2CAA2C;AAC3C,uDAAqC;AACrC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAClC,gDAA8B"}
|
@@ -1,3 +1,4 @@
|
|
1
1
|
import { SupportedDex, SupportedChainId } from '../types';
|
2
|
-
import { VaultQueryData } from '../types/vaultQueryData';
|
2
|
+
import { VaultQueryData, VaultsByTokensQueryData } from '../types/vaultQueryData';
|
3
3
|
export declare function getIchiVaultInfo(chainId: SupportedChainId, dex: SupportedDex, vaultAddress: string): Promise<VaultQueryData['ichiVault']>;
|
4
|
+
export declare function getVaultsByTokens(chainId: SupportedChainId, dex: SupportedDex, depositTokenAddress: string, pairedTokenAddress: string): Promise<VaultsByTokensQueryData['ichiVaults']>;
|
@@ -1,10 +1,7 @@
|
|
1
|
-
|
2
|
-
id: string;
|
3
|
-
tokenA: string;
|
4
|
-
tokenB: string;
|
5
|
-
allowTokenA: boolean;
|
6
|
-
allowTokenB: boolean;
|
7
|
-
}
|
1
|
+
import { IchiVault } from '..';
|
8
2
|
export interface VaultQueryData {
|
9
3
|
ichiVault: IchiVault;
|
10
4
|
}
|
5
|
+
export interface VaultsByTokensQueryData {
|
6
|
+
ichiVaults: IchiVault[];
|
7
|
+
}
|
@@ -1,10 +1,7 @@
|
|
1
|
-
|
2
|
-
id: string;
|
3
|
-
tokenA: string;
|
4
|
-
tokenB: string;
|
5
|
-
allowTokenA: boolean;
|
6
|
-
allowTokenB: boolean;
|
7
|
-
}
|
1
|
+
import { IchiVault } from '..';
|
8
2
|
export interface VaultQueryData {
|
9
3
|
ichiVault: IchiVault;
|
10
4
|
}
|
5
|
+
export interface VaultsByTokensQueryData {
|
6
|
+
ichiVaults: IchiVault[];
|
7
|
+
}
|