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.
- package/README.md +2 -0
- package/dist/abis/ProtocolReader.json +54 -10
- package/dist/abis/RedstoneCoreAdaptor.json +798 -0
- package/dist/chains/index.d.ts +0 -37
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/index.js +1 -2
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/monad-testnet.json +65 -101
- package/dist/classes/CToken.d.ts +57 -23
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +122 -54
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/ERC20.d.ts +5 -5
- package/dist/classes/ERC20.d.ts.map +1 -1
- package/dist/classes/ERC20.js +4 -4
- package/dist/classes/ERC20.js.map +1 -1
- package/dist/classes/Faucet.d.ts +4 -4
- package/dist/classes/Faucet.d.ts.map +1 -1
- package/dist/classes/Faucet.js +11 -6
- package/dist/classes/Faucet.js.map +1 -1
- package/dist/classes/Market.d.ts +85 -7
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +168 -17
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/OracleManager.d.ts +3 -3
- package/dist/classes/OracleManager.d.ts.map +1 -1
- package/dist/classes/OracleManager.js +4 -4
- package/dist/classes/OracleManager.js.map +1 -1
- package/dist/classes/ProtocolReader.d.ts +20 -10
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +23 -12
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/classes/Redstone.d.ts +14 -0
- package/dist/classes/Redstone.d.ts.map +1 -0
- package/dist/classes/Redstone.js +57 -0
- package/dist/classes/Redstone.js.map +1 -0
- package/dist/helpers.d.ts +36 -49
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +119 -18
- package/dist/helpers.js.map +1 -1
- package/dist/setup.d.ts +5 -3
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +16 -8
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
package/dist/classes/Market.d.ts
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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(
|
|
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":"
|
|
1
|
+
{"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/Market.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
22
|
-
this.
|
|
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.
|
|
27
|
-
this.contract = (0, helpers_1.contractSetup)(
|
|
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(
|
|
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(
|
|
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.
|
|
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,
|
|
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(
|
|
114
|
-
const
|
|
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(
|
|
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":";;;;;;AAAA,wCAA0I;AAG1I,qCAAuE;AACvE,oGAAqD;AACrD,2CAAqC;AA2CrC,MAAa,MAAM;IACf,QAAQ,CAAoB;IAC5B,OAAO,CAAU;IACjB,QAAQ,CAAqB;IAC7B,MAAM,GAAkC,EAAE,CAAC;IAC3C,cAAc,CAAgB;IAC9B,MAAM,CAAiB;IACvB,KAAK,CAAiG;IAEtG,YACI,QAA2B,EAC3B,WAA6B,EAC7B,YAA+B,EAC/B,SAAqB,EACrB,WAAuB,EACvB,cAA6B,EAC7B,MAAsB;QAEtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAU,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,oCAAG,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAElG,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,uFAAuF;YACvF,uCAAuC;YACvC,MAAM,SAAS,GAAG;gBACd,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAE;gBACzB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE;gBAC1B,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE;aAC1B,CAAC;YAEF,IAAG,SAAS,CAAC,YAAY,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,yBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBAClF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjE,wEAAwE;IACxE,IAAI,cAAc,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IACjE,kGAAkG;IAClG,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,8JAA8J;IAC9J,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtI,yDAAyD;IACzD,IAAI,cAAc,KAAK,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,mDAAmD;IACnD,IAAI,QAAQ,KAAK,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/D,2DAA2D;IAC3D,IAAI,WAAW,KAAK,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,qBAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,qBAAW,CAAC,CAAC;IAC3H,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACZ,IAAI,cAAc,GAAG,IAAA,oBAAO,EAAC,CAAC,CAAC,CAAC;QAChC,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,GAAG;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,GAAG,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,GAAG,GAAG,GAAG,CAAC;QAEd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,oBAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACrC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,GAAG,GAAG,GAAG,CAAC;YACd,CAAC;YACD,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,GAAG,GAAG,CAAC;YACd,CAAC;QACL,CAAC;QAED,IAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YACZ,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAC9B,CAAC;QAED,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IACjD,CAAC;IAED,IAAI,GAAG;QACH,IAAI,SAAS,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACT,IAAI,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAChC,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBACpB,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,eAAe;QACf,IAAI,gBAAgB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACtC,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,IAAgB;QAClC,IAAI,YAAY,GAAG,IAAA,oBAAO,EAAC,CAAC,CAAC,CAAC;QAC9B,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC/C,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAGD;;;;OAIG;IACH,iBAAiB,CAAC,IAAgB;QAC9B,IAAI,YAAY,GAAG,IAAA,oBAAO,EAAC,CAAC,CAAC,CAAC;QAC9B,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAE,KAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,IAAgB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU;QACN,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,IAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,QAAQ,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY;QACR,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBACpB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO;YACH,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B,CAAA;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAa,EAAE,iBAA0B,EAAE,WAAoB,EAAE,cAAsB;QAC5G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAC3G,OAAO;YACH,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;SACxC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAC3C,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAkB,CAAC,CAAC;QAEjF,IAAG,GAAG,CAAC,IAAI,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC;YAC9B,OAAO,qBAAW,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,aAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAgB,EAAE,eAAwB,EAAE,SAAkB;QACpF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAC1F,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACpC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAgB,EAAE,cAAuB,EAAE,gBAAwB,EAAE,YAAoB;QACnH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAClH,OAAO;YACH,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACjD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SAC1C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,KAAK,GAAG,KAAK;QAC3C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QACxH,MAAM,UAAU,GAAG,iBAAiB,GAAG,cAAc,CAAC;QACtD,OAAO,UAAU,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAiB,EAAE,MAAsB;QAC9D,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAkB,CAAC,CAAC;QAG1G,IAAI,SAAS,GAAwC,EAAE,CAAC;QACxD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC3B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAE,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAE7C,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC;QACzH,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAA2B,EAAE,MAAsB,EAAE,cAA6B,EAAE,eAAuC;QAC3I,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAa,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAe,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEjD,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,UAAU,GAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;YAC/C,MAAM,QAAQ,GAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAElD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;YAC1C,IAAI,WAAmC,CAAC;YACxC,KAAI,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAE,CAAC;gBAEvC,IAAG,cAAc,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBACjC,WAAW,GAAG;wBACV,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,IAAI,CAAC,OAAO;qBACxB,CAAC;oBACF,MAAM;gBACV,CAAC;YACL,CAAC;YAED,IAAG,WAAW,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,cAAc,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,IAAG,UAAU,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,IAAG,WAAW,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,IAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YAC5G,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AA3UD,wBA2UC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { address,
|
|
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
|
-
|
|
7
|
+
provider: curvance_provider;
|
|
8
8
|
address: address;
|
|
9
9
|
contract: Contract & IOracleManager;
|
|
10
|
-
constructor(
|
|
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,
|
|
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
|
-
|
|
6
|
+
provider;
|
|
7
7
|
address;
|
|
8
8
|
contract;
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
9
|
+
constructor(provider, address) {
|
|
10
|
+
this.provider = provider;
|
|
11
11
|
this.address = address;
|
|
12
|
-
this.contract = (0, helpers_1.contractSetup)(
|
|
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,
|
|
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,
|
|
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: [
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
104
|
+
provider: curvance_provider;
|
|
98
105
|
address: address;
|
|
99
106
|
contract: Contract & IProtocolReader;
|
|
100
|
-
constructor(
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ProtocolReader.d.ts","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
|