@dhedge/v2-sdk 1.5.4 → 1.7.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 (38) hide show
  1. package/dist/config.d.ts +2 -1
  2. package/dist/entities/pool.d.ts +21 -1
  3. package/dist/entities/utils.d.ts +7 -2
  4. package/dist/services/lyra/markets.d.ts +6 -0
  5. package/dist/services/lyra/positions.d.ts +2 -0
  6. package/dist/services/lyra/quote.d.ts +4 -0
  7. package/dist/services/lyra/trade.d.ts +4 -0
  8. package/dist/services/lyra/tradeOptionType.d.ts +3 -0
  9. package/dist/test/constants.d.ts +1 -0
  10. package/dist/types.d.ts +20 -1
  11. package/dist/v2-sdk.cjs.development.js +4202 -12
  12. package/dist/v2-sdk.cjs.development.js.map +1 -1
  13. package/dist/v2-sdk.cjs.production.min.js +1 -1
  14. package/dist/v2-sdk.cjs.production.min.js.map +1 -1
  15. package/dist/v2-sdk.esm.js +4200 -11
  16. package/dist/v2-sdk.esm.js.map +1 -1
  17. package/package.json +6 -2
  18. package/src/abi/IOptionMArketWrapper.json +1038 -0
  19. package/src/abi/IOptionMarket.json +1473 -0
  20. package/src/abi/IOptionToken.json +1671 -0
  21. package/src/config.ts +10 -5
  22. package/src/entities/pool.ts +61 -1
  23. package/src/entities/utils.ts +45 -2
  24. package/src/services/lyra/markets.ts +52 -0
  25. package/src/services/lyra/positions.ts +19 -0
  26. package/src/services/lyra/quote.ts +12 -0
  27. package/src/services/lyra/trade.ts +101 -0
  28. package/src/services/lyra/tradeOptionType.ts +19 -0
  29. package/src/test/constants.ts +1 -0
  30. package/src/test/lyra.test.ts +163 -0
  31. package/src/test/pool.test.ts +1 -1
  32. package/src/test/toros.test.ts +1 -1
  33. package/src/test/txOptions.ts +1 -1
  34. package/src/test/uniswap.test.ts +1 -1
  35. package/src/test/velodrome.test.ts +1 -1
  36. package/src/test/wallet.ts +8 -0
  37. package/src/types.ts +20 -1
  38. package/src/test/sushi.test.ts +0 -173
package/dist/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AddressNetworkMap, AddressDappNetworkMap } from "./types";
1
+ import { AddressNetworkMap, AddressDappNetworkMap, LyraNetworkMap } from "./types";
2
2
  import { NetworkChainIdMap } from ".";
3
3
  export declare const factoryAddress: AddressNetworkMap;
4
4
  export declare const routerAddress: AddressDappNetworkMap;
@@ -9,6 +9,7 @@ export declare const nonfungiblePositionManagerAddress: AddressNetworkMap;
9
9
  export declare const networkChainIdMap: NetworkChainIdMap;
10
10
  export declare const balancerSubgraph: AddressNetworkMap;
11
11
  export declare const multiCallAddress: AddressNetworkMap;
12
+ export declare const lyraNetworkMap: LyraNetworkMap;
12
13
  export declare const deadline: number;
13
14
  export declare const MaxUint128 = "0xffffffffffffffffffffffffffffffff";
14
15
  export declare const UNISWAPV3_QUOTER_ADDRESS = "0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6";
@@ -1,5 +1,5 @@
1
1
  import { Contract, Wallet, BigNumber } from "ethers";
2
- import { Dapp, FundComposition, AssetEnabled, Network } from "../types";
2
+ import { Dapp, FundComposition, AssetEnabled, Network, LyraOptionMarket, LyraOptionType, LyraTradeType, LyraPosition } from "../types";
3
3
  import { Utils } from "./utils";
4
4
  import { FeeAmount } from "@uniswap/v3-sdk";
5
5
  export declare class Pool {
@@ -318,4 +318,24 @@ export declare class Pool {
318
318
  * @returns {Promise<any>} Transaction
319
319
  */
320
320
  removeLiquidityVelodrome(assetA: string, assetB: string, amount: BigNumber | string, isStable: boolean, options?: any): Promise<any>;
321
+ /**
322
+ * Trade options on lyra
323
+ * @param {LyraOptionMarket} market Underlying market e.g. eth
324
+ * @param {number} expiry Expiry timestamp
325
+ * @param { number} strike Strike price
326
+ * @param {LyraOptionType} optionType Call or put
327
+ * @param { LyraTradeType} tradeType By or sell
328
+ * @param {BigNumber | string } optionAmount Option amount
329
+ * @param {string } assetIn Asset to invest
330
+ * @param {BigNumber | string } collateralChangeAmount Collateral amount to add when shorting options and to remove when covering shorts
331
+ * @param {boolean} isCoveredCall Selling covered call options
332
+ * @param {any} options Transaction options
333
+ * @returns {Promise<any>} Transaction
334
+ */
335
+ tradeLyraOption(market: LyraOptionMarket, expiry: number, strike: number, optionType: LyraOptionType, tradeType: LyraTradeType, optionAmount: BigNumber | string, assetIn: string, collateralChangeAmount?: BigNumber | string, isCoveredCall?: boolean, options?: any): Promise<any>;
336
+ /**
337
+ * Gets Lyra option positions
338
+ * @returns {Promise<Position>} Transaction
339
+ */
340
+ getLyraPositions(market: LyraOptionMarket): Promise<LyraPosition[]>;
321
341
  }
@@ -1,6 +1,7 @@
1
- import { ethers, Wallet } from "ethers";
2
- import { Dapp, Network, Reserves } from "../types";
1
+ import { BigNumber, ethers, Wallet } from "ethers";
2
+ import { Dapp, LyraOptionMarket, LyraOptionType, LyraTradeType, Network, Reserves } from "../types";
3
3
  import { Pool } from ".";
4
+ import { Quote, Strike } from "@lyrafinance/lyra-js";
4
5
  export declare class Utils {
5
6
  network: Network;
6
7
  signer: Wallet;
@@ -50,4 +51,8 @@ export declare class Utils {
50
51
  getBalancerSwapTx(pool: Pool, assetFrom: string, assetTo: string, amountIn: ethers.BigNumber | string, slippage: number): Promise<any>;
51
52
  getBalancerJoinPoolTx(pool: Pool, balancerPoolId: string, assets: string[], amountsIn: string[] | ethers.BigNumber[]): Promise<any>;
52
53
  getBalancerExitPoolTx(pool: Pool, balancerPoolId: string, assets: string[], singleExitAssetIndex: null | number, amount: string | ethers.BigNumber): Promise<any>;
54
+ getLyraOptionExpiries(market: LyraOptionMarket): Promise<number[]>;
55
+ getLyraOptionStrikes(market: LyraOptionMarket, expiry: number): Promise<Strike[]>;
56
+ getLyraOptionStrike(market: LyraOptionMarket, expiry: number, strike: number): Promise<Strike>;
57
+ getLyraOptionQuote(strike: Strike, type: LyraOptionType, tradeType: LyraTradeType, amount: BigNumber | string): Promise<Quote>;
53
58
  }
@@ -0,0 +1,6 @@
1
+ import { LyraOptionMarket, Network } from "../..";
2
+ import { Board, Strike } from "@lyrafinance/lyra-js";
3
+ export declare function getBoard(network: Network, market: LyraOptionMarket, expiry: number): Promise<Board>;
4
+ export declare function getExpiries(network: Network, market: LyraOptionMarket): Promise<number[]>;
5
+ export declare function getStrikes(network: Network, market: LyraOptionMarket, expiry: number): Promise<Strike[]>;
6
+ export declare function getStrike(network: Network, market: LyraOptionMarket, expiry: number, strike: number): Promise<Strike>;
@@ -0,0 +1,2 @@
1
+ import { LyraOptionMarket, LyraPosition, Pool } from "../..";
2
+ export declare function getOptionPositions(pool: Pool, market: LyraOptionMarket): Promise<LyraPosition[]>;
@@ -0,0 +1,4 @@
1
+ import { Quote, Strike } from "@lyrafinance/lyra-js";
2
+ import { ethers } from "ethers";
3
+ import { LyraOptionType, LyraTradeType } from "../../types";
4
+ export declare function getQuote(strike: Strike, type: LyraOptionType, tradeType: LyraTradeType, amount: ethers.BigNumber): Promise<Quote>;
@@ -0,0 +1,4 @@
1
+ import { BigNumber } from "ethers";
2
+ import { Pool } from "../..";
3
+ import { LyraOptionMarket, LyraOptionType, LyraTradeType } from "../../types";
4
+ export declare function getLyraOptionTxData(pool: Pool, market: LyraOptionMarket, optionType: LyraOptionType, expiry: number, strikePrice: number, tradeType: LyraTradeType, optionAmount: BigNumber | string, assetIn: string, collateralAmount: BigNumber, isCoveredCall: boolean): Promise<string>;
@@ -0,0 +1,3 @@
1
+ export declare function getLyraTradeOptionType(isCall: boolean, isLong: boolean, isCoveredCall: boolean): number;
2
+ export declare function isCall(optionType: number): boolean;
3
+ export declare function isLong(optionType: number): boolean;
@@ -17,4 +17,5 @@ export declare const WBTC = "0x68f180fcCe6836688e9084f035309E29Bf0A2095";
17
17
  export declare const OP = "4200000000000000000000000000000000000042";
18
18
  export declare const WSTETH = "0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb";
19
19
  export declare const VEL = "0x3c8B650257cFb5f272f799F5e2b4e65093a11a05";
20
+ export declare const SUSD = "0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9";
20
21
  export declare const TEST_POOL = "TEST_POOL";
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Deployment } from "@lyrafinance/lyra-js";
1
2
  import { BigNumber } from "ethers";
2
3
  export declare enum Network {
3
4
  POLYGON = "polygon",
@@ -14,7 +15,8 @@ export declare enum Dapp {
14
15
  AAVEV3 = "aavev3",
15
16
  ARRAKIS = "arrakis",
16
17
  TOROS = "toros",
17
- VELODROME = "velodrome"
18
+ VELODROME = "velodrome",
19
+ LYRA = "lyra"
18
20
  }
19
21
  export declare enum Transaction {
20
22
  SWAP = "swapExactTokensForTokens",
@@ -58,3 +60,20 @@ export declare type Reserves = {
58
60
  assetB: BigNumber;
59
61
  };
60
62
  export declare type NetworkChainIdMap = Readonly<Record<Network, number>>;
63
+ export declare type LyraOptionMarket = "eth";
64
+ export declare type AddressMarketMap = {
65
+ [key in LyraOptionMarket]: string;
66
+ };
67
+ export declare type LyraTradeType = "buy" | "sell";
68
+ export declare type LyraOptionType = "call" | "put";
69
+ export declare type LyraNetworkMap = {
70
+ [key in Network]?: Deployment;
71
+ };
72
+ export declare type LyraPosition = {
73
+ positionId: BigNumber;
74
+ strikeId: BigNumber;
75
+ optionType: number;
76
+ amount: BigNumber;
77
+ collateral: BigNumber;
78
+ state: number;
79
+ };