curvance 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +17 -0
  2. package/dist/abis/BaseCToken.json +1550 -0
  3. package/dist/abis/BorrowableCToken.json +2188 -0
  4. package/dist/abis/IDynamicIRM.json +158 -0
  5. package/dist/abis/MarketManagerIsolated.json +1587 -0
  6. package/dist/abis/ProtocolReader.json +767 -0
  7. package/dist/classes/CToken.d.ts +170 -0
  8. package/dist/classes/CToken.d.ts.map +1 -0
  9. package/dist/classes/CToken.js +292 -0
  10. package/dist/classes/CToken.js.map +1 -0
  11. package/dist/classes/CVE.d.ts +7 -0
  12. package/dist/classes/CVE.d.ts.map +1 -0
  13. package/dist/classes/CVE.js +7 -0
  14. package/dist/classes/CVE.js.map +1 -0
  15. package/dist/classes/ERC20.d.ts +35 -0
  16. package/dist/classes/ERC20.d.ts.map +1 -0
  17. package/dist/classes/ERC20.js +68 -0
  18. package/dist/classes/ERC20.js.map +1 -0
  19. package/dist/classes/Faucet.d.ts +25 -0
  20. package/dist/classes/Faucet.d.ts.map +1 -0
  21. package/dist/classes/Faucet.js +48 -0
  22. package/dist/classes/Faucet.js.map +1 -0
  23. package/dist/classes/Market.d.ts +68 -0
  24. package/dist/classes/Market.d.ts.map +1 -0
  25. package/dist/classes/Market.js +136 -0
  26. package/dist/classes/Market.js.map +1 -0
  27. package/dist/classes/OracleManager.d.ts +13 -0
  28. package/dist/classes/OracleManager.d.ts.map +1 -0
  29. package/dist/classes/OracleManager.js +34 -0
  30. package/dist/classes/OracleManager.js.map +1 -0
  31. package/dist/classes/ProtocolReader.d.ts +116 -0
  32. package/dist/classes/ProtocolReader.d.ts.map +1 -0
  33. package/dist/classes/ProtocolReader.js +136 -0
  34. package/dist/classes/ProtocolReader.js.map +1 -0
  35. package/dist/helpers.d.ts +20 -0
  36. package/dist/helpers.d.ts.map +1 -0
  37. package/dist/helpers.js +45 -0
  38. package/dist/helpers.js.map +1 -0
  39. package/dist/setup.d.ts +11 -0
  40. package/dist/setup.d.ts.map +1 -0
  41. package/dist/setup.js +28 -0
  42. package/dist/setup.js.map +1 -0
  43. package/dist/types.d.ts +10 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +3 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +31 -0
@@ -0,0 +1,170 @@
1
+ import { Contract, TransactionResponse } from "ethers";
2
+ import { DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
3
+ import { ERC20 } from "./ERC20";
4
+ import { Market } from "./Market";
5
+ import Decimal from "decimal.js";
6
+ import { address, bytes, curvance_signer } from "../types";
7
+ export interface AccountSnapshot {
8
+ asset: address;
9
+ decimals: bigint;
10
+ isCollateral: boolean;
11
+ exchangeRate: bigint;
12
+ collateralPosted: bigint;
13
+ debtBalance: bigint;
14
+ }
15
+ export interface MulticallAction {
16
+ target: address;
17
+ isPriceUpdate: boolean;
18
+ data: bytes;
19
+ }
20
+ export interface ICToken {
21
+ decimals(): Promise<bigint>;
22
+ isBorrowable(): Promise<boolean>;
23
+ balanceOf(account: address): Promise<bigint>;
24
+ asset(): Promise<address>;
25
+ totalSupply(): Promise<bigint>;
26
+ totalAssets(): Promise<bigint>;
27
+ marketManager(): Promise<address>;
28
+ convertToAssets(shares: bigint): Promise<bigint>;
29
+ convertToShares(assets: bigint): Promise<bigint>;
30
+ exchangeRate(): Promise<bigint>;
31
+ getSnapshot(account: address): Promise<AccountSnapshot>;
32
+ multicall(calls: MulticallAction[]): Promise<bytes[]>;
33
+ deposit(assets: bigint, receiver: address): Promise<TransactionResponse>;
34
+ depositAsCollateral(assets: bigint, receiver: address): Promise<TransactionResponse>;
35
+ redeem(shares: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
36
+ marketCollateralPosted(): Promise<bigint>;
37
+ collateralPosted(account: address): Promise<bigint>;
38
+ withdrawCollateral(assets: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
39
+ redeemCollateral(shares: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
40
+ postCollateral(shares: bigint): Promise<TransactionResponse>;
41
+ removeCollateral(shares: bigint): Promise<TransactionResponse>;
42
+ symbol(): Promise<string>;
43
+ name(): Promise<string>;
44
+ maxDeposit(receiver: address): Promise<bigint>;
45
+ transfer(receiver: address, amount: bigint): Promise<TransactionResponse>;
46
+ approve(spender: address, amount: bigint): Promise<TransactionResponse>;
47
+ allowance(owner: address, spender: address): Promise<bigint>;
48
+ }
49
+ export interface IBorrowableCToken extends ICToken {
50
+ borrow(amount: bigint, receiver: address): Promise<void>;
51
+ repay(amount: bigint): Promise<void>;
52
+ interestFee(): Promise<bigint>;
53
+ marketOutstandingDebt(): Promise<bigint>;
54
+ debtBalance(account: address): Promise<bigint>;
55
+ IRM(): Promise<address>;
56
+ }
57
+ export interface IDynamicIRM {
58
+ ADJUSTMENT_RATE(): Promise<bigint>;
59
+ linkedToken(): Promise<address>;
60
+ borrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
61
+ predictedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
62
+ supplyRate(assetsHeld: bigint, debt: bigint, interestFee: bigint): Promise<bigint>;
63
+ adjustedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
64
+ utilizationRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
65
+ }
66
+ export declare class CToken {
67
+ signer: curvance_signer;
68
+ address: address;
69
+ contract: Contract & ICToken;
70
+ abi: any;
71
+ cache: StaticMarketToken & DynamicMarketToken & UserMarketToken;
72
+ market: Market;
73
+ constructor(signer: curvance_signer, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
74
+ get adapters(): [bigint, bigint];
75
+ get borrowPaused(): boolean;
76
+ get collateralizationPaused(): boolean;
77
+ get mintPaused(): boolean;
78
+ get collateralCap(): bigint;
79
+ get debtCap(): bigint;
80
+ get marketManager(): Market;
81
+ get decimals(): bigint;
82
+ get symbol(): string;
83
+ get name(): string;
84
+ get collRatio(): bigint;
85
+ get collReqSoft(): bigint;
86
+ get collReqHard(): bigint;
87
+ get liqIncBase(): bigint;
88
+ get liqIncCurve(): bigint;
89
+ get liqIncMin(): bigint;
90
+ get liqIncMax(): bigint;
91
+ get closeFactorBase(): bigint;
92
+ get closeFactorCurve(): bigint;
93
+ get closeFactorMin(): bigint;
94
+ get closeFactorMax(): bigint;
95
+ get userBalanceCache(): bigint;
96
+ get userAssetBalanceCache(): bigint;
97
+ get asset(): import("./ProtocolReader").StaticMarketAsset;
98
+ get isBorrowable(): boolean;
99
+ getAsset(asErc20?: boolean): `0x${string}` | ERC20;
100
+ getPrice(lower?: boolean, asset?: boolean): Decimal;
101
+ getTvl(inUSD: true): Decimal;
102
+ getTvl(inUSD: false): bigint;
103
+ fetchTvl(inUSD: true): Promise<Decimal>;
104
+ fetchTvl(inUSD: false): Promise<bigint>;
105
+ getTotalCollateral(inUSD: true): Decimal;
106
+ getTotalCollateral(inUSD: false): bigint;
107
+ fetchTotalCollateral(inUSD: true): Promise<Decimal>;
108
+ fetchTotalCollateral(inUSD: false): Promise<bigint>;
109
+ fetchDecimals(): Promise<bigint>;
110
+ fetchIsBorrowable(): Promise<boolean>;
111
+ fetchAsset(): Promise<`0x${string}`>;
112
+ fetchMarketManagerAddr(): Promise<`0x${string}`>;
113
+ fetchSymbol(): Promise<string>;
114
+ fetchName(): Promise<string>;
115
+ fetchPrice(getLower?: boolean, inUSD?: boolean): Promise<bigint>;
116
+ totalSupply(): Promise<bigint>;
117
+ totalAssets(): Promise<bigint>;
118
+ exchangeRate(): Promise<bigint>;
119
+ marketCollateralPosted(): Promise<bigint>;
120
+ balanceOf(account: address): Promise<bigint>;
121
+ maxDeposit(receiver: address): Promise<bigint>;
122
+ transfer(receiver: address, amount: bigint): Promise<TransactionResponse>;
123
+ redeemCollateral(shares: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
124
+ postCollateral(shares: bigint): Promise<TransactionResponse>;
125
+ removeCollateral(shares: bigint): Promise<TransactionResponse>;
126
+ withdrawCollateral(assets: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
127
+ convertToAssets(shares: bigint): Promise<bigint>;
128
+ convertToShares(assets: bigint): Promise<bigint>;
129
+ deposit(assets: bigint, receiver: address): Promise<TransactionResponse>;
130
+ depositAsCollateral(assets: bigint, receiver: address): Promise<TransactionResponse>;
131
+ redeem(shares: bigint, receiver: address, owner: address): Promise<TransactionResponse>;
132
+ collateralPosted(account: address): Promise<bigint>;
133
+ multicall(calls: MulticallAction[]): Promise<`0x${string}`[]>;
134
+ getSnapshot(account: address): Promise<{
135
+ asset: `0x${string}`;
136
+ decimals: bigint;
137
+ isCollateral: boolean;
138
+ exchangeRate: bigint;
139
+ collateralPosted: bigint;
140
+ debtBalance: bigint;
141
+ }>;
142
+ fetchConvertTokensToUsd(tokenAmount: bigint): Promise<bigint>;
143
+ convertTokensToUsd(tokenAmount: bigint): Decimal;
144
+ }
145
+ export declare class BorrowableCToken extends CToken {
146
+ contract: Contract & IBorrowableCToken;
147
+ constructor(signer: curvance_signer, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
148
+ get liquidity(): bigint;
149
+ get borrowRate(): bigint;
150
+ get predictedBorrowRate(): bigint;
151
+ get utilizationRate(): bigint;
152
+ get supplyRate(): bigint;
153
+ getPrice(lower?: boolean, asset?: boolean): Decimal;
154
+ getTotalDebt(inUSD: true): Decimal;
155
+ getTotalDebt(inUSD: false): bigint;
156
+ fetchTotalDebt(inUSD: true): Promise<Decimal>;
157
+ fetchTotalDebt(inUSD: false): Promise<bigint>;
158
+ borrow(amount: bigint, receiver: address): Promise<void>;
159
+ dynamicIRM(): Promise<Contract & IDynamicIRM>;
160
+ fetchBorrowRate(): Promise<bigint>;
161
+ fetchPredictedBorrowRate(): Promise<bigint>;
162
+ fetchUtilizationRate(): Promise<bigint>;
163
+ fetchSupplyRate(): Promise<bigint>;
164
+ fetchLiquidity(): Promise<bigint>;
165
+ repay(amount: bigint): Promise<void>;
166
+ interestFee(): Promise<bigint>;
167
+ marketOutstandingDebt(): Promise<bigint>;
168
+ debtBalance(account: address): Promise<bigint>;
169
+ }
170
+ //# sourceMappingURL=CToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BorrowableCToken = exports.CToken = void 0;
7
+ const helpers_1 = require("../helpers");
8
+ const ERC20_1 = require("./ERC20");
9
+ const decimal_js_1 = __importDefault(require("decimal.js"));
10
+ const BaseCToken_json_1 = __importDefault(require("../abis/BaseCToken.json"));
11
+ const BorrowableCToken_json_1 = __importDefault(require("../abis/BorrowableCToken.json"));
12
+ const IDynamicIRM_json_1 = __importDefault(require("../abis/IDynamicIRM.json"));
13
+ const SECONDS_PER_YEAR = BigInt(31_536_000);
14
+ // BaseCToken ABI
15
+ class CToken {
16
+ signer;
17
+ address;
18
+ contract;
19
+ abi;
20
+ cache;
21
+ market;
22
+ constructor(signer, address, cache, market) {
23
+ this.signer = signer;
24
+ this.address = address;
25
+ this.contract = (0, helpers_1.contractSetup)(signer, address, BaseCToken_json_1.default);
26
+ this.cache = cache;
27
+ this.market = market;
28
+ }
29
+ get adapters() { return this.cache.adapters; }
30
+ get borrowPaused() { return this.cache.borrowPaused; }
31
+ get collateralizationPaused() { return this.cache.collateralizationPaused; }
32
+ get mintPaused() { return this.cache.mintPaused; }
33
+ get collateralCap() { return this.cache.collateralCap; }
34
+ get debtCap() { return this.cache.debtCap; }
35
+ get marketManager() { return this.market; }
36
+ get decimals() { return this.cache.decimals; }
37
+ get symbol() { return this.cache.symbol; }
38
+ get name() { return this.cache.name; }
39
+ get collRatio() { return this.cache.collRatio; }
40
+ get collReqSoft() { return this.cache.collReqSoft; }
41
+ get collReqHard() { return this.cache.collReqHard; }
42
+ get liqIncBase() { return this.cache.liqIncBase; }
43
+ get liqIncCurve() { return this.cache.liqIncCurve; }
44
+ get liqIncMin() { return this.cache.liqIncMin; }
45
+ get liqIncMax() { return this.cache.liqIncMax; }
46
+ get closeFactorBase() { return this.cache.closeFactorBase; }
47
+ get closeFactorCurve() { return this.cache.closeFactorCurve; }
48
+ get closeFactorMin() { return this.cache.closeFactorMin; }
49
+ get closeFactorMax() { return this.cache.closeFactorMax; }
50
+ get userBalanceCache() { return this.cache.shareAmount; }
51
+ get userAssetBalanceCache() { return this.cache.assetAmount; }
52
+ get asset() { return this.cache.asset; }
53
+ get isBorrowable() { return this.cache.isBorrowable; }
54
+ getAsset(asErc20 = true) {
55
+ return asErc20 ? new ERC20_1.ERC20(this.signer, this.cache.asset.address, this.cache.asset) : this.cache.asset.address;
56
+ }
57
+ getPrice(lower = false, asset = false) {
58
+ let price = asset ? this.cache.assetPrice : this.cache.sharePrice;
59
+ if (lower) {
60
+ price = asset ? this.cache.assetPriceLower : this.cache.sharePriceLower;
61
+ }
62
+ // Use 1e18 always against USD
63
+ return (0, decimal_js_1.default)(price).div((0, decimal_js_1.default)(1e18));
64
+ }
65
+ getTvl(inUSD = true) {
66
+ const tvl = this.cache.tvl;
67
+ return inUSD ? this.convertTokensToUsd(tvl) : tvl;
68
+ }
69
+ async fetchTvl(inUSD = true) {
70
+ const tvl = await this.totalSupply();
71
+ return inUSD ? this.fetchConvertTokensToUsd(tvl) : tvl;
72
+ }
73
+ getTotalCollateral(inUSD = true) {
74
+ const totalCollateral = this.cache.collateral;
75
+ return inUSD ? this.convertTokensToUsd(totalCollateral) : totalCollateral;
76
+ }
77
+ async fetchTotalCollateral(inUSD = true) {
78
+ const totalCollateral = await this.contract.marketCollateralPosted();
79
+ return inUSD ? this.fetchConvertTokensToUsd(totalCollateral) : totalCollateral;
80
+ }
81
+ async fetchDecimals() {
82
+ const decimals = await this.contract.decimals();
83
+ this.cache.asset.decimals = decimals;
84
+ return decimals;
85
+ }
86
+ async fetchIsBorrowable() {
87
+ const canBorrow = await this.contract.isBorrowable();
88
+ this.cache.isBorrowable = canBorrow;
89
+ return canBorrow;
90
+ }
91
+ async fetchAsset() {
92
+ const asset = await this.contract.asset();
93
+ this.cache.asset.address = asset;
94
+ return asset;
95
+ }
96
+ async fetchMarketManagerAddr() {
97
+ return this.contract.marketManager();
98
+ }
99
+ async fetchSymbol() {
100
+ const symbol = await this.contract.symbol();
101
+ this.cache.asset.symbol = symbol;
102
+ return symbol;
103
+ }
104
+ async fetchName() {
105
+ const name = await this.contract.name();
106
+ this.cache.name = name;
107
+ return name;
108
+ }
109
+ async fetchPrice(getLower = false, inUSD = true) {
110
+ const price = await this.market.oracle_manager.getPrice(this.address, inUSD, getLower);
111
+ if (getLower) {
112
+ this.cache.sharePriceLower = price;
113
+ }
114
+ else {
115
+ this.cache.sharePrice = price;
116
+ }
117
+ return price;
118
+ }
119
+ async totalSupply() {
120
+ return this.contract.totalSupply();
121
+ }
122
+ async totalAssets() {
123
+ return this.contract.totalAssets();
124
+ }
125
+ async exchangeRate() {
126
+ return this.contract.exchangeRate();
127
+ }
128
+ async marketCollateralPosted() {
129
+ return this.contract.marketCollateralPosted();
130
+ }
131
+ async balanceOf(account) {
132
+ return this.contract.balanceOf(account);
133
+ }
134
+ async maxDeposit(receiver) {
135
+ return this.contract.maxDeposit(receiver);
136
+ }
137
+ async transfer(receiver, amount) {
138
+ return this.contract.transfer(receiver, amount);
139
+ }
140
+ async redeemCollateral(shares, receiver, owner) {
141
+ // TODO: Implement oracle handling
142
+ return this.contract.redeemCollateral(shares, receiver, owner);
143
+ }
144
+ async postCollateral(shares) {
145
+ // TODO: Implement oracle handling
146
+ return this.contract.postCollateral(shares);
147
+ }
148
+ async removeCollateral(shares) {
149
+ // TODO: Implement oracle handling
150
+ return this.contract.removeCollateral(shares);
151
+ }
152
+ async withdrawCollateral(assets, receiver, owner) {
153
+ // TODO: Implement oracle handling
154
+ return this.contract.withdrawCollateral(assets, receiver, owner);
155
+ }
156
+ async convertToAssets(shares) {
157
+ return this.contract.convertToAssets(shares);
158
+ }
159
+ async convertToShares(assets) {
160
+ return this.contract.convertToShares(assets);
161
+ }
162
+ async deposit(assets, receiver) {
163
+ // TODO: Implement oracle handling
164
+ return this.contract.deposit(assets, receiver);
165
+ }
166
+ async depositAsCollateral(assets, receiver) {
167
+ // TODO: Implement oracle handling
168
+ return this.contract.depositAsCollateral(assets, receiver);
169
+ }
170
+ async redeem(shares, receiver, owner) {
171
+ // TODO: Implement oracle handling
172
+ return this.contract.redeem(shares, receiver, owner);
173
+ }
174
+ async collateralPosted(account) {
175
+ return this.contract.collateralPosted(account);
176
+ }
177
+ async multicall(calls) {
178
+ return this.contract.multicall(calls);
179
+ }
180
+ async getSnapshot(account) {
181
+ const snapshot = await this.contract.getSnapshot(account);
182
+ return {
183
+ asset: snapshot.asset,
184
+ decimals: BigInt(snapshot.decimals),
185
+ isCollateral: snapshot.isCollateral,
186
+ exchangeRate: BigInt(snapshot.exchangeRate),
187
+ collateralPosted: BigInt(snapshot.collateralPosted),
188
+ debtBalance: BigInt(snapshot.debtBalance)
189
+ };
190
+ }
191
+ async fetchConvertTokensToUsd(tokenAmount) {
192
+ const price = await this.fetchPrice();
193
+ const decimals = await this.fetchDecimals();
194
+ return (price * tokenAmount) / (10n ** decimals);
195
+ }
196
+ convertTokensToUsd(tokenAmount) {
197
+ const tokenAmountDecimal = (0, decimal_js_1.default)(tokenAmount).div(helpers_1.WAD_DECIMAL);
198
+ return this.getPrice().mul(tokenAmountDecimal);
199
+ }
200
+ }
201
+ exports.CToken = CToken;
202
+ // BorrowableCToken
203
+ class BorrowableCToken extends CToken {
204
+ contract;
205
+ constructor(signer, address, cache, market) {
206
+ super(signer, address, cache, market);
207
+ this.contract = (0, helpers_1.contractSetup)(signer, address, BorrowableCToken_json_1.default);
208
+ }
209
+ get liquidity() { return this.cache.liquidity; }
210
+ get borrowRate() { return this.cache.borrowRate; }
211
+ get predictedBorrowRate() { return this.cache.predictedBorrowRate; }
212
+ get utilizationRate() { return this.cache.utilizationRate; }
213
+ get supplyRate() { return this.cache.supplyRate; }
214
+ getPrice(lower = true, asset = false) {
215
+ let price = asset ? this.cache.assetPrice : this.cache.sharePrice;
216
+ if (lower) {
217
+ price = asset ? this.cache.assetPriceLower : this.cache.sharePriceLower;
218
+ }
219
+ return (0, decimal_js_1.default)(price).div((0, decimal_js_1.default)(1e18));
220
+ }
221
+ getTotalDebt(inUSD = true) {
222
+ const totalDebt = this.cache.debt;
223
+ return inUSD ? this.convertTokensToUsd(totalDebt) : totalDebt;
224
+ }
225
+ async fetchTotalDebt(inUSD = true) {
226
+ const totalDebt = await this.contract.marketOutstandingDebt();
227
+ return inUSD ? this.fetchConvertTokensToUsd(totalDebt) : totalDebt;
228
+ }
229
+ async borrow(amount, receiver) {
230
+ // TODO: Implement oracle handling
231
+ return this.contract.borrow(amount, receiver);
232
+ }
233
+ async dynamicIRM() {
234
+ const irm_addr = await this.contract.IRM();
235
+ return (0, helpers_1.contractSetup)(this.signer, irm_addr, IDynamicIRM_json_1.default);
236
+ }
237
+ async fetchBorrowRate() {
238
+ const irm = await this.dynamicIRM();
239
+ const assetsHeld = await this.totalAssets();
240
+ const debt = await this.contract.marketOutstandingDebt();
241
+ const borrowRate = (await irm.borrowRate(assetsHeld, debt)) * SECONDS_PER_YEAR;
242
+ this.cache.borrowRate = borrowRate;
243
+ return borrowRate;
244
+ }
245
+ async fetchPredictedBorrowRate() {
246
+ const irm = await this.dynamicIRM();
247
+ const assetsHeld = await this.totalAssets();
248
+ const debt = await this.contract.marketOutstandingDebt();
249
+ const predictedBorrowRate = (await irm.predictedBorrowRate(assetsHeld, debt)) * SECONDS_PER_YEAR;
250
+ this.cache.predictedBorrowRate = predictedBorrowRate;
251
+ return predictedBorrowRate;
252
+ }
253
+ async fetchUtilizationRate() {
254
+ const irm = await this.dynamicIRM();
255
+ const assetsHeld = await this.totalAssets();
256
+ const debt = await this.contract.marketOutstandingDebt();
257
+ const utilizationRate = (await irm.utilizationRate(assetsHeld, debt)) * SECONDS_PER_YEAR;
258
+ this.cache.utilizationRate = utilizationRate;
259
+ return utilizationRate;
260
+ }
261
+ async fetchSupplyRate() {
262
+ const irm = await this.dynamicIRM();
263
+ const assetsHeld = await this.totalAssets();
264
+ const debt = await this.contract.marketOutstandingDebt();
265
+ const fee = await this.contract.interestFee();
266
+ const supplyRate = (await irm.supplyRate(assetsHeld, debt, fee)) * SECONDS_PER_YEAR;
267
+ this.cache.supplyRate = supplyRate;
268
+ return supplyRate;
269
+ }
270
+ async fetchLiquidity() {
271
+ const assetsHeld = await this.contract.totalAssets();
272
+ const debt = await this.contract.marketOutstandingDebt();
273
+ const liquidity = assetsHeld - debt;
274
+ this.cache.liquidity = liquidity;
275
+ return liquidity;
276
+ }
277
+ async repay(amount) {
278
+ // TODO: Implement oracle handling
279
+ return this.contract.repay(amount);
280
+ }
281
+ async interestFee() {
282
+ return this.contract.interestFee();
283
+ }
284
+ async marketOutstandingDebt() {
285
+ return this.contract.marketOutstandingDebt();
286
+ }
287
+ async debtBalance(account) {
288
+ return this.contract.debtBalance(account);
289
+ }
290
+ }
291
+ exports.BorrowableCToken = BorrowableCToken;
292
+ //# sourceMappingURL=CToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CToken.js","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface ICVE {
2
+ }
3
+ export interface IVeCVE {
4
+ }
5
+ export declare class CVE {
6
+ }
7
+ //# sourceMappingURL=CVE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CVE.d.ts","sourceRoot":"","sources":["../../src/classes/CVE.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;CAEpB;AAED,MAAM,WAAW,MAAM;CAEtB;AAED,qBAAa,GAAG;CAEf"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CVE = void 0;
4
+ class CVE {
5
+ }
6
+ exports.CVE = CVE;
7
+ //# sourceMappingURL=CVE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CVE.js","sourceRoot":"","sources":["../../src/classes/CVE.ts"],"names":[],"mappings":";;;AAQA,MAAa,GAAG;CAEf;AAFD,kBAEC"}
@@ -0,0 +1,35 @@
1
+ import { TransactionResponse } from "ethers";
2
+ import { Contract } from "ethers";
3
+ import { StaticMarketAsset } from "./ProtocolReader";
4
+ import { address, curvance_signer } from "../types";
5
+ export interface IERC20 {
6
+ balanceOf(account: address): Promise<bigint>;
7
+ transfer(to: address, amount: bigint): Promise<TransactionResponse>;
8
+ approve(spender: address, amount: bigint): Promise<TransactionResponse>;
9
+ name(): Promise<string>;
10
+ symbol(): Promise<string>;
11
+ decimals(): Promise<bigint>;
12
+ totalSupply(): Promise<bigint>;
13
+ allowance(owner: address, spender: address): Promise<TransactionResponse>;
14
+ }
15
+ export declare class ERC20 {
16
+ signer: curvance_signer;
17
+ address: address;
18
+ contract: Contract & IERC20;
19
+ cache: StaticMarketAsset | undefined;
20
+ constructor(signer: curvance_signer, address: address, cache?: StaticMarketAsset | undefined);
21
+ get name(): string | undefined;
22
+ get symbol(): string | undefined;
23
+ get decimals(): bigint | undefined;
24
+ get totalSupply(): bigint | undefined;
25
+ balanceOf(account: address): Promise<bigint>;
26
+ transfer(to: address, amount: bigint): Promise<TransactionResponse>;
27
+ approve(spender: address, amount: bigint): Promise<TransactionResponse>;
28
+ fetchName(): Promise<string>;
29
+ fetchSymbol(): Promise<string>;
30
+ fetchDecimals(): Promise<bigint>;
31
+ fetchTotalSupply(): Promise<bigint>;
32
+ allowance(owner: address, spender: address): Promise<TransactionResponse>;
33
+ private setCache;
34
+ }
35
+ //# sourceMappingURL=ERC20.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERC20.d.ts","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,MAAM;IACnB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC7E;AAED,qBAAa,KAAK;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAa;gBAG7C,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,iBAAiB,GAAG,SAAqB;IAgBpD,IAAI,IAAI,uBAA+B;IACvC,IAAI,MAAM,uBAAiC;IAC3C,IAAI,QAAQ,uBAAmC;IAC/C,IAAI,WAAW,uBAAsC;IAE/C,SAAS,CAAC,OAAO,EAAE,OAAO;IAI1B,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIpC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIxC,SAAS;IAMT,WAAW;IAMX,aAAa;IAMb,gBAAgB;IAMhB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAIhD,OAAO,CAAC,QAAQ;CAMnB"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC20 = void 0;
4
+ const helpers_1 = require("../helpers");
5
+ class ERC20 {
6
+ signer;
7
+ address;
8
+ contract;
9
+ cache = undefined;
10
+ constructor(signer, address, cache = undefined) {
11
+ this.signer = signer;
12
+ this.address = address;
13
+ this.cache = cache;
14
+ this.contract = (0, helpers_1.contractSetup)(signer, address, [
15
+ "function balanceOf(address owner) view returns (uint256)",
16
+ "function transfer(address to, uint256 amount) returns (bool)",
17
+ "function approve(address spender, uint256 amount) returns (bool)",
18
+ "function name() view returns (string)",
19
+ "function symbol() view returns (string)",
20
+ "function decimals() view returns (uint8)",
21
+ "function allowance(address owner, address spender) view returns (uint256)",
22
+ ]);
23
+ }
24
+ get name() { return this.cache?.name; }
25
+ get symbol() { return this.cache?.symbol; }
26
+ get decimals() { return this.cache?.decimals; }
27
+ get totalSupply() { return this.cache?.totalSupply; }
28
+ async balanceOf(account) {
29
+ return this.contract.balanceOf(account);
30
+ }
31
+ async transfer(to, amount) {
32
+ return this.contract.transfer(to, amount);
33
+ }
34
+ async approve(spender, amount) {
35
+ return this.contract.approve(spender, amount);
36
+ }
37
+ async fetchName() {
38
+ const name = await this.contract.name();
39
+ this.setCache('name', name);
40
+ return name;
41
+ }
42
+ async fetchSymbol() {
43
+ const symbol = await this.contract.symbol();
44
+ this.setCache('symbol', symbol);
45
+ return symbol;
46
+ }
47
+ async fetchDecimals() {
48
+ const decimals = await this.contract.decimals();
49
+ this.setCache('decimals', decimals);
50
+ return decimals;
51
+ }
52
+ async fetchTotalSupply() {
53
+ const totalSupply = await this.contract.totalSupply();
54
+ this.setCache('totalSupply', totalSupply);
55
+ return totalSupply;
56
+ }
57
+ async allowance(owner, spender) {
58
+ return this.contract.allowance(owner, spender);
59
+ }
60
+ setCache(key, value) {
61
+ if (!this.cache) {
62
+ this.cache = {};
63
+ }
64
+ this.cache[key] = value;
65
+ }
66
+ }
67
+ exports.ERC20 = ERC20;
68
+ //# sourceMappingURL=ERC20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERC20.js","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"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"}