@dhedge/v2-sdk 2.1.0 → 2.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhedge/v2-sdk",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "license": "MIT",
5
5
  "description": "🛠 An SDK for building applications on top of dHEDGE V2",
6
6
  "main": "dist/index.js",
@@ -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 {
@@ -8,7 +8,7 @@ import PTAbi from "../../abi/pendle/PT.json";
8
8
  import SYAbi from "../../abi/pendle/SY.json";
9
9
  import BigNumber from "bignumber.js";
10
10
 
11
- const pendleBaseUrl = "https://api-v2.pendle.finance/core/v1";
11
+ const pendleBaseUrl = "https://api-v2.pendle.finance/core";
12
12
 
13
13
  export async function getPendleSwapTxData(
14
14
  pool: Pool,
@@ -41,7 +41,7 @@ export async function getPendleSwapTxData(
41
41
  const market = await getMarket(pool, tokenIn, tokenOut);
42
42
  try {
43
43
  const swapResult = await axios.get(
44
- `${pendleBaseUrl}/sdk/${
44
+ `${pendleBaseUrl}/v2/sdk/${
45
45
  networkChainIdMap[pool.network]
46
46
  }/markets/${market}/swap`,
47
47
  { params }
@@ -70,9 +70,10 @@ export async function getMarket(
70
70
  const networkId = networkChainIdMap[pool.network];
71
71
  let marketResult;
72
72
  try {
73
- marketResult = await axios.get(
74
- `${pendleBaseUrl}/${networkId}/markets/active`
75
- );
73
+ const params = { isActive: true, chainId: networkId };
74
+ marketResult = await axios.get(`${pendleBaseUrl}/v1/markets/all`, {
75
+ params
76
+ });
76
77
  } catch (e) {
77
78
  console.error("Error in Pendle API request:", e);
78
79
  throw new ApiError("Pendle api request failed");
@@ -103,9 +104,10 @@ const checkExitPostExpPT = async (
103
104
  const networkId = networkChainIdMap[pool.network];
104
105
  let inactiveMarketResult;
105
106
  try {
106
- inactiveMarketResult = await axios.get(
107
- `${pendleBaseUrl}/${networkId}/markets/inactive`
108
- );
107
+ const params = { isActive: false, chainId: networkId };
108
+ inactiveMarketResult = await axios.get(`${pendleBaseUrl}/v1/markets/all`, {
109
+ params
110
+ });
109
111
  } catch (e) {
110
112
  console.error("Error in Pendle API request:", e);
111
113
  throw new ApiError("Pendle api request failed");
@@ -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 { TestingRunParams, testingHelper, wait } from "./utils/testingHelper";
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 USDT = CONTRACT_ADDRESS[network].USDT;
14
- const USDE = CONTRACT_ADDRESS[network].USDE;
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
- // await provider.send("hardhat_setBalance", [
26
- // wallet.address,
27
- // "0x10000000000000000"
28
- // ]);
29
- // await provider.send("evm_mine", []);
30
- // // top up USDC
31
- // await setUSDCAmount({
32
- // amount: new BigNumber(2).times(1e6).toFixed(0),
33
- // userAddress: pool.address,
34
- // network,
35
- // provider
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 USDT on KyberSwap", async () => {
40
- await pool.approve(Dapp.KYBERSWAP, USDT, MAX_AMOUNT);
41
- const usdtAllowanceDelta = await allowanceDelta(
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
- USDT,
49
+ USDC,
44
50
  routerAddress[network]["kyberswap"]!,
45
51
  pool.signer
46
52
  );
47
- await expect(usdtAllowanceDelta.gt(0));
53
+ await expect(usdcAllowanceDelta.gt(0));
48
54
  });
49
55
 
50
- it("gets only amount and txData for 2 USDT into WETH on KyberSwap", async () => {
51
- const usdtBalance = await pool.utils.getBalance(USDT, pool.address);
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
- USDT,
55
- USDE,
56
- usdtBalance,
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 USDT balance into USDE on KyberSwap", async () => {
71
+ it("trades USDC balance into WETH on KyberSwap", async () => {
66
72
  await wait(1);
67
- const usdtBalance = await pool.utils.getBalance(USDT, pool.address);
68
- await pool.trade(Dapp.KYBERSWAP, USDT, USDE, usdtBalance, 1);
69
- const usdeBalanceDelta = await balanceDelta(
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
- USDE,
77
+ WETH,
72
78
  pool.signer
73
79
  );
74
- expect(usdeBalanceDelta.gt(0));
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.PLASMA,
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,
@@ -18,7 +18,7 @@ import { balanceDelta } from "./utils/token";
18
18
  const testPendle = ({ wallet, network, provider }: TestingRunParams) => {
19
19
  const USDC = CONTRACT_ADDRESS[network].USDC;
20
20
  const weETH = "0x35751007a407ca6feffe80b3cb397736d2cf4dbe";
21
- // const PTweETH = "0xb33808ea0e883138680ba29311a220a7377cdb92";
21
+ const PTweETH = "0xab7f3837e6e721abbc826927b655180af6a04388";
22
22
  const PTweETH_matured = "0xe2b2d203577c7cb3d043e89ccf90b5e24d19b66f";
23
23
 
24
24
  let dhedge: Dhedge;
@@ -53,24 +53,24 @@ const testPendle = ({ wallet, network, provider }: TestingRunParams) => {
53
53
  );
54
54
  });
55
55
 
56
- // it("swaps weETH to PTweETH on Pendle", async () => {
57
- // await pool.approve(Dapp.PENDLE, weETH, MAX_AMOUNT);
58
- // const weEthBalance = await pool.utils.getBalance(weETH, pool.address);
59
- // await pool.trade(
60
- // Dapp.PENDLE,
61
- // weETH,
62
- // PTweETH,
63
- // weEthBalance,
64
- // 0.5,
65
- // await getTxOptions(network)
66
- // );
67
- // const ptWeEthBalanceDelta = await balanceDelta(
68
- // pool.address,
69
- // PTweETH,
70
- // pool.signer
71
- // );
72
- // expect(ptWeEthBalanceDelta.gt(0));
73
- // });
56
+ it("swaps weETH to PTweETH on Pendle", async () => {
57
+ await pool.approve(Dapp.PENDLE, weETH, MAX_AMOUNT);
58
+ const weEthBalance = await pool.utils.getBalance(weETH, pool.address);
59
+ await pool.trade(
60
+ Dapp.PENDLE,
61
+ weETH,
62
+ PTweETH,
63
+ weEthBalance,
64
+ 0.5,
65
+ await getTxOptions(network)
66
+ );
67
+ const ptWeEthBalanceDelta = await balanceDelta(
68
+ pool.address,
69
+ PTweETH,
70
+ pool.signer
71
+ );
72
+ expect(ptWeEthBalanceDelta.gt(0));
73
+ });
74
74
 
75
75
  // it("swaps PTweETH to weETH on Pendle", async () => {
76
76
  // await pool.approve(Dapp.PENDLE, PTweETH, MAX_AMOUNT);