curvance 1.1.0 → 1.2.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.
@@ -87,10 +87,10 @@ export declare const chains: {
87
87
  plugins: {
88
88
  nativeVaultPositionManager: string;
89
89
  };
90
- "WMON-DynamicIRM": string;
90
+ "sMON-DynamicIRM": string;
91
91
  tokens: {
92
- WMON: string;
93
92
  sMON: string;
93
+ WMON: string;
94
94
  };
95
95
  };
96
96
  "Magma (gMON) / wMON": {
@@ -98,10 +98,10 @@ export declare const chains: {
98
98
  plugins: {
99
99
  nativeVaultPositionManager: string;
100
100
  };
101
- "WMON-DynamicIRM": string;
101
+ "gMON-DynamicIRM": string;
102
102
  tokens: {
103
- WMON: string;
104
103
  gMON: string;
104
+ WMON: string;
105
105
  };
106
106
  };
107
107
  };
@@ -1,118 +1,118 @@
1
1
  {
2
- "CentralRegistry": "0x2F0DF3eb61bC4e160289F7E5127e3b756780b624",
3
- "OracleManager": "0xDBa9f44b5Cb303d4CDCa40aa586EA7D7CD6a6413",
2
+ "CentralRegistry": "0x1605b3aD37708b1E2c9A7B949Bc289fbc882251D",
3
+ "OracleManager": "0x96f3912bFa50EA5aa6230Ddf5347819f2440C0F4",
4
4
  "adaptors": {
5
- "ChainlinkAdaptor": "0x844B09Cf96dDFe6B8A608A0B58520CE605F76F6E",
6
- "RedstoneClassicAdaptor": "0x0376b5db22c73f719AdeBbB5DaE5870B5F90395e",
7
- "RedstoneCoreAdaptor": "0xcDc2c744a15D8f7767f7a2fb1757919D6F15022B"
5
+ "ChainlinkAdaptor": "0x15a5D9fE67265c47b5A1460d896260a427d1E42a",
6
+ "RedstoneClassicAdaptor": "0x6423A02783F432e25151b806905937ceaAFDE586",
7
+ "RedstoneCoreAdaptor": "0x68fE0E13c75a662bd413566d4140e390917DBcb5"
8
8
  },
9
9
  "calldataCheckers": {
10
- "RedstoneAdaptorMulticallChecker": "0x4a041dc980a5ce8D00f63efF7E89009fe1702604"
10
+ "RedstoneAdaptorMulticallChecker": "0x3f36722Fe6BAD26E4B1433B329ecC02C0787F8b7"
11
11
  },
12
12
  "zappers": {
13
- "nativeVaultZapper": "0xda34AccA0b72662Be611BEb22524AaF124B36d23",
14
- "vaultZapper": "0x096D992B46f41bF6b7C3e28fCA104fbeea7c63e6",
15
- "simpleZapper": "0xE986A7E9007affef15604Fbc18dD14B85CbF5857"
13
+ "nativeVaultZapper": "0x0078eda41B1dC48729C4D62291248A1c5904A1a6",
14
+ "vaultZapper": "0x5B9229594216838a812e736aF3F95Af993B287f8",
15
+ "simpleZapper": "0x4fdd13FD07382704cC806d5C840A6c1AeF3E1757"
16
16
  },
17
- "MockOracle": "0x225502Ec05F6c297308d5e9FafA1735515Ba7191",
18
- "USDC": "0x1e071Bd0D4BF5120b58e2b89FE2F3b3D04fCfCf1",
19
- "WBTC": "0xb946ABc340385c537BbAc5E65B24Db8Af780A550",
20
- "SWETH": "0x5b2FDA16251187E575d111633A9D89189023Be35",
21
- "DAI": "0x2Be44B614E14956ac10653b501a32836f97757f9",
22
- "LUSD": "0xBeead9a094dc5D06f0641d73d630E20251C1d0E0",
23
- "mkUSD": "0x2B70eb3021391e93013092d5B1Bf02387945b90A",
24
- "mETH": "0x3A2731d1f03228A863a159553cC878eb92D88a65",
25
- "mUSD": "0x9E9c50165e0c927d9aa846dA3602d5Ea2C90044e",
26
- "Faucet": "0x6CEF38bD9Cd0C92a7CfCA0CD07058457D53fFf37",
17
+ "MockOracle": "0x7E71Fdd12bF2C5da35243Cd52830E60E828EBAfE",
18
+ "USDC": "0x8997eF110E5823b543155285eF0C370520e1E9d0",
19
+ "WBTC": "0xDC32E3b1bA7b9186993269753718f09be0ACAc35",
20
+ "SWETH": "0x243142962dc13208A674b5A61A95970280E0C730",
21
+ "DAI": "0x7F06C608747D6514f622F5beB8494818A0A2496d",
22
+ "LUSD": "0xb39802CF201fb33296Be0f400338fd4754bE33E3",
23
+ "mkUSD": "0x2C3d30269fa31258EC40A32690e0C149fde2493B",
24
+ "mETH": "0x7BB05Aa193535d8D4878c6433Bf800C8a7C549D8",
25
+ "mUSD": "0x4F9a6edB46abF3bF30D3Ab00CE4Ae6da2EdD0ab5",
26
+ "Faucet": "0x2Db7799f9574eC92F8246c40f5532249c3152419",
27
27
  "markets": {
28
28
  "Test WBTC / Test USDC": {
29
- "address": "0xD6588F1f6120C3D981115491aF7D12CAB89C0Bb0",
30
- "WBTC-DynamicIRM": "0x6F6162b60F5637eb504a526490E17f026Af72722",
29
+ "address": "0x706cE72FDafa499Ee60648CE9Ccb96E668a99496",
30
+ "WBTC-DynamicIRM": "0xc7e2cDB05635018c4d7c9de445B787e8bEa4D2e3",
31
31
  "tokens": {
32
- "WBTC": "0x968eA30A64F0e95af69C5f18f430bC041621419f",
33
- "USDC": "0x156e8C11e7b2502049f5b7138759f23BcE1EC050"
32
+ "WBTC": "0x21CcAc607FAf119b800d8f545CfaDEA8F4043cDB",
33
+ "USDC": "0x6cc4AFf3ee554A38505E4C597Cf9f0144c9BF604"
34
34
  },
35
- "USDC-DynamicIRM": "0xdb0F673F36D120BB6f5b5697785878304F3C8c2A"
35
+ "USDC-DynamicIRM": "0x445855ee7aE89cDaAb2d8C869f513102431e335E"
36
36
  },
37
37
  "Test LUSD / Test SWETH": {
38
- "address": "0x8749Bc5820BB951D7a8E70F8EcA3Da453F4C03F9",
39
- "LUSD-DynamicIRM": "0x1CbB4a19C215d7F917Bb531A7E761346bF2Cda0E",
38
+ "address": "0xc672CD797FAb0D7b7d61B20C3A00909747962eA2",
39
+ "LUSD-DynamicIRM": "0x76F04c8D091A5cfd74D6261C730cB0faD80Cb395",
40
40
  "tokens": {
41
- "LUSD": "0x055da4c80dc58EdD186dBA0CFAD6a15bF82f38b5",
42
- "SWETH": "0x84f5328d934283A70B59361952EfC62ec8A36757"
41
+ "LUSD": "0xacCbEE50bBF9882E6f11cCcb42200056105861c5",
42
+ "SWETH": "0xEbBB04559b01630F0435De55dA8AfdB8fb4Bd3F5"
43
43
  }
44
44
  },
45
45
  "Test mUSD / Test mETH": {
46
- "address": "0x34897EFc54CB80f900532Cb87Cb76d0b67B98C76",
46
+ "address": "0xe23CBe23eB702376De976542E50A4d23Cf40303D",
47
47
  "tokens": {
48
- "mUSD": "0x6C7143b0a5d37FAF9B81bF8fa27c2af51305Af2A",
49
- "mETH": "0x56e709743Cc8da96678cD55a2ac182c03E48A8F7"
48
+ "mUSD": "0x83B1F37E0042cAa2C8be27a0B1d259E792eDd29B",
49
+ "mETH": "0x63d8A82DdeA1F7eE530E9a0401519E9698aD6fED"
50
50
  },
51
- "mETH-DynamicIRM": "0xa0333980Eca77E412b0d506C6bcF03348176C792"
51
+ "mETH-DynamicIRM": "0xa37CC6F55578F31E8C2B984375897b012e6e89C7"
52
52
  },
53
53
  "Test DAI / Test mkUSD": {
54
- "address": "0x155B9Cb59cdF67B4F1f287A4a270d95C9b50ed82",
55
- "DAI-DynamicIRM": "0xc36178f0A39F10AFFd436eDfd04f372599420131",
54
+ "address": "0xf583F43ea64D6d1D20F6E6D482f09eFEbc8f8556",
55
+ "DAI-DynamicIRM": "0x5A7dC8044223787eB1c327B96BDa6cE5557C98a8",
56
56
  "tokens": {
57
- "DAI": "0x309CC0ADd0BF2790dAD10B46b79e633440283136",
58
- "mkUSD": "0x5A95375287cf67b83723b9Ca16D6255a9cEaE461"
57
+ "DAI": "0x2d18d6ab95DFb409e0B27e7D95F785307beBac4a",
58
+ "mkUSD": "0xaA409e5746B89D4CC930247aA473eFCb6aaeF43C"
59
59
  },
60
- "mkUSD-DynamicIRM": "0xB4EF3136DBe8333F1148f8b9f1b6f731Cb0c768F"
60
+ "mkUSD-DynamicIRM": "0xda7698bFc8724649421D8C184f6719f2f5cDEECD"
61
61
  },
62
62
  "Apriori (aprMON) / wMON": {
63
- "address": "0x4D6192A5E3012D394cf3D5041888ac7D3960c584",
63
+ "address": "0x440d26eAffb45305E89187C75567c7C246b6A748",
64
64
  "plugins": {
65
- "nativeVaultPositionManager": "0x16F95048d64f92DF1a889431e05025d0c5Fc6009"
65
+ "nativeVaultPositionManager": "0xA40aEc339BC810D1e5dC4eFf049A70b7617D6bDb"
66
66
  },
67
- "WMON-DynamicIRM": "0x7c245D004eCc6292fE89aF5A894b1dA306CbbaC4",
67
+ "WMON-DynamicIRM": "0x57eF173Fbe320Ec10Dcf6edd15956D667fb1112f",
68
68
  "tokens": {
69
- "WMON": "0x679125118C236F7AbD5b5667E3B43564E9947435",
70
- "aprMON": "0x90453aAfCF84E04103233726948881B260e01D31"
69
+ "WMON": "0x69C53fBaDa7bE5823417f695752162D424FDA0eF",
70
+ "aprMON": "0x1DBDFA96870F52839dA11332E69be6A2F42208f5"
71
71
  }
72
72
  },
73
73
  "Fastlane (shMON) / wMON": {
74
- "address": "0x66a08Ff9c6D7b054004768771fD148083A03A034",
74
+ "address": "0xcE9191dDFFe9Cb2c9f8A6Dc665fe6622eD571539",
75
75
  "plugins": {
76
- "nativeVaultPositionManager": "0xAb019932741f81e262fAC8e86400d476b7Ba5BCC"
76
+ "nativeVaultPositionManager": "0x8980088FCB488d84a3eb844c71118F35cF939E2E"
77
77
  },
78
- "WMON-DynamicIRM": "0x8A1F36E489B61a55617b79fBC47048baE10186BA",
78
+ "WMON-DynamicIRM": "0xAD0223Df193285cfc012Cf5D803673a465E77e86",
79
79
  "tokens": {
80
- "WMON": "0x61E771Aa32F954E57EadCAcD69166fcaA404c6a1",
81
- "shMON": "0xdAC8aa3D833E32903D8B72A1beA3F1c9c1F727ae"
80
+ "WMON": "0x5053e1358CBD190492Aa00b50835eBA1030Ee2D4",
81
+ "shMON": "0x1D50152DBEDFC61996A08bA5EcE98CA7E8566175"
82
82
  }
83
83
  },
84
84
  "Kintsu (sMON) / wMON": {
85
- "address": "0x891121e5756Bea0939198170372510E347B9fE8F",
85
+ "address": "0x25D232CCdc4714acc7Dd71c569744aa8C721e344",
86
86
  "plugins": {
87
- "nativeVaultPositionManager": "0xF0D9Fdc67cACeB540CF1d7618D6f2E8593D7f043"
87
+ "nativeVaultPositionManager": "0xBBfaDD2A1CFD234DF243a78931ec35D6013b824C"
88
88
  },
89
- "WMON-DynamicIRM": "0x6eC4BAeB4bd69AE0Cfddf425c7FaDd3b58bECEa1",
89
+ "sMON-DynamicIRM": "0x6E36446dFd47347A2FcDEDC50B0d8cd6973BD3C7",
90
90
  "tokens": {
91
- "WMON": "0xcA091D9529773EF81A05f4acc51c5F707143c252",
92
- "sMON": "0xBeD25a6b20b14ACc65b81dB6128113B6ecdFe794"
91
+ "sMON": "0x0189Cec4582D4d78cb0f4D831E325580FC790907",
92
+ "WMON": "0x301314BA7ce92B2606a1b4BBfF75dF65ACc5b2aC"
93
93
  }
94
94
  },
95
95
  "Magma (gMON) / wMON": {
96
- "address": "0x5823A4a97047dC89f982e7DEAe0FBb47644A9EF5",
96
+ "address": "0xD7B389D4fb03eDfD81a5D7D1620c7992D9AF0d56",
97
97
  "plugins": {
98
- "nativeVaultPositionManager": "0xc84CB3A8c88727c3B2e92d7BAd65E93d1fa9ADc1"
98
+ "nativeVaultPositionManager": "0x9432239f8A4A21572E7719A30d729E21437edFeF"
99
99
  },
100
- "WMON-DynamicIRM": "0x56Ee21efb7FE68577eC0B7256BdAA7d42cC5a190",
100
+ "gMON-DynamicIRM": "0x5887379D06abb1bBd26375e1fd7c4242ceF1313B",
101
101
  "tokens": {
102
- "WMON": "0xbBA0E641C57719AF36C6d7917E2b1C4Bf9B6FBf8",
103
- "gMON": "0x45A714F833200dCa106b496Ac756D293a1A01e40"
102
+ "gMON": "0x4283ac581cEcE11AE7bee0441c1a52ADDf60e22A",
103
+ "WMON": "0x5a254817010674100ED0C9213770EAE2456c14a8"
104
104
  }
105
105
  }
106
106
  },
107
- "MessagingHub": "0x201b327847d171334b45fcE8b305F57951A0AAa8",
108
- "CVE": "0x38C62478Ce798944AC4d0d315892c8edDB3Fc2bc",
109
- "RewardManager": "0xA684E684f3a49E755A22542d6CA117a2253d7caA",
110
- "VeCVE": "0x58e281d1a7997277e342e64fd394F8bE0eD7363A",
111
- "GaugeManager": "0x3978fd9b71F335E6D5b8e2c78Ae3b7B5FF97c434",
112
- "VotingHub": "0x61737DB96dB2790BAdB87A42A44128912eBFb823",
113
- "WMON-MockPermissionV3Aggregator": "0xe736369E26bCa0101DA69b63bb00ef8E13f6d370",
114
- "WMON-ChainlinkAdaptor": "0x9D7349359C502f0E71e9a23A10c9bCeA71Ad2A76",
115
- "VaultAggregator-WMON-aprMON": "0xc556091aDE2d6A87f8ed4aa0E3C5426E88371111",
116
- "VaultAggregator-WMON-shMON": "0xD887d6FdAaD2D4fa4Dd04607e98C8c1df184AB2C",
117
- "ProtocolReader": "0x4BF956008D1A6D59194015119cC978a1E8E28851"
107
+ "MessagingHub": "0x5BcE470A10DE92BF949bA739F03D88093a5dEB71",
108
+ "CVE": "0x56e1A0A1125C08a4ceCcF4E398eCB0D98f4e9dcd",
109
+ "RewardManager": "0xc6A1E835Db7157E49bD4b70f2100fb347442fd00",
110
+ "VeCVE": "0x39972754c6CDB2624738ABd858369055cB966326",
111
+ "GaugeManager": "0xa72E20bA2674A8eFD228220a6A5d4dEfC2492896",
112
+ "VotingHub": "0x601dF37De559641429F53bAD132Bca4F5AcE471e",
113
+ "WMON-MockPermissionV3Aggregator": "0x7bf8bd0332D9D657e146bC89d535607cfF86606c",
114
+ "WMON-ChainlinkAdaptor": "0x99942DE2e0219e190e08a162a719D7a8257702B3",
115
+ "VaultAggregator-WMON-aprMON": "0x5AFd5743741F35A021c42e1885C6D04dC1208A3A",
116
+ "VaultAggregator-WMON-shMON": "0x8908C7b2f71Ac045940C96BB42132991807b0467",
117
+ "ProtocolReader": "0xd01377f8BA33979E8C99b34a5646e8c44ed284CC"
118
118
  }
@@ -1,5 +1,5 @@
1
1
  import { Contract, TransactionResponse } from "ethers";
2
- import { address, curvance_provider, TokenInput, USD } from "../types";
2
+ import { address, curvance_provider, Percentage, TokenInput, USD } from "../types";
3
3
  import { CToken, ICToken } from "./CToken";
4
4
  import { DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
5
5
  import { Market } from "./Market";
@@ -27,10 +27,14 @@ export declare class BorrowableCToken extends CToken {
27
27
  contract: Contract & IBorrowableCToken;
28
28
  constructor(provider: curvance_provider, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
29
29
  get liquidity(): bigint;
30
- get borrowRate(): bigint;
31
- get predictedBorrowRate(): bigint;
32
- get utilizationRate(): bigint;
33
- get supplyRate(): bigint;
30
+ getBorrowRate(inPercentage: true): Percentage;
31
+ getBorrowRate(inPercentage: false): bigint;
32
+ getPredictedBorrowRate(inPercentage: true): Percentage;
33
+ getPredictedBorrowRate(inPercentage: false): bigint;
34
+ getUtilizationRate(inPercentage: true): Percentage;
35
+ getUtilizationRate(inPercentage: false): bigint;
36
+ getSupplyRate(inPercentage: true): Percentage;
37
+ getSupplyRate(inPercentage: false): bigint;
34
38
  borrowChange(amount: USD, rateType: ChangeRate): Decimal;
35
39
  depositAsCollateral(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
36
40
  postCollateral(amount: TokenInput): Promise<TransactionResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"BorrowableCToken.d.ts","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BorrowableCToken.d.ts","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,20 @@ class BorrowableCToken extends CToken_1.CToken {
16
16
  this.contract = (0, helpers_1.contractSetup)(provider, address, BorrowableCToken_json_1.default);
17
17
  }
18
18
  get liquidity() { return this.cache.liquidity; }
19
- get borrowRate() { return this.cache.borrowRate; }
20
- get predictedBorrowRate() { return this.cache.predictedBorrowRate; }
21
- get utilizationRate() { return this.cache.utilizationRate; }
22
- get supplyRate() { return this.cache.supplyRate; }
19
+ getBorrowRate(inPercentage) {
20
+ return inPercentage ? (0, decimal_js_1.default)(this.cache.borrowRate).div(helpers_1.BPS) : this.cache.borrowRate;
21
+ }
22
+ getPredictedBorrowRate(inPercentage) {
23
+ return inPercentage ? (0, decimal_js_1.default)(this.cache.predictedBorrowRate).div(helpers_1.BPS) : this.cache.predictedBorrowRate;
24
+ }
25
+ getUtilizationRate(inPercentage) {
26
+ return inPercentage ? (0, decimal_js_1.default)(this.cache.utilizationRate).div(helpers_1.BPS) : this.cache.utilizationRate;
27
+ }
28
+ getSupplyRate(inPercentage) {
29
+ return inPercentage ? (0, decimal_js_1.default)(this.cache.supplyRate).div(helpers_1.BPS) : this.cache.supplyRate;
30
+ }
23
31
  borrowChange(amount, rateType) {
24
- const rate = this.borrowRate;
32
+ const rate = this.getBorrowRate(false);
25
33
  const rate_seconds = (0, helpers_1.getRateSeconds)(rateType);
26
34
  const rate_percent = (0, decimal_js_1.default)(rate * rate_seconds).div(helpers_1.BPS);
27
35
  return amount.mul(rate_percent);
@@ -1 +1 @@
1
- {"version":3,"file":"BorrowableCToken.js","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BorrowableCToken.js","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,13 @@ import { Contract, TransactionResponse } from "ethers";
2
2
  import { ChangeRate } from "../helpers";
3
3
  import { AdaptorTypes, DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
4
4
  import { ERC20 } from "./ERC20";
5
- import { Market } from "./Market";
5
+ import { Market, PluginTypes } from "./Market";
6
6
  import { Calldata } from "./Calldata";
7
7
  import Decimal from "decimal.js";
8
8
  import { address, bytes, curvance_provider, Percentage, TokenInput, USD } from "../types";
9
9
  import { Zapper, ZapperTypes } from "./Zapper";
10
+ import { PositionManager, PositionManagerTypes } from "./PositionManager";
11
+ import { BorrowableCToken } from "./BorrowableCToken";
10
12
  export interface AccountSnapshot {
11
13
  asset: address;
12
14
  decimals: bigint;
@@ -73,6 +75,7 @@ export declare class CToken extends Calldata<ICToken> {
73
75
  get asset(): import("./ProtocolReader").StaticMarketAsset;
74
76
  get isBorrowable(): boolean;
75
77
  get canZap(): boolean;
78
+ get canLeverage(): boolean;
76
79
  /** @returns Collateral Ratio in BPS or bigint */
77
80
  getCollRatio(inBPS: true): Percentage;
78
81
  getCollRatio(inBPS: false): bigint;
@@ -148,10 +151,11 @@ export declare class CToken extends Calldata<ICToken> {
148
151
  getTotalCollateral(inUSD: false): bigint;
149
152
  fetchTotalCollateral(inUSD: true): Promise<USD>;
150
153
  fetchTotalCollateral(inUSD: false): Promise<bigint>;
154
+ getPositionManager(type: PositionManagerTypes): PositionManager;
151
155
  getZapper(type: ZapperTypes): Zapper;
152
- isPluginApproved(plugin: ZapperTypes): Promise<boolean>;
153
- approvePlugin(plugin: ZapperTypes): Promise<TransactionResponse>;
154
- getPluginAddress(plugin: ZapperTypes): address;
156
+ isPluginApproved(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): Promise<boolean>;
157
+ approvePlugin(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): Promise<TransactionResponse>;
158
+ getPluginAddress(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): address;
155
159
  getAllowance(check_contract: address): Promise<bigint>;
156
160
  approve(amount: TokenInput | null, spender: address): Promise<TransactionResponse>;
157
161
  fetchDecimals(): Promise<bigint>;
@@ -175,6 +179,8 @@ export declare class CToken extends Calldata<ICToken> {
175
179
  convertToAssets(shares: bigint): Promise<bigint>;
176
180
  convertToShares(assets: bigint): Promise<bigint>;
177
181
  convertTokenInput(amount: TokenInput, inShares?: boolean): bigint;
182
+ maxRemainingLeverage(ctoken: BorrowableCToken, type: PositionManagerTypes): Promise<bigint>;
183
+ depositAndLeverage(depositAmount: TokenInput, borrow: BorrowableCToken, borrowAmount: TokenInput, type: PositionManagerTypes, slippage_?: TokenInput): Promise<TransactionResponse>;
178
184
  deposit(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
179
185
  depositAsCollateral(amount: Decimal, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
180
186
  redeem(amount: TokenInput, receiver?: address | null, owner?: address | null): Promise<TransactionResponse>;
@@ -190,6 +196,9 @@ export declare class CToken extends Calldata<ICToken> {
190
196
  fetchConvertTokensToUsd(tokenAmount: bigint, asset?: boolean): Promise<Decimal>;
191
197
  convertTokensToUsd(tokenAmount: bigint, asset?: boolean): Decimal;
192
198
  buildMultiCallAction(calldata: bytes): MulticallAction;
199
+ private _checkPositionManagerApproval;
200
+ private _checkZapperApproval;
201
+ private _checkAssetApproval;
193
202
  private _checkDepositApprovals;
194
203
  oracleRoute(calldata: bytes, override?: {
195
204
  [key: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ const BaseCToken_json_1 = __importDefault(require("../abis/BaseCToken.json"));
14
14
  const Redstone_1 = require("./Redstone");
15
15
  const Zapper_1 = require("./Zapper");
16
16
  const setup_1 = require("../setup");
17
+ const PositionManager_1 = require("./PositionManager");
17
18
  class CToken extends Calldata_1.Calldata {
18
19
  provider;
19
20
  address;
@@ -50,6 +51,7 @@ class CToken extends Calldata_1.Calldata {
50
51
  get asset() { return this.cache.asset; }
51
52
  get isBorrowable() { return this.cache.isBorrowable; }
52
53
  get canZap() { return this.zapTypes.length > 0; }
54
+ get canLeverage() { return this.leverageTypes.length > 0; }
53
55
  getCollRatio(inBPS) {
54
56
  return inBPS ? (0, decimal_js_1.default)(this.cache.collRatio).div(helpers_1.BPS) : this.cache.collRatio;
55
57
  }
@@ -150,41 +152,45 @@ class CToken extends Calldata_1.Calldata {
150
152
  const totalCollateral = await this.contract.marketCollateralPosted();
151
153
  return inUSD ? this.fetchConvertTokensToUsd(totalCollateral) : totalCollateral;
152
154
  }
155
+ getPositionManager(type) {
156
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
157
+ let manager_contract = this.getPluginAddress(type, 'positionManager');
158
+ return new PositionManager_1.PositionManager(manager_contract, signer, type);
159
+ }
153
160
  getZapper(type) {
154
161
  const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
155
- let zap_contract;
156
- switch (type) {
157
- case 'native-vault':
158
- zap_contract = setup_1.setup_config.contracts.zappers['nativeVaultZapper'];
159
- break;
160
- case 'vault':
161
- zap_contract = setup_1.setup_config.contracts.zappers['vaultZapper'];
162
- break;
163
- case 'simple':
164
- zap_contract = setup_1.setup_config.contracts.zappers['simpleZapper'];
165
- break;
166
- default: throw new Error("Unknown zapper type");
167
- }
162
+ const zap_contract = this.getPluginAddress(type, 'zapper');
168
163
  return new Zapper_1.Zapper(zap_contract, signer, type);
169
164
  }
170
- async isPluginApproved(plugin) {
165
+ async isPluginApproved(plugin, type) {
171
166
  const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
172
- const plugin_address = this.getPluginAddress(plugin);
167
+ const plugin_address = this.getPluginAddress(plugin, type);
173
168
  return this.contract.isDelegate(signer.address, plugin_address);
174
169
  }
175
- async approvePlugin(plugin) {
176
- const plugin_address = this.getPluginAddress(plugin);
170
+ async approvePlugin(plugin, type) {
171
+ const plugin_address = this.getPluginAddress(plugin, type);
177
172
  return this.contract.setDelegateApproval(plugin_address, true);
178
173
  }
179
- getPluginAddress(plugin) {
180
- if (!Zapper_1.zapperTypeToName.has(plugin)) {
181
- throw new Error("Plugin does not have a contract to map too");
182
- }
183
- const plugin_name = Zapper_1.zapperTypeToName.get(plugin);
184
- if (!plugin_name || !setup_1.setup_config.contracts.zappers || !(plugin_name in setup_1.setup_config.contracts.zappers)) {
185
- throw new Error(`Plugin ${plugin_name} not found in zappers`);
174
+ getPluginAddress(plugin, type) {
175
+ switch (type) {
176
+ case 'zapper': {
177
+ if (!Zapper_1.zapperTypeToName.has(plugin)) {
178
+ throw new Error("Plugin does not have a contract to map too");
179
+ }
180
+ const plugin_name = Zapper_1.zapperTypeToName.get(plugin);
181
+ if (!plugin_name || !setup_1.setup_config.contracts.zappers || !(plugin_name in setup_1.setup_config.contracts.zappers)) {
182
+ throw new Error(`Plugin ${plugin_name} not found in zappers`);
183
+ }
184
+ return setup_1.setup_config.contracts.zappers[plugin_name];
185
+ }
186
+ case 'positionManager': {
187
+ switch (plugin) {
188
+ case 'native-vault': return this.market.plugins.nativeVaultPositionManager;
189
+ default: throw new Error("Unknown position manager type");
190
+ }
191
+ }
192
+ default: throw new Error("Unsupported plugin type");
186
193
  }
187
- return setup_1.setup_config.contracts.zappers[plugin_name];
188
194
  }
189
195
  async getAllowance(check_contract) {
190
196
  const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
@@ -298,6 +304,43 @@ class CToken extends Calldata_1.Calldata {
298
304
  const decimals = inShares ? this.decimals : this.asset.decimals;
299
305
  return (0, ethers_1.parseUnits)(amount.toString(), Number(decimals));
300
306
  }
307
+ async maxRemainingLeverage(ctoken, type) {
308
+ const manager = this.getPositionManager(type);
309
+ const amount = manager.maxRemainingLeverage(ctoken);
310
+ console.log(amount);
311
+ return amount;
312
+ }
313
+ async depositAndLeverage(depositAmount, borrow, borrowAmount, type, slippage_ = (0, decimal_js_1.default)(0.5)) {
314
+ const slippage = (0, helpers_1.toBigInt)(slippage_.toNumber(), 18n);
315
+ const manager = this.getPositionManager(type);
316
+ let calldata;
317
+ // TODO: Implement vault & simple position manager
318
+ switch (type) {
319
+ case 'native-vault': {
320
+ calldata = manager.getDepositAndLeverageCalldata(this.convertTokenInput(depositAmount), {
321
+ borrowableCToken: borrow.address,
322
+ borrowAssets: borrow.convertTokenInput(borrowAmount),
323
+ cToken: this.address,
324
+ swapAction: {
325
+ inputToken: helpers_1.EMPTY_ADDRESS,
326
+ inputAmount: 0n,
327
+ outputToken: helpers_1.EMPTY_ADDRESS,
328
+ target: helpers_1.EMPTY_ADDRESS,
329
+ slippage: 0n,
330
+ call: "0x"
331
+ },
332
+ auxData: "0x",
333
+ }, slippage);
334
+ break;
335
+ }
336
+ default: throw new Error("Unsupported position manager type");
337
+ }
338
+ await this._checkAssetApproval(manager.address, this.convertTokenInput(depositAmount));
339
+ await this._checkPositionManagerApproval(manager);
340
+ return this.oracleRoute(calldata, {
341
+ to: manager.address
342
+ });
343
+ }
301
344
  async deposit(amount, zap = 'none', receiver = null) {
302
345
  const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
303
346
  if (receiver == null)
@@ -319,7 +362,7 @@ class CToken extends Calldata_1.Calldata {
319
362
  else {
320
363
  calldata = this.getCallData("deposit", [assets, receiver]);
321
364
  }
322
- await this._checkDepositApprovals(signer, null, assets);
365
+ await this._checkAssetApproval(this.address, assets);
323
366
  return this.oracleRoute(calldata, calldata_overrides);
324
367
  }
325
368
  async depositAsCollateral(amount, zap = 'none', receiver = null) {
@@ -350,7 +393,7 @@ class CToken extends Calldata_1.Calldata {
350
393
  else {
351
394
  calldata = this.getCallData("depositAsCollateral", [assets, receiver]);
352
395
  }
353
- await this._checkDepositApprovals(signer, zapper, assets);
396
+ await this._checkDepositApprovals(zapper, assets);
354
397
  return this.oracleRoute(calldata, call_overrides);
355
398
  }
356
399
  async redeem(amount, receiver = null, owner = null) {
@@ -396,20 +439,42 @@ class CToken extends Calldata_1.Calldata {
396
439
  data: calldata
397
440
  };
398
441
  }
399
- async _checkDepositApprovals(signer, zapper, assets) {
442
+ async _checkPositionManagerApproval(manager) {
443
+ const isApproved = await this.isPluginApproved(manager.type, 'positionManager');
444
+ if (!isApproved) {
445
+ throw new Error(`PositionManager ${manager.address} is not approved for ${this.symbol}`);
446
+ }
447
+ }
448
+ async _checkZapperApproval(zapper) {
449
+ if (!setup_1.setup_config.approval_protection) {
450
+ return;
451
+ }
400
452
  if (setup_1.setup_config.approval_protection && zapper) {
401
- const plugin_allowed = await this.isPluginApproved(zapper.type);
453
+ const plugin_allowed = await this.isPluginApproved(zapper.type, 'zapper');
402
454
  if (!plugin_allowed) {
403
455
  throw new Error(`Please approve the ${zapper.type} Zapper to be able to move ${this.symbol} on your behalf.`);
404
456
  }
405
457
  }
406
- else if (setup_1.setup_config.approval_protection) {
407
- const asset = this.getAsset(true);
408
- const allowance = await asset.allowance(signer.address, this.address);
409
- if (allowance < assets) {
410
- throw new Error(`Please approve the ${asset.symbol} token for ${this.symbol}.`);
411
- }
458
+ }
459
+ async _checkAssetApproval(target, assets) {
460
+ if (!setup_1.setup_config.approval_protection) {
461
+ return;
462
+ }
463
+ const asset = this.getAsset(true);
464
+ const owner = (0, helpers_1.validateProviderAsSigner)(this.provider).address;
465
+ const allowance = await asset.allowance(owner, target);
466
+ if (allowance < assets) {
467
+ throw new Error(`Please approve the ${asset.symbol} token for ${this.symbol}.`);
468
+ }
469
+ }
470
+ async _checkDepositApprovals(zapper, assets) {
471
+ if (!setup_1.setup_config.approval_protection) {
472
+ return;
473
+ }
474
+ if (zapper) {
475
+ await this._checkZapperApproval(zapper);
412
476
  }
477
+ await this._checkAssetApproval(this.address, assets);
413
478
  }
414
479
  async oracleRoute(calldata, override = {}) {
415
480
  const price_updates = await this.getPriceUpdates();