@dhedge/v2-sdk 2.1.0 → 2.1.1
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/dist/v2-sdk.cjs.development.js +9 -2
- package/dist/v2-sdk.cjs.development.js.map +1 -1
- package/dist/v2-sdk.cjs.production.min.js +1 -1
- package/dist/v2-sdk.cjs.production.min.js.map +1 -1
- package/dist/v2-sdk.esm.js +9 -2
- package/dist/v2-sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/services/kyberSwap/index.ts +10 -2
- package/src/test/kyberSwap.test.ts +45 -39
package/package.json
CHANGED
|
@@ -20,7 +20,10 @@ export async function getKyberSwapTxData(
|
|
|
20
20
|
const quoteResult = await axios.get(
|
|
21
21
|
`${kyberBaseUrl}/${pool.network}/api/v1/routes`,
|
|
22
22
|
{
|
|
23
|
-
params
|
|
23
|
+
params,
|
|
24
|
+
headers: {
|
|
25
|
+
"x-client-id": "dHEDGE"
|
|
26
|
+
}
|
|
24
27
|
}
|
|
25
28
|
);
|
|
26
29
|
|
|
@@ -33,7 +36,12 @@ export async function getKyberSwapTxData(
|
|
|
33
36
|
|
|
34
37
|
const buildResult = await axios.post(
|
|
35
38
|
`${kyberBaseUrl}/${pool.network}/api/v1/route/build`,
|
|
36
|
-
buildParams
|
|
39
|
+
buildParams,
|
|
40
|
+
{
|
|
41
|
+
headers: {
|
|
42
|
+
"x-client-id": "dHEDGE"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
37
45
|
);
|
|
38
46
|
|
|
39
47
|
return {
|
|
@@ -4,14 +4,20 @@ import { Dhedge, Pool } from "..";
|
|
|
4
4
|
|
|
5
5
|
import { Dapp, Network } from "../types";
|
|
6
6
|
import { CONTRACT_ADDRESS, MAX_AMOUNT, TEST_POOL } from "./constants";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
TestingRunParams,
|
|
9
|
+
setUSDCAmount,
|
|
10
|
+
testingHelper,
|
|
11
|
+
wait
|
|
12
|
+
} from "./utils/testingHelper";
|
|
8
13
|
|
|
9
14
|
import { allowanceDelta, balanceDelta } from "./utils/token";
|
|
10
15
|
import { routerAddress } from "../config";
|
|
16
|
+
import BigNumber from "bignumber.js";
|
|
11
17
|
|
|
12
|
-
const testKyberSwap = ({ wallet, network }: TestingRunParams) => {
|
|
13
|
-
const
|
|
14
|
-
const
|
|
18
|
+
const testKyberSwap = ({ wallet, network, provider }: TestingRunParams) => {
|
|
19
|
+
const USDC = CONTRACT_ADDRESS[network].USDC;
|
|
20
|
+
const WETH = CONTRACT_ADDRESS[network].WETH;
|
|
15
21
|
|
|
16
22
|
let dhedge: Dhedge;
|
|
17
23
|
let pool: Pool;
|
|
@@ -22,38 +28,38 @@ const testKyberSwap = ({ wallet, network }: TestingRunParams) => {
|
|
|
22
28
|
dhedge = new Dhedge(wallet, network);
|
|
23
29
|
pool = await dhedge.loadPool(TEST_POOL[network]);
|
|
24
30
|
// top up gas
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
await provider.send("hardhat_setBalance", [
|
|
32
|
+
wallet.address,
|
|
33
|
+
"0x10000000000000000"
|
|
34
|
+
]);
|
|
35
|
+
await provider.send("evm_mine", []);
|
|
36
|
+
// top up USDC
|
|
37
|
+
await setUSDCAmount({
|
|
38
|
+
amount: new BigNumber(2).times(1e6).toFixed(0),
|
|
39
|
+
userAddress: pool.address,
|
|
40
|
+
network,
|
|
41
|
+
provider
|
|
42
|
+
});
|
|
37
43
|
});
|
|
38
44
|
|
|
39
|
-
it("approves unlimited
|
|
40
|
-
await pool.approve(Dapp.KYBERSWAP,
|
|
41
|
-
const
|
|
45
|
+
it("approves unlimited USDC on KyberSwap", async () => {
|
|
46
|
+
await pool.approve(Dapp.KYBERSWAP, USDC, MAX_AMOUNT);
|
|
47
|
+
const usdcAllowanceDelta = await allowanceDelta(
|
|
42
48
|
pool.address,
|
|
43
|
-
|
|
49
|
+
USDC,
|
|
44
50
|
routerAddress[network]["kyberswap"]!,
|
|
45
51
|
pool.signer
|
|
46
52
|
);
|
|
47
|
-
await expect(
|
|
53
|
+
await expect(usdcAllowanceDelta.gt(0));
|
|
48
54
|
});
|
|
49
55
|
|
|
50
|
-
it("gets only amount and txData for 2
|
|
51
|
-
const
|
|
56
|
+
it("gets only amount and txData for 2 USDC into WETH on KyberSwap", async () => {
|
|
57
|
+
const usdcBalance = await pool.utils.getBalance(USDC, pool.address);
|
|
52
58
|
const result = await pool.trade(
|
|
53
59
|
Dapp.KYBERSWAP,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
USDC,
|
|
61
|
+
WETH,
|
|
62
|
+
usdcBalance,
|
|
57
63
|
1,
|
|
58
64
|
null,
|
|
59
65
|
{ estimateGas: false, onlyGetTxData: true }
|
|
@@ -62,31 +68,31 @@ const testKyberSwap = ({ wallet, network }: TestingRunParams) => {
|
|
|
62
68
|
expect(result.minAmountOut).not.toBeNull();
|
|
63
69
|
});
|
|
64
70
|
|
|
65
|
-
it("trades
|
|
71
|
+
it("trades USDC balance into WETH on KyberSwap", async () => {
|
|
66
72
|
await wait(1);
|
|
67
|
-
const
|
|
68
|
-
await pool.trade(Dapp.KYBERSWAP,
|
|
69
|
-
const
|
|
73
|
+
const usdcBalance = await pool.utils.getBalance(USDC, pool.address);
|
|
74
|
+
await pool.trade(Dapp.KYBERSWAP, USDC, WETH, usdcBalance, 1);
|
|
75
|
+
const wethBalanceDelta = await balanceDelta(
|
|
70
76
|
pool.address,
|
|
71
|
-
|
|
77
|
+
WETH,
|
|
72
78
|
pool.signer
|
|
73
79
|
);
|
|
74
|
-
expect(
|
|
80
|
+
expect(wethBalanceDelta.gt(0));
|
|
75
81
|
});
|
|
76
82
|
});
|
|
77
83
|
};
|
|
78
84
|
|
|
85
|
+
// testingHelper({
|
|
86
|
+
// network: Network.PLASMA,
|
|
87
|
+
// onFork: false,
|
|
88
|
+
// testingRun: testKyberSwap
|
|
89
|
+
// });
|
|
90
|
+
|
|
79
91
|
testingHelper({
|
|
80
|
-
network: Network.
|
|
81
|
-
onFork: false,
|
|
92
|
+
network: Network.ARBITRUM,
|
|
82
93
|
testingRun: testKyberSwap
|
|
83
94
|
});
|
|
84
95
|
|
|
85
|
-
// testingHelper({
|
|
86
|
-
// network: Network.ARBITRUM,
|
|
87
|
-
// testingRun: testOdos
|
|
88
|
-
// });
|
|
89
|
-
|
|
90
96
|
// testingHelper({
|
|
91
97
|
// network: Network.POLYGON,
|
|
92
98
|
// onFork: false,
|