curvance 1.0.23 → 1.0.25
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/dist/abis/BaseCToken.json +13 -10
- package/dist/abis/BorrowableCToken.json +13 -10
- package/dist/abis/MarketManagerIsolated.json +43 -123
- package/dist/abis/ProtocolReader.json +92 -9
- package/dist/abis/RedstoneCoreAdaptor.json +32 -5
- package/dist/abis/SimpleZapper.json +411 -0
- package/dist/chains/index.d.ts +22 -10
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/monad-testnet.json +83 -71
- package/dist/classes/BorrowableCToken.d.ts +51 -0
- package/dist/classes/BorrowableCToken.d.ts.map +1 -0
- package/dist/classes/BorrowableCToken.js +113 -0
- package/dist/classes/BorrowableCToken.js.map +1 -0
- package/dist/classes/CToken.d.ts +46 -74
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +196 -138
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/Calldata.d.ts +12 -0
- package/dist/classes/Calldata.d.ts.map +1 -0
- package/dist/classes/Calldata.js +19 -0
- package/dist/classes/Calldata.js.map +1 -0
- package/dist/classes/ERC20.d.ts +3 -3
- package/dist/classes/ERC20.d.ts.map +1 -1
- package/dist/classes/ERC20.js +5 -2
- package/dist/classes/ERC20.js.map +1 -1
- package/dist/classes/Faucet.d.ts +2 -1
- package/dist/classes/Faucet.d.ts.map +1 -1
- package/dist/classes/Faucet.js +11 -1
- package/dist/classes/Faucet.js.map +1 -1
- package/dist/classes/Market.d.ts +107 -13
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +122 -16
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/OracleManager.d.ts +1 -1
- package/dist/classes/OracleManager.d.ts.map +1 -1
- package/dist/classes/OracleManager.js +2 -1
- package/dist/classes/OracleManager.js.map +1 -1
- package/dist/classes/ProtocolReader.d.ts +21 -20
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +9 -5
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/classes/Redstone.d.ts +3 -2
- package/dist/classes/Redstone.d.ts.map +1 -1
- package/dist/classes/Redstone.js +3 -3
- package/dist/classes/Redstone.js.map +1 -1
- package/dist/classes/Zapper.d.ts +28 -0
- package/dist/classes/Zapper.d.ts.map +1 -0
- package/dist/classes/Zapper.js +52 -0
- package/dist/classes/Zapper.js.map +1 -0
- package/dist/helpers.d.ts +34 -11
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +30 -16
- package/dist/helpers.js.map +1 -1
- package/dist/setup.d.ts +18 -3
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +31 -14
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +20 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Contract, TransactionResponse } from "ethers";
|
|
2
|
+
import { address, curvance_provider, TokenInput, USD } from "../types";
|
|
3
|
+
import { CToken, ICToken } from "./CToken";
|
|
4
|
+
import { DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
|
|
5
|
+
import { Market } from "./Market";
|
|
6
|
+
import { ChangeRate } from "../helpers";
|
|
7
|
+
import Decimal from "decimal.js";
|
|
8
|
+
import { ZapperTypes } from "./Zapper";
|
|
9
|
+
export interface IBorrowableCToken extends ICToken {
|
|
10
|
+
borrow(amount: bigint, receiver: address): Promise<TransactionResponse>;
|
|
11
|
+
repay(amount: bigint): Promise<TransactionResponse>;
|
|
12
|
+
interestFee(): Promise<bigint>;
|
|
13
|
+
marketOutstandingDebt(): Promise<bigint>;
|
|
14
|
+
debtBalance(account: address): Promise<bigint>;
|
|
15
|
+
IRM(): Promise<address>;
|
|
16
|
+
}
|
|
17
|
+
export interface IDynamicIRM {
|
|
18
|
+
ADJUSTMENT_RATE(): Promise<bigint>;
|
|
19
|
+
linkedToken(): Promise<address>;
|
|
20
|
+
borrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
21
|
+
predictedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
22
|
+
supplyRate(assetsHeld: bigint, debt: bigint, interestFee: bigint): Promise<bigint>;
|
|
23
|
+
adjustedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
24
|
+
utilizationRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
25
|
+
}
|
|
26
|
+
export declare class BorrowableCToken extends CToken {
|
|
27
|
+
contract: Contract & IBorrowableCToken;
|
|
28
|
+
constructor(provider: curvance_provider, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
|
|
29
|
+
get liquidity(): bigint;
|
|
30
|
+
get borrowRate(): bigint;
|
|
31
|
+
get predictedBorrowRate(): bigint;
|
|
32
|
+
get utilizationRate(): bigint;
|
|
33
|
+
get supplyRate(): bigint;
|
|
34
|
+
borrowChange(amount: USD, rateType: ChangeRate): Decimal;
|
|
35
|
+
depositAsCollateral(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
36
|
+
postCollateral(amount: TokenInput): Promise<TransactionResponse>;
|
|
37
|
+
fetchDebt(inUSD: true): Promise<USD>;
|
|
38
|
+
fetchDebt(inUSD: false): Promise<bigint>;
|
|
39
|
+
borrow(amount: TokenInput, receiver?: address | null): Promise<TransactionResponse>;
|
|
40
|
+
dynamicIRM(): Promise<Contract & IDynamicIRM>;
|
|
41
|
+
fetchBorrowRate(): Promise<bigint>;
|
|
42
|
+
fetchPredictedBorrowRate(): Promise<bigint>;
|
|
43
|
+
fetchUtilizationRate(): Promise<bigint>;
|
|
44
|
+
fetchSupplyRate(): Promise<bigint>;
|
|
45
|
+
fetchLiquidity(): Promise<bigint>;
|
|
46
|
+
repay(amount: TokenInput): Promise<TransactionResponse>;
|
|
47
|
+
interestFee(): Promise<bigint>;
|
|
48
|
+
marketOutstandingDebt(): Promise<bigint>;
|
|
49
|
+
debtBalance(account: address): Promise<bigint>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=BorrowableCToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BorrowableCToken.d.ts","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
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 = void 0;
|
|
7
|
+
const CToken_1 = require("./CToken");
|
|
8
|
+
const helpers_1 = require("../helpers");
|
|
9
|
+
const BorrowableCToken_json_1 = __importDefault(require("../abis/BorrowableCToken.json"));
|
|
10
|
+
const IDynamicIRM_json_1 = __importDefault(require("../abis/IDynamicIRM.json"));
|
|
11
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
12
|
+
class BorrowableCToken extends CToken_1.CToken {
|
|
13
|
+
contract;
|
|
14
|
+
constructor(provider, address, cache, market) {
|
|
15
|
+
super(provider, address, cache, market);
|
|
16
|
+
this.contract = (0, helpers_1.contractSetup)(provider, address, BorrowableCToken_json_1.default);
|
|
17
|
+
}
|
|
18
|
+
get liquidity() { return this.cache.liquidity; }
|
|
19
|
+
get borrowRate() { return this.cache.borrowRate; }
|
|
20
|
+
get predictedBorrowRate() { return this.cache.predictedBorrowRate; }
|
|
21
|
+
get utilizationRate() { return this.cache.utilizationRate; }
|
|
22
|
+
get supplyRate() { return this.cache.supplyRate; }
|
|
23
|
+
borrowChange(amount, rateType) {
|
|
24
|
+
const rate = this.borrowRate;
|
|
25
|
+
const rate_seconds = (0, helpers_1.getRateSeconds)(rateType);
|
|
26
|
+
const rate_percent = (0, decimal_js_1.default)(rate * rate_seconds).div(helpers_1.BPS);
|
|
27
|
+
return amount.mul(rate_percent);
|
|
28
|
+
}
|
|
29
|
+
async depositAsCollateral(amount, zap = 'none', receiver = null) {
|
|
30
|
+
if (this.cache.userDebt > 0) {
|
|
31
|
+
throw new Error("Cannot deposit as collateral when there is outstanding debt");
|
|
32
|
+
}
|
|
33
|
+
return super.depositAsCollateral(amount, zap, receiver);
|
|
34
|
+
}
|
|
35
|
+
async postCollateral(amount) {
|
|
36
|
+
if (this.cache.userDebt > 0) {
|
|
37
|
+
throw new Error("Cannot post collateral when there is outstanding debt");
|
|
38
|
+
}
|
|
39
|
+
return super.postCollateral(amount);
|
|
40
|
+
}
|
|
41
|
+
async fetchDebt(inUSD = true) {
|
|
42
|
+
const totalDebt = await this.contract.marketOutstandingDebt();
|
|
43
|
+
return inUSD ? this.fetchConvertTokensToUsd(totalDebt) : totalDebt;
|
|
44
|
+
}
|
|
45
|
+
async borrow(amount, receiver = null) {
|
|
46
|
+
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
47
|
+
if (receiver == null)
|
|
48
|
+
receiver = signer.address;
|
|
49
|
+
const assets = this.convertTokenInput(amount);
|
|
50
|
+
const calldata = this.getCallData("borrow", [assets, receiver]);
|
|
51
|
+
return this.oracleRoute(calldata);
|
|
52
|
+
}
|
|
53
|
+
async dynamicIRM() {
|
|
54
|
+
const irm_addr = await this.contract.IRM();
|
|
55
|
+
return (0, helpers_1.contractSetup)(this.provider, irm_addr, IDynamicIRM_json_1.default);
|
|
56
|
+
}
|
|
57
|
+
async fetchBorrowRate() {
|
|
58
|
+
const irm = await this.dynamicIRM();
|
|
59
|
+
const assetsHeld = await this.totalAssets();
|
|
60
|
+
const debt = await this.contract.marketOutstandingDebt();
|
|
61
|
+
const borrowRate = (await irm.borrowRate(assetsHeld, debt));
|
|
62
|
+
this.cache.borrowRate = borrowRate;
|
|
63
|
+
return borrowRate;
|
|
64
|
+
}
|
|
65
|
+
async fetchPredictedBorrowRate() {
|
|
66
|
+
const irm = await this.dynamicIRM();
|
|
67
|
+
const assetsHeld = await this.totalAssets();
|
|
68
|
+
const debt = await this.contract.marketOutstandingDebt();
|
|
69
|
+
const predictedBorrowRate = (await irm.predictedBorrowRate(assetsHeld, debt));
|
|
70
|
+
this.cache.predictedBorrowRate = predictedBorrowRate;
|
|
71
|
+
return predictedBorrowRate;
|
|
72
|
+
}
|
|
73
|
+
async fetchUtilizationRate() {
|
|
74
|
+
const irm = await this.dynamicIRM();
|
|
75
|
+
const assetsHeld = await this.totalAssets();
|
|
76
|
+
const debt = await this.contract.marketOutstandingDebt();
|
|
77
|
+
const utilizationRate = (await irm.utilizationRate(assetsHeld, debt));
|
|
78
|
+
this.cache.utilizationRate = utilizationRate;
|
|
79
|
+
return utilizationRate;
|
|
80
|
+
}
|
|
81
|
+
async fetchSupplyRate() {
|
|
82
|
+
const irm = await this.dynamicIRM();
|
|
83
|
+
const assetsHeld = await this.totalAssets();
|
|
84
|
+
const debt = await this.contract.marketOutstandingDebt();
|
|
85
|
+
const fee = await this.contract.interestFee();
|
|
86
|
+
const supplyRate = (await irm.supplyRate(assetsHeld, debt, fee));
|
|
87
|
+
this.cache.supplyRate = supplyRate;
|
|
88
|
+
return supplyRate;
|
|
89
|
+
}
|
|
90
|
+
async fetchLiquidity() {
|
|
91
|
+
const assetsHeld = await this.contract.totalAssets();
|
|
92
|
+
const debt = await this.contract.marketOutstandingDebt();
|
|
93
|
+
const liquidity = assetsHeld - debt;
|
|
94
|
+
this.cache.liquidity = liquidity;
|
|
95
|
+
return liquidity;
|
|
96
|
+
}
|
|
97
|
+
async repay(amount) {
|
|
98
|
+
const assets = this.convertTokenInput(amount);
|
|
99
|
+
const calldata = this.getCallData("repay", [assets]);
|
|
100
|
+
return this.oracleRoute(calldata);
|
|
101
|
+
}
|
|
102
|
+
async interestFee() {
|
|
103
|
+
return this.contract.interestFee();
|
|
104
|
+
}
|
|
105
|
+
async marketOutstandingDebt() {
|
|
106
|
+
return this.contract.marketOutstandingDebt();
|
|
107
|
+
}
|
|
108
|
+
async debtBalance(account) {
|
|
109
|
+
return this.contract.debtBalance(account);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.BorrowableCToken = BorrowableCToken;
|
|
113
|
+
//# sourceMappingURL=BorrowableCToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BorrowableCToken.js","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/CToken.d.ts
CHANGED
|
@@ -3,13 +3,14 @@ import { ChangeRate } from "../helpers";
|
|
|
3
3
|
import { AdaptorTypes, DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
|
|
4
4
|
import { ERC20 } from "./ERC20";
|
|
5
5
|
import { Market } from "./Market";
|
|
6
|
+
import { Calldata } from "./Calldata";
|
|
6
7
|
import Decimal from "decimal.js";
|
|
7
|
-
import { address, bytes, curvance_provider,
|
|
8
|
+
import { address, bytes, curvance_provider, Percentage, TokenInput, USD } from "../types";
|
|
9
|
+
import { Zapper, ZapperTypes } from "./Zapper";
|
|
8
10
|
export interface AccountSnapshot {
|
|
9
11
|
asset: address;
|
|
10
12
|
decimals: bigint;
|
|
11
13
|
isCollateral: boolean;
|
|
12
|
-
exchangeRate: bigint;
|
|
13
14
|
collateralPosted: bigint;
|
|
14
15
|
debtBalance: bigint;
|
|
15
16
|
}
|
|
@@ -46,31 +47,18 @@ export interface ICToken {
|
|
|
46
47
|
transfer(receiver: address, amount: bigint): Promise<TransactionResponse>;
|
|
47
48
|
approve(spender: address, amount: bigint): Promise<TransactionResponse>;
|
|
48
49
|
allowance(owner: address, spender: address): Promise<bigint>;
|
|
50
|
+
isDelegate(user: address, delegate: address): Promise<boolean>;
|
|
51
|
+
setDelegateApproval(delegate: address, approved: boolean): Promise<TransactionResponse>;
|
|
49
52
|
}
|
|
50
|
-
export
|
|
51
|
-
borrow(amount: bigint, receiver: address): Promise<TransactionResponse>;
|
|
52
|
-
repay(amount: bigint): Promise<TransactionResponse>;
|
|
53
|
-
interestFee(): Promise<bigint>;
|
|
54
|
-
marketOutstandingDebt(): Promise<bigint>;
|
|
55
|
-
debtBalance(account: address): Promise<bigint>;
|
|
56
|
-
IRM(): Promise<address>;
|
|
57
|
-
}
|
|
58
|
-
export interface IDynamicIRM {
|
|
59
|
-
ADJUSTMENT_RATE(): Promise<bigint>;
|
|
60
|
-
linkedToken(): Promise<address>;
|
|
61
|
-
borrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
62
|
-
predictedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
63
|
-
supplyRate(assetsHeld: bigint, debt: bigint, interestFee: bigint): Promise<bigint>;
|
|
64
|
-
adjustedBorrowRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
65
|
-
utilizationRate(assetsHeld: bigint, debt: bigint): Promise<bigint>;
|
|
66
|
-
}
|
|
67
|
-
export declare class CToken {
|
|
53
|
+
export declare class CToken extends Calldata<ICToken> {
|
|
68
54
|
provider: curvance_provider;
|
|
69
55
|
address: address;
|
|
70
56
|
contract: Contract & ICToken;
|
|
71
57
|
abi: any;
|
|
72
58
|
cache: StaticMarketToken & DynamicMarketToken & UserMarketToken;
|
|
73
59
|
market: Market;
|
|
60
|
+
zapTypes: ZapperTypes[];
|
|
61
|
+
leverageTypes: string[];
|
|
74
62
|
constructor(provider: curvance_provider, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
|
|
75
63
|
get adapters(): [AdaptorTypes, AdaptorTypes];
|
|
76
64
|
get borrowPaused(): boolean;
|
|
@@ -84,40 +72,38 @@ export declare class CToken {
|
|
|
84
72
|
get remainingDebt(): bigint;
|
|
85
73
|
get asset(): import("./ProtocolReader").StaticMarketAsset;
|
|
86
74
|
get isBorrowable(): boolean;
|
|
87
|
-
get canZap(): boolean;
|
|
88
|
-
get canLeverage(): boolean;
|
|
89
75
|
/** @returns Collateral Ratio in BPS or bigint */
|
|
90
|
-
getCollRatio(inBPS: true):
|
|
76
|
+
getCollRatio(inBPS: true): Percentage;
|
|
91
77
|
getCollRatio(inBPS: false): bigint;
|
|
92
78
|
/** @returns Soft Collateral Requirement in BPS or bigint */
|
|
93
|
-
getCollReqSoft(inBPS: true):
|
|
79
|
+
getCollReqSoft(inBPS: true): Percentage;
|
|
94
80
|
getCollReqSoft(inBPS: false): bigint;
|
|
95
81
|
/** @returns Hard Collateral Requirement in BPS or bigint */
|
|
96
|
-
getCollReqHard(inBPS: true):
|
|
82
|
+
getCollReqHard(inBPS: true): Percentage;
|
|
97
83
|
getCollReqHard(inBPS: false): bigint;
|
|
98
84
|
/** @returns Liquidation Incentive Base in BPS or bigint */
|
|
99
|
-
getLiqIncBase(inBPS: true):
|
|
85
|
+
getLiqIncBase(inBPS: true): Percentage;
|
|
100
86
|
getLiqIncBase(inBPS: false): bigint;
|
|
101
87
|
/** @returns Liquidation Incentive Curve in BPS or bigint */
|
|
102
|
-
getLiqIncCurve(inBPS: true):
|
|
88
|
+
getLiqIncCurve(inBPS: true): Percentage;
|
|
103
89
|
getLiqIncCurve(inBPS: false): bigint;
|
|
104
90
|
/** @returns Liquidation Incentive Min in BPS or bigint */
|
|
105
|
-
getLiqIncMin(inBPS: true):
|
|
91
|
+
getLiqIncMin(inBPS: true): Percentage;
|
|
106
92
|
getLiqIncMin(inBPS: false): bigint;
|
|
107
93
|
/** @returns Liquidation Incentive Max in BPS or bigint */
|
|
108
|
-
getLiqIncMax(inBPS: true):
|
|
94
|
+
getLiqIncMax(inBPS: true): Percentage;
|
|
109
95
|
getLiqIncMax(inBPS: false): bigint;
|
|
110
96
|
/** @returns Close Factor Base in BPS or bigint */
|
|
111
|
-
getCloseFactorBase(inBPS: true):
|
|
97
|
+
getCloseFactorBase(inBPS: true): Percentage;
|
|
112
98
|
getCloseFactorBase(inBPS: false): bigint;
|
|
113
99
|
/** @returns Close Factor Curve in BPS or bigint */
|
|
114
|
-
getCloseFactorCurve(inBPS: true):
|
|
100
|
+
getCloseFactorCurve(inBPS: true): Percentage;
|
|
115
101
|
getCloseFactorCurve(inBPS: false): bigint;
|
|
116
102
|
/** @returns Close Factor Min in BPS or bigint */
|
|
117
|
-
getCloseFactorMin(inBPS: true):
|
|
103
|
+
getCloseFactorMin(inBPS: true): Percentage;
|
|
118
104
|
getCloseFactorMin(inBPS: false): bigint;
|
|
119
105
|
/** @returns Close Factor Max in BPS or bigint */
|
|
120
|
-
getCloseFactorMax(inBPS: true):
|
|
106
|
+
getCloseFactorMax(inBPS: true): Percentage;
|
|
121
107
|
getCloseFactorMax(inBPS: false): bigint;
|
|
122
108
|
/** @returns User assets in USD or token */
|
|
123
109
|
getUserShareBalance(inUSD: true): USD;
|
|
@@ -145,12 +131,13 @@ export declare class CToken {
|
|
|
145
131
|
getUserDebt(inUSD: false): bigint;
|
|
146
132
|
earnChange(amount: USD, rateType: ChangeRate): Decimal;
|
|
147
133
|
/**
|
|
148
|
-
* Grabs the collateralization ratio and converts it to a
|
|
149
|
-
* @returns
|
|
134
|
+
* Grabs the collateralization ratio and converts it to a Percentage.
|
|
135
|
+
* @returns Percentage representation of the LTV (e.g. 0.75 for 75% LTV)
|
|
150
136
|
*/
|
|
151
|
-
ltv():
|
|
152
|
-
getAsset(asErc20
|
|
153
|
-
|
|
137
|
+
ltv(): Percentage;
|
|
138
|
+
getAsset(asErc20: true): ERC20;
|
|
139
|
+
getAsset(asErc20: false): address;
|
|
140
|
+
getPrice(asset?: boolean, lower?: boolean): USD;
|
|
154
141
|
getApy(): Decimal;
|
|
155
142
|
getTvl(inUSD: true): USD;
|
|
156
143
|
getTvl(inUSD: false): bigint;
|
|
@@ -160,6 +147,12 @@ export declare class CToken {
|
|
|
160
147
|
getTotalCollateral(inUSD: false): bigint;
|
|
161
148
|
fetchTotalCollateral(inUSD: true): Promise<USD>;
|
|
162
149
|
fetchTotalCollateral(inUSD: false): Promise<bigint>;
|
|
150
|
+
getZapper(type: ZapperTypes): Zapper;
|
|
151
|
+
isPluginApproved(plugin: ZapperTypes): Promise<boolean>;
|
|
152
|
+
approvePlugin(plugin: ZapperTypes): Promise<TransactionResponse>;
|
|
153
|
+
getPluginAddress(plugin: ZapperTypes): address;
|
|
154
|
+
getAllowance(check_contract: address): Promise<bigint>;
|
|
155
|
+
approve(amount: TokenInput | null, spender: address): Promise<TransactionResponse>;
|
|
163
156
|
fetchDecimals(): Promise<bigint>;
|
|
164
157
|
fetchIsBorrowable(): Promise<boolean>;
|
|
165
158
|
fetchAsset(): Promise<`0x${string}`>;
|
|
@@ -173,54 +166,33 @@ export declare class CToken {
|
|
|
173
166
|
marketCollateralPosted(): Promise<bigint>;
|
|
174
167
|
balanceOf(account: address): Promise<bigint>;
|
|
175
168
|
maxDeposit(receiver: address): Promise<bigint>;
|
|
176
|
-
transfer(receiver: address, amount:
|
|
177
|
-
redeemCollateral(
|
|
178
|
-
postCollateral(
|
|
179
|
-
removeCollateral(
|
|
180
|
-
withdrawCollateral(
|
|
169
|
+
transfer(receiver: address, amount: TokenInput): Promise<TransactionResponse>;
|
|
170
|
+
redeemCollateral(amount: Decimal, receiver?: address | null, owner?: address | null): Promise<TransactionResponse>;
|
|
171
|
+
postCollateral(amount: TokenInput): Promise<TransactionResponse>;
|
|
172
|
+
removeCollateral(amount: TokenInput): Promise<TransactionResponse>;
|
|
173
|
+
withdrawCollateral(amount: TokenInput, receiver?: address | null, owner?: address | null): Promise<TransactionResponse>;
|
|
181
174
|
convertToAssets(shares: bigint): Promise<bigint>;
|
|
182
175
|
convertToShares(assets: bigint): Promise<bigint>;
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
176
|
+
convertTokenInput(amount: TokenInput, inShares?: boolean): bigint;
|
|
177
|
+
deposit(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
178
|
+
depositAsCollateral(amount: Decimal, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
179
|
+
redeem(amount: TokenInput, receiver?: address | null, owner?: address | null): Promise<TransactionResponse>;
|
|
186
180
|
collateralPosted(account: address): Promise<bigint>;
|
|
187
181
|
multicall(calls: MulticallAction[]): Promise<TransactionResponse>;
|
|
188
182
|
getSnapshot(account: address): Promise<{
|
|
189
183
|
asset: `0x${string}`;
|
|
190
184
|
decimals: bigint;
|
|
191
185
|
isCollateral: boolean;
|
|
192
|
-
exchangeRate: bigint;
|
|
193
186
|
collateralPosted: bigint;
|
|
194
187
|
debtBalance: bigint;
|
|
195
188
|
}>;
|
|
196
189
|
fetchConvertTokensToUsd(tokenAmount: bigint, asset?: boolean): Promise<Decimal>;
|
|
197
190
|
convertTokensToUsd(tokenAmount: bigint, asset?: boolean): Decimal;
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
get liquidity(): bigint;
|
|
205
|
-
get borrowRate(): bigint;
|
|
206
|
-
get predictedBorrowRate(): bigint;
|
|
207
|
-
get utilizationRate(): bigint;
|
|
208
|
-
get supplyRate(): bigint;
|
|
209
|
-
borrowChange(amount: USD, rateType: ChangeRate): Decimal;
|
|
210
|
-
depositAsCollateral(assets: bigint, receiver: address): Promise<TransactionResponse>;
|
|
211
|
-
postCollateral(shares: bigint): Promise<TransactionResponse>;
|
|
212
|
-
fetchDebt(inUSD: true): Promise<USD>;
|
|
213
|
-
fetchDebt(inUSD: false): Promise<bigint>;
|
|
214
|
-
borrow(amount: bigint, receiver: address): Promise<TransactionResponse>;
|
|
215
|
-
dynamicIRM(): Promise<Contract & IDynamicIRM>;
|
|
216
|
-
fetchBorrowRate(): Promise<bigint>;
|
|
217
|
-
fetchPredictedBorrowRate(): Promise<bigint>;
|
|
218
|
-
fetchUtilizationRate(): Promise<bigint>;
|
|
219
|
-
fetchSupplyRate(): Promise<bigint>;
|
|
220
|
-
fetchLiquidity(): Promise<bigint>;
|
|
221
|
-
repay(amount: bigint): Promise<TransactionResponse>;
|
|
222
|
-
interestFee(): Promise<bigint>;
|
|
223
|
-
marketOutstandingDebt(): Promise<bigint>;
|
|
224
|
-
debtBalance(account: address): Promise<bigint>;
|
|
191
|
+
buildMultiCallAction(calldata: bytes): MulticallAction;
|
|
192
|
+
private _checkDepositApprovals;
|
|
193
|
+
oracleRoute(calldata: bytes, override?: {
|
|
194
|
+
[key: string]: any;
|
|
195
|
+
}): Promise<TransactionResponse>;
|
|
196
|
+
getPriceUpdates(): Promise<MulticallAction[]>;
|
|
225
197
|
}
|
|
226
198
|
//# sourceMappingURL=CToken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
|