curvance 1.0.14 → 1.0.16

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 (47) hide show
  1. package/README.md +2 -0
  2. package/dist/abis/ProtocolReader.json +54 -10
  3. package/dist/abis/RedstoneCoreAdaptor.json +798 -0
  4. package/dist/chains/index.d.ts +0 -37
  5. package/dist/chains/index.d.ts.map +1 -1
  6. package/dist/chains/index.js +1 -2
  7. package/dist/chains/index.js.map +1 -1
  8. package/dist/chains/monad-testnet.json +65 -101
  9. package/dist/classes/CToken.d.ts +57 -23
  10. package/dist/classes/CToken.d.ts.map +1 -1
  11. package/dist/classes/CToken.js +122 -54
  12. package/dist/classes/CToken.js.map +1 -1
  13. package/dist/classes/ERC20.d.ts +5 -5
  14. package/dist/classes/ERC20.d.ts.map +1 -1
  15. package/dist/classes/ERC20.js +4 -4
  16. package/dist/classes/ERC20.js.map +1 -1
  17. package/dist/classes/Faucet.d.ts +4 -4
  18. package/dist/classes/Faucet.d.ts.map +1 -1
  19. package/dist/classes/Faucet.js +11 -6
  20. package/dist/classes/Faucet.js.map +1 -1
  21. package/dist/classes/Market.d.ts +85 -7
  22. package/dist/classes/Market.d.ts.map +1 -1
  23. package/dist/classes/Market.js +168 -17
  24. package/dist/classes/Market.js.map +1 -1
  25. package/dist/classes/OracleManager.d.ts +3 -3
  26. package/dist/classes/OracleManager.d.ts.map +1 -1
  27. package/dist/classes/OracleManager.js +4 -4
  28. package/dist/classes/OracleManager.js.map +1 -1
  29. package/dist/classes/ProtocolReader.d.ts +20 -10
  30. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  31. package/dist/classes/ProtocolReader.js +23 -12
  32. package/dist/classes/ProtocolReader.js.map +1 -1
  33. package/dist/classes/Redstone.d.ts +14 -0
  34. package/dist/classes/Redstone.d.ts.map +1 -0
  35. package/dist/classes/Redstone.js +57 -0
  36. package/dist/classes/Redstone.js.map +1 -0
  37. package/dist/helpers.d.ts +36 -49
  38. package/dist/helpers.d.ts.map +1 -1
  39. package/dist/helpers.js +119 -18
  40. package/dist/helpers.js.map +1 -1
  41. package/dist/setup.d.ts +5 -3
  42. package/dist/setup.d.ts.map +1 -1
  43. package/dist/setup.js +16 -8
  44. package/dist/setup.js.map +1 -1
  45. package/dist/types.d.ts +4 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +2 -1
@@ -1,14 +1,27 @@
1
+ import { ChangeRate } from "../helpers";
1
2
  import { Contract } from "ethers";
2
3
  import { DynamicMarketData, ProtocolReader, StaticMarketData, UserMarket } from "./ProtocolReader";
3
4
  import { BorrowableCToken, CToken } from "./CToken";
4
5
  import { Decimal } from "decimal.js";
5
- import { address, curvance_signer } from "../types";
6
+ import { address, curvance_provider } from "../types";
6
7
  import { OracleManager } from "./OracleManager";
8
+ export interface Plugins {
9
+ simplePositionManager?: address;
10
+ vaultPositionManager?: address;
11
+ simpleZapper?: address;
12
+ vaultZapper?: address;
13
+ }
7
14
  export interface StatusOf {
8
15
  collateral: bigint;
9
16
  maxDebt: bigint;
10
17
  debt: bigint;
11
18
  }
19
+ export interface DeployData {
20
+ name: string;
21
+ plugins: {
22
+ [key: string]: address;
23
+ };
24
+ }
12
25
  export interface LiquidationStatusOf {
13
26
  lFactor: bigint;
14
27
  collateralPrice: bigint;
@@ -25,30 +38,93 @@ export interface IMarket {
25
38
  hypotheticalLiquidityOf(account: address, cTokenModified: address, redemptionShares: bigint, borrowAssets: bigint): Promise<HypotheticalLiquidityOf>;
26
39
  statusOf(account: address): Promise<StatusOf>;
27
40
  liquidationStatusOf(account: address, collateralToken: address, debtToken: address): Promise<LiquidationStatusOf>;
41
+ liquidationValuesOf(account: address): Promise<{
42
+ soft: bigint;
43
+ hard: bigint;
44
+ debt: bigint;
45
+ }>;
28
46
  }
29
47
  export declare class Market {
30
- signer: curvance_signer;
48
+ provider: curvance_provider;
31
49
  address: address;
32
50
  contract: Contract & IMarket;
33
- abi: any;
34
- adapters: bigint[];
35
- cooldownLength: bigint;
36
51
  tokens: (CToken | BorrowableCToken)[];
37
52
  oracle_manager: OracleManager;
53
+ reader: ProtocolReader;
38
54
  cache: {
39
55
  static: StaticMarketData;
40
56
  dynamic: DynamicMarketData;
41
57
  user: UserMarket;
58
+ deploy: DeployData;
59
+ };
60
+ constructor(provider: curvance_provider, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, deploy_data: DeployData, oracle_manager: OracleManager, reader: ProtocolReader);
61
+ get name(): string;
62
+ get plugins(): Plugins;
63
+ /** @returns {bigint} - The length of the cooldown period in seconds. */
64
+ get cooldownLength(): bigint;
65
+ /** @returns {bigint[]} - A list of oracle identifiers which can be mapped to AdaptorTypes enum */
66
+ get adapters(): bigint[];
67
+ /** @returns {Date | null} - Market cooldown, activated by Collateralization or Borrowing. Lasts as long as {this.cooldownLength} which is currently 20mins */
68
+ get cooldown(): Date | null;
69
+ /** @returns {Decimal} - The user's collateral in USD. */
70
+ get userCollateral(): Decimal;
71
+ /** @returns {Decimal} - The user's debt in USD. */
72
+ get userDebt(): Decimal;
73
+ /** @returns {Decimal} - The user's maximum debt in USD. */
74
+ get userMaxDebt(): Decimal;
75
+ /**
76
+ * Get the user's position health.
77
+ * @returns {Decimal | null} - The user's position health percentage or null if infinity
78
+ */
79
+ get positionHealth(): Decimal | null;
80
+ /**
81
+ * Get the total user deposits in USD.
82
+ * @returns {Decimal} - The total user deposits in USD.
83
+ */
84
+ get userDeposits(): Decimal;
85
+ /**
86
+ * Get the user's net position in USD.
87
+ * @returns {Decimal} - The user's net position in USD.
88
+ */
89
+ get userNet(): Decimal;
90
+ get ltv(): string | {
91
+ min: Decimal;
92
+ max: Decimal;
42
93
  };
43
- constructor(signer: curvance_signer, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, oracle_manager: OracleManager);
44
94
  get tvl(): Decimal;
45
95
  get totalDebt(): Decimal;
46
96
  get totalCollateral(): Decimal;
97
+ /**
98
+ * Get the total user deposits change based on the provided rate.
99
+ * @param rate - What rate to calculate the change for (ex: 'day')
100
+ * @returns The total user deposits change (ex: 50, which would be $50/day)
101
+ */
102
+ getUserDepositsChange(rate: ChangeRate): Decimal;
103
+ /**
104
+ * Get the total user debt change based on the provided rate.
105
+ * @param rate - What rate to calculate the change for (ex: 'day')
106
+ * @returns The total user debt change (ex: 50, which would be $50/day)
107
+ */
108
+ getUserDebtChange(rate: ChangeRate): Decimal;
109
+ /**
110
+ * Get the total user net change based on the provided rate.
111
+ * @param rate - What rate to calculate the change for (ex: 'day')
112
+ * @returns The total user net change (ex: 50, which would be $50/day)
113
+ */
114
+ getUserNetChange(rate: ChangeRate): Decimal;
115
+ highestApy(): Decimal;
116
+ hasBorrowing(): boolean;
47
117
  statusOf(account: address): Promise<{
48
118
  collateral: bigint;
49
119
  maxDebt: bigint;
50
120
  debt: bigint;
51
121
  }>;
122
+ previewAssetImpact(user: address, collateral_ctoken: address, debt_ctoken: address, deposit_amount: bigint): Promise<{
123
+ supply: bigint;
124
+ borrow: bigint;
125
+ earn: bigint;
126
+ }>;
127
+ previewPositionHealth(debt_change: bigint): Promise<bigint>;
52
128
  liquidationStatusOf(account: address, collateralToken: address, debtToken: address): Promise<{
53
129
  lFactor: bigint;
54
130
  collateralPrice: bigint;
@@ -63,6 +139,8 @@ export declare class Market {
63
139
  multiHoldExpiresAt(markets: Market[], reader: ProtocolReader): Promise<{
64
140
  [address: `0x${string}`]: Date | null;
65
141
  }>;
66
- static getAll(signer: curvance_signer, reader: ProtocolReader, oracle_manager: OracleManager): Promise<Market[]>;
142
+ static getAll(provider: curvance_provider, reader: ProtocolReader, oracle_manager: OracleManager, all_deploy_data: {
143
+ [key: string]: any;
144
+ }): Promise<Market[]>;
67
145
  }
68
146
  //# sourceMappingURL=Market.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,OAAO;IACpB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrJ,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrH;AAED,qBAAa,MAAM;IACf,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAM;IAC3C,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;gBAG9E,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,gBAAgB,EAC7B,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,UAAU,EACrB,cAAc,EAAE,aAAa;IA2BjC,IAAI,GAAG,YAMN;IAED,IAAI,SAAS,YAQZ;IAED,IAAI,eAAe,YAMlB;IAEK,QAAQ,CAAC,OAAO,EAAE,OAAO;;;;;IASzB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;;;;;IASlF,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;IASjH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,UAAQ;IAOzC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc;;;WAqBrD,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa;CA2BrG"}
1
+ {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
@@ -9,39 +9,97 @@ const CToken_1 = require("./CToken");
9
9
  const MarketManagerIsolated_json_1 = __importDefault(require("../abis/MarketManagerIsolated.json"));
10
10
  const decimal_js_1 = require("decimal.js");
11
11
  class Market {
12
- signer;
12
+ provider;
13
13
  address;
14
14
  contract;
15
- abi;
16
- adapters;
17
- cooldownLength;
18
15
  tokens = [];
19
16
  oracle_manager;
17
+ reader;
20
18
  cache;
21
- constructor(signer, static_data, dynamic_data, user_data, oracle_manager) {
22
- this.signer = signer;
19
+ constructor(provider, static_data, dynamic_data, user_data, deploy_data, oracle_manager, reader) {
20
+ this.provider = provider;
23
21
  this.address = static_data.address;
24
- this.adapters = static_data.adapters;
25
22
  this.oracle_manager = oracle_manager;
26
- this.cooldownLength = static_data.cooldownLength;
27
- this.contract = (0, helpers_1.contractSetup)(signer, this.address, MarketManagerIsolated_json_1.default);
28
- this.cache = { static: static_data, dynamic: dynamic_data, user: user_data };
23
+ this.reader = reader;
24
+ this.contract = (0, helpers_1.contractSetup)(provider, this.address, MarketManagerIsolated_json_1.default);
25
+ this.cache = { static: static_data, dynamic: dynamic_data, user: user_data, deploy: deploy_data };
29
26
  for (let i = 0; i < static_data.tokens.length; i++) {
27
+ // @NOTE: Merged fields from the 3 types, so you wanna make sure there is no collisions
28
+ // Otherwise we will have some dataloss
30
29
  const tokenData = {
31
30
  ...static_data.tokens[i],
32
31
  ...dynamic_data.tokens[i],
33
32
  ...user_data.tokens[i]
34
33
  };
35
34
  if (tokenData.isBorrowable) {
36
- const ctoken = new CToken_1.BorrowableCToken(signer, tokenData.address, tokenData, this);
35
+ const ctoken = new CToken_1.BorrowableCToken(provider, tokenData.address, tokenData, this);
37
36
  this.tokens.push(ctoken);
38
37
  }
39
38
  else {
40
- const ctoken = new CToken_1.CToken(signer, tokenData.address, tokenData, this);
39
+ const ctoken = new CToken_1.CToken(provider, tokenData.address, tokenData, this);
41
40
  this.tokens.push(ctoken);
42
41
  }
43
42
  }
44
43
  }
44
+ get name() { return this.cache.deploy.name; }
45
+ get plugins() { return this.cache.deploy.plugins ?? {}; }
46
+ /** @returns {bigint} - The length of the cooldown period in seconds. */
47
+ get cooldownLength() { return this.cache.static.cooldownLength; }
48
+ /** @returns {bigint[]} - A list of oracle identifiers which can be mapped to AdaptorTypes enum */
49
+ get adapters() { return this.cache.static.adapters; }
50
+ /** @returns {Date | null} - Market cooldown, activated by Collateralization or Borrowing. Lasts as long as {this.cooldownLength} which is currently 20mins */
51
+ get cooldown() { return this.cache.user.cooldown == this.cooldownLength ? null : new Date(Number(this.cache.user.cooldown * 1000n)); }
52
+ /** @returns {Decimal} - The user's collateral in USD. */
53
+ get userCollateral() { return (0, helpers_1.toDecimal)(this.cache.user.collateral, 18n); }
54
+ /** @returns {Decimal} - The user's debt in USD. */
55
+ get userDebt() { return (0, helpers_1.toDecimal)(this.cache.user.debt, 18n); }
56
+ /** @returns {Decimal} - The user's maximum debt in USD. */
57
+ get userMaxDebt() { return (0, helpers_1.toDecimal)(this.cache.user.maxDebt, 18n); }
58
+ /**
59
+ * Get the user's position health.
60
+ * @returns {Decimal | null} - The user's position health percentage or null if infinity
61
+ */
62
+ get positionHealth() {
63
+ return this.cache.user.positionHealth == helpers_1.UINT256_MAX ? null : (0, decimal_js_1.Decimal)(this.cache.user.positionHealth).div(helpers_1.WAD_DECIMAL);
64
+ }
65
+ /**
66
+ * Get the total user deposits in USD.
67
+ * @returns {Decimal} - The total user deposits in USD.
68
+ */
69
+ get userDeposits() {
70
+ let total_deposits = (0, decimal_js_1.Decimal)(0);
71
+ for (const token of this.tokens) {
72
+ total_deposits = total_deposits.add(token.getUserAssetBalance(true));
73
+ }
74
+ return total_deposits;
75
+ }
76
+ /**
77
+ * Get the user's net position in USD.
78
+ * @returns {Decimal} - The user's net position in USD.
79
+ */
80
+ get userNet() {
81
+ return this.userDeposits.sub(this.userDebt);
82
+ }
83
+ get ltv() {
84
+ if (this.tokens.length === 0) {
85
+ return { min: new decimal_js_1.Decimal(0), max: new decimal_js_1.Decimal(0) };
86
+ }
87
+ let min = this.tokens[0].ltv();
88
+ let max = min;
89
+ for (const token of this.tokens) {
90
+ const ltv = new decimal_js_1.Decimal(token.ltv());
91
+ if (ltv.lessThan(min)) {
92
+ min = ltv;
93
+ }
94
+ if (ltv.greaterThan(max)) {
95
+ max = ltv;
96
+ }
97
+ }
98
+ if (min == max) {
99
+ return `${min.mul(100)}%`;
100
+ }
101
+ return `${min.mul(100)}% - ${max.mul(100)}%`;
102
+ }
45
103
  get tvl() {
46
104
  let marketTvl = new decimal_js_1.Decimal(0);
47
105
  for (const token of this.tokens) {
@@ -53,7 +111,7 @@ class Market {
53
111
  let marketDebt = new decimal_js_1.Decimal(0);
54
112
  for (const token of this.tokens) {
55
113
  if (token.isBorrowable) {
56
- marketDebt = marketDebt.add(token.getTotalDebt(true));
114
+ marketDebt = marketDebt.add(token.getDebt(true));
57
115
  }
58
116
  }
59
117
  return marketDebt;
@@ -65,6 +123,65 @@ class Market {
65
123
  }
66
124
  return marketCollateral;
67
125
  }
126
+ /**
127
+ * Get the total user deposits change based on the provided rate.
128
+ * @param rate - What rate to calculate the change for (ex: 'day')
129
+ * @returns The total user deposits change (ex: 50, which would be $50/day)
130
+ */
131
+ getUserDepositsChange(rate) {
132
+ let total_change = (0, decimal_js_1.Decimal)(0);
133
+ for (const token of this.tokens) {
134
+ const amount = token.getUserAssetBalance(true);
135
+ total_change = total_change.add(token.earnChange(amount, rate));
136
+ }
137
+ return total_change;
138
+ }
139
+ /**
140
+ * Get the total user debt change based on the provided rate.
141
+ * @param rate - What rate to calculate the change for (ex: 'day')
142
+ * @returns The total user debt change (ex: 50, which would be $50/day)
143
+ */
144
+ getUserDebtChange(rate) {
145
+ let total_change = (0, decimal_js_1.Decimal)(0);
146
+ for (const token of this.tokens) {
147
+ if (!token.isBorrowable) {
148
+ continue;
149
+ }
150
+ const amount = token.getUserDebt(true);
151
+ total_change = total_change.add(token.borrowChange(amount, rate));
152
+ }
153
+ return total_change;
154
+ }
155
+ /**
156
+ * Get the total user net change based on the provided rate.
157
+ * @param rate - What rate to calculate the change for (ex: 'day')
158
+ * @returns The total user net change (ex: 50, which would be $50/day)
159
+ */
160
+ getUserNetChange(rate) {
161
+ const earn = this.getUserDepositsChange(rate);
162
+ const debt = this.getUserDebtChange(rate);
163
+ return earn.sub(debt);
164
+ }
165
+ highestApy() {
166
+ let maxApy = new decimal_js_1.Decimal(0);
167
+ for (const token of this.tokens) {
168
+ const tokenApy = token.getApy();
169
+ if (tokenApy.greaterThan(maxApy)) {
170
+ maxApy = tokenApy;
171
+ }
172
+ }
173
+ return maxApy;
174
+ }
175
+ hasBorrowing() {
176
+ let canBorrow = false;
177
+ for (const token of this.tokens) {
178
+ if (token.isBorrowable) {
179
+ canBorrow = true;
180
+ break;
181
+ }
182
+ }
183
+ return canBorrow;
184
+ }
68
185
  async statusOf(account) {
69
186
  const data = await this.contract.statusOf(account);
70
187
  return {
@@ -73,6 +190,22 @@ class Market {
73
190
  debt: BigInt(data.debt)
74
191
  };
75
192
  }
193
+ async previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount) {
194
+ const preview = await this.reader.previewAssetImpact(user, collateral_ctoken, debt_ctoken, deposit_amount);
195
+ return {
196
+ supply: preview.supply,
197
+ borrow: preview.borrow,
198
+ earn: preview.supply - preview.borrow
199
+ };
200
+ }
201
+ async previewPositionHealth(debt_change) {
202
+ const provider = (0, helpers_1.validateProviderAsSigner)(this.provider);
203
+ const liq = await this.contract.liquidationValuesOf(provider.address);
204
+ if (liq.debt + debt_change <= 0n) {
205
+ return helpers_1.UINT256_MAX;
206
+ }
207
+ return (liq.soft * helpers_1.WAD) / (liq.debt + debt_change);
208
+ }
76
209
  async liquidationStatusOf(account, collateralToken, debtToken) {
77
210
  const data = await this.contract.liquidationStatusOf(account, collateralToken, debtToken);
78
211
  return {
@@ -96,11 +229,12 @@ class Market {
96
229
  return unlockTime == cooldownLength ? null : new Date(Number(unlockTime * 1000n));
97
230
  }
98
231
  async multiHoldExpiresAt(markets, reader) {
232
+ const provider = (0, helpers_1.validateProviderAsSigner)(this.provider);
99
233
  if (markets.length == 0) {
100
234
  throw new Error("You can't fetch expirations for no markets.");
101
235
  }
102
236
  const marketAddresses = markets.map(market => market.address);
103
- const cooldownTimestamps = await reader.marketMultiCooldown(marketAddresses, this.signer.address);
237
+ const cooldownTimestamps = await reader.marketMultiCooldown(marketAddresses, provider.address);
104
238
  let cooldowns = {};
105
239
  for (let i = 0; i < markets.length; i++) {
106
240
  const market = markets[i];
@@ -110,13 +244,30 @@ class Market {
110
244
  }
111
245
  return cooldowns;
112
246
  }
113
- static async getAll(signer, reader, oracle_manager) {
114
- const all_data = await reader.getAllMarketData(signer.address);
247
+ static async getAll(provider, reader, oracle_manager, all_deploy_data) {
248
+ const user = "address" in provider ? provider.address : helpers_1.EMPTY_ADDRESS;
249
+ const all_data = await reader.getAllMarketData(user);
250
+ const deploy_keys = Object.keys(all_deploy_data);
115
251
  let markets = [];
116
252
  for (let i = 0; i < all_data.staticMarket.length; i++) {
117
253
  const staticData = all_data.staticMarket[i];
118
254
  const dynamicData = all_data.dynamicMarket[i];
119
255
  const userData = all_data.userData.markets[i];
256
+ const market_address = staticData.address;
257
+ let deploy_data;
258
+ for (const obj_key of deploy_keys) {
259
+ const data = all_deploy_data[obj_key];
260
+ if (market_address == data?.address) {
261
+ deploy_data = {
262
+ name: obj_key,
263
+ plugins: data.plugins
264
+ };
265
+ break;
266
+ }
267
+ }
268
+ if (deploy_data == undefined) {
269
+ throw new Error(`Could not find deploy data for market: ${market_address}`);
270
+ }
120
271
  if (staticData == undefined) {
121
272
  throw new Error(`Could not find static market data for index: ${i}`);
122
273
  }
@@ -126,7 +277,7 @@ class Market {
126
277
  if (userData == undefined) {
127
278
  throw new Error(`Could not find user market data for index: ${i}`);
128
279
  }
129
- const market = new Market(signer, staticData, dynamicData, userData, oracle_manager);
280
+ const market = new Market(provider, staticData, dynamicData, userData, deploy_data, oracle_manager, reader);
130
281
  markets.push(market);
131
282
  }
132
283
  return markets;
@@ -1 +1 @@
1
- {"version":3,"file":"Market.js","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Market.js","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { address, curvance_signer } from "../types";
1
+ import { address, curvance_provider } from "../types";
2
2
  import { Contract } from "ethers";
3
3
  export interface IOracleManager {
4
4
  getPrice(asset: address, inUSD: boolean, getLower: boolean): Promise<[bigint, bigint]>;
5
5
  }
6
6
  export declare class OracleManager {
7
- signer: curvance_signer;
7
+ provider: curvance_provider;
8
8
  address: address;
9
9
  contract: Contract & IOracleManager;
10
- constructor(signer: curvance_signer, address: address);
10
+ constructor(provider: curvance_provider, address: address);
11
11
  getPrice(asset: address, inUSD: boolean, getLower: boolean): Promise<bigint>;
12
12
  }
13
13
  //# sourceMappingURL=OracleManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OracleManager.d.ts","sourceRoot":"","sources":["../../src/classes/OracleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1F;AAED,qBAAa,aAAa;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC;gBAExB,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAQ/C,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;CAmBnE"}
1
+ {"version":3,"file":"OracleManager.d.ts","sourceRoot":"","sources":["../../src/classes/OracleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1F;AAED,qBAAa,aAAa;IACtB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAAC;gBAExB,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO;IAQnD,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;CAmBnE"}
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OracleManager = void 0;
4
4
  const helpers_1 = require("../helpers");
5
5
  class OracleManager {
6
- signer;
6
+ provider;
7
7
  address;
8
8
  contract;
9
- constructor(signer, address) {
10
- this.signer = signer;
9
+ constructor(provider, address) {
10
+ this.provider = provider;
11
11
  this.address = address;
12
- this.contract = (0, helpers_1.contractSetup)(signer, this.address, [
12
+ this.contract = (0, helpers_1.contractSetup)(provider, this.address, [
13
13
  "function getPrice(address, bool, bool) view returns (uint256, uint256)",
14
14
  ]);
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OracleManager.js","sourceRoot":"","sources":["../../src/classes/OracleManager.ts"],"names":[],"mappings":";;;AACA,wCAA2C;AAO3C,MAAa,aAAa;IACtB,MAAM,CAAkB;IACxB,OAAO,CAAU;IACjB,QAAQ,CAA4B;IAEpC,YAAY,MAAuB,EAAE,OAAgB;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAkB,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAiB,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;YAChE,wEAAwE;SAC3E,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,KAAc,EAAE,QAAiB;QAC5D,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAa,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE1F,IAAG,SAAS,IAAI,EAAE,EAAE,CAAC;YACjB,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,QAAO,SAAS,EAAE,CAAC;gBACf,KAAK,EAAE;oBACH,SAAS,GAAG,oDAAoD,CAAC;oBACjE,MAAM;gBACV,KAAK,EAAE;oBACH,SAAS,GAAG,oDAAoD,CAAC;oBACjE,MAAM;YACd,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,UAAU,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAhCD,sCAgCC"}
1
+ {"version":3,"file":"OracleManager.js","sourceRoot":"","sources":["../../src/classes/OracleManager.ts"],"names":[],"mappings":";;;AACA,wCAA2C;AAO3C,MAAa,aAAa;IACtB,QAAQ,CAAoB;IAC5B,OAAO,CAAU;IACjB,QAAQ,CAA4B;IAEpC,YAAY,QAA2B,EAAE,OAAgB;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAkB,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAiB,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;YAClE,wEAAwE;SAC3E,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,KAAc,EAAE,QAAiB;QAC5D,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAa,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE1F,IAAG,SAAS,IAAI,EAAE,EAAE,CAAC;YACjB,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,QAAO,SAAS,EAAE,CAAC;gBACf,KAAK,EAAE;oBACH,SAAS,GAAG,oDAAoD,CAAC;oBACjE,MAAM;gBACV,KAAK,EAAE;oBACH,SAAS,GAAG,oDAAoD,CAAC;oBACjE,MAAM;YACd,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,UAAU,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAhCD,sCAgCC"}
@@ -1,5 +1,11 @@
1
1
  import { Contract } from "ethers";
2
- import { address, curvance_signer } from "../types";
2
+ import { address, curvance_provider } from "../types";
3
+ export declare enum AdaptorTypes {
4
+ CHAINLINK = 1,
5
+ REDSTONE_CORE = 2,
6
+ REDSTONE_CLASSIC = 3,
7
+ MOCK = 1337
8
+ }
3
9
  export interface StaticMarketAsset {
4
10
  address: address;
5
11
  name: string;
@@ -13,7 +19,7 @@ export interface StaticMarketToken {
13
19
  name: string;
14
20
  symbol: string;
15
21
  decimals: bigint;
16
- adapters: [bigint, bigint];
22
+ adapters: [AdaptorTypes, AdaptorTypes];
17
23
  isBorrowable: boolean;
18
24
  borrowPaused: boolean;
19
25
  collateralizationPaused: boolean;
@@ -41,7 +47,7 @@ export interface StaticMarketData {
41
47
  }
42
48
  export interface DynamicMarketToken {
43
49
  address: address;
44
- tvl: bigint;
50
+ totalSupply: bigint;
45
51
  collateral: bigint;
46
52
  debt: bigint;
47
53
  sharePrice: bigint;
@@ -60,10 +66,10 @@ export interface DynamicMarketData {
60
66
  }
61
67
  export interface UserMarketToken {
62
68
  address: address;
63
- assetAmount: bigint;
64
- shareAmount: bigint;
65
- collateral: bigint;
66
- debt: bigint;
69
+ userAssetBalance: bigint;
70
+ userShareBalance: bigint;
71
+ userCollateral: bigint;
72
+ userDebt: bigint;
67
73
  }
68
74
  export interface UserMarket {
69
75
  address: address;
@@ -88,16 +94,17 @@ export interface IProtocolReader {
88
94
  getDynamicMarketData(): Promise<DynamicMarketData[]>;
89
95
  getStaticMarketData(): Promise<StaticMarketData[]>;
90
96
  marketMultiCooldown(markets: address[], account: address): Promise<bigint[]>;
97
+ previewAssetImpact(user: address, collateral_ctoken: address, debt_ctoken: address, deposit_amount: bigint): Promise<[bigint, bigint]>;
91
98
  hypotheticalMaxLeverage(account: address, borrowableCToken: address, cToken: address, assets: bigint): {
92
99
  maxDebtBorrowable: bigint;
93
100
  isOffset: boolean;
94
101
  };
95
102
  }
96
103
  export declare class ProtocolReader {
97
- signer: curvance_signer;
104
+ provider: curvance_provider;
98
105
  address: address;
99
106
  contract: Contract & IProtocolReader;
100
- constructor(signer: curvance_signer, address: address);
107
+ constructor(provider: curvance_provider, address: address);
101
108
  getAllMarketData(account: address, use_api?: boolean): Promise<{
102
109
  staticMarket: StaticMarketData[];
103
110
  dynamicMarket: DynamicMarketData[];
@@ -105,7 +112,10 @@ export declare class ProtocolReader {
105
112
  }>;
106
113
  getDynamicMarketData(use_api?: boolean): Promise<DynamicMarketData[]>;
107
114
  getUserData(account: address): Promise<UserData>;
108
- getAllDynamicState(use_api?: boolean): Promise<void>;
115
+ previewAssetImpact(user: address, collateral_ctoken: address, debt_ctoken: address, deposit_amount: bigint): Promise<{
116
+ supply: bigint;
117
+ borrow: bigint;
118
+ }>;
109
119
  hypotheticalMaxLeverage(account: address, borrowableCToken: address, cToken: address, assets: bigint): Promise<{
110
120
  maxDebtBorrowable: bigint;
111
121
  isOffset: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ProtocolReader.d.ts","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtocolReader.d.ts","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}