impermax-sdk 1.2.60 → 1.2.61
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/lib/offchain/offchainPriceHelper.js +1 -0
- package/lib/offchain/query.js +247 -247
- package/package.json +1 -1
- package/lib/offchain/account/lendingPool/borrowable.d.ts +0 -14
- package/lib/offchain/account/lendingPool/borrowable.js +0 -73
- package/lib/offchain/account/lendingPool/collateral.d.ts +0 -12
- package/lib/offchain/account/lendingPool/collateral.js +0 -42
- package/lib/offchain/account/lendingVault.d.ts +0 -11
- package/lib/offchain/account/lendingVault.js +0 -38
- package/lib/offchain/account/poolToken.d.ts +0 -6
- package/lib/offchain/account/poolToken.js +0 -21
- package/lib/offchain/initializer.d.ts +0 -32
- package/lib/offchain/initializer.js +0 -627
- package/lib/offchain/lendingPool/borrowable.d.ts +0 -55
- package/lib/offchain/lendingPool/borrowable.js +0 -351
- package/lib/offchain/lendingPool/collateral.d.ts +0 -17
- package/lib/offchain/lendingPool/collateral.js +0 -72
- package/lib/offchain/lendingVault.d.ts +0 -22
- package/lib/offchain/lendingVault.js +0 -115
- package/lib/offchain/poolToken.d.ts +0 -20
- package/lib/offchain/poolToken.js +0 -120
- package/lib/offchain/priceHelper.d.ts +0 -21
- package/lib/offchain/priceHelper.js +0 -195
- package/lib/offchain/solidexHelper.d.ts +0 -16
- package/lib/offchain/solidexHelper.js +0 -58
- package/lib/offchain/types.d.ts +0 -150
- package/lib/offchain/types.js +0 -3
- package/lib/onchain/account/interactions/index.d.ts +0 -28
- package/lib/onchain/account/interactions/index.js +0 -158
- package/lib/onchain/account/interactions/lendingPool/borrowable.d.ts +0 -16
- package/lib/onchain/account/interactions/lendingPool/borrowable.js +0 -49
- package/lib/onchain/account/interactions/lendingPool/collateral.d.ts +0 -15
- package/lib/onchain/account/interactions/lendingPool/collateral.js +0 -33
- package/lib/onchain/account/interactions/lendingPool/index.d.ts +0 -41
- package/lib/onchain/account/interactions/lendingPool/index.js +0 -120
- package/lib/onchain/account/interactions/lendingVault.d.ts +0 -10
- package/lib/onchain/account/interactions/lendingVault.js +0 -12
- package/lib/onchain/account/interactions/poolToken.d.ts +0 -33
- package/lib/onchain/account/interactions/poolToken.js +0 -180
- package/lib/onchain/account/lendingPool/borrowable.d.ts +0 -29
- package/lib/onchain/account/lendingPool/borrowable.js +0 -135
- package/lib/onchain/account/lendingPool/collateral.d.ts +0 -15
- package/lib/onchain/account/lendingPool/collateral.js +0 -66
- package/lib/onchain/account/lendingVault.d.ts +0 -10
- package/lib/onchain/account/lendingVault.js +0 -35
- package/lib/onchain/account/poolToken.d.ts +0 -24
- package/lib/onchain/account/poolToken.js +0 -84
- package/lib/onchain/contractsHelper.d.ts +0 -29
- package/lib/onchain/contractsHelper.js +0 -52
- package/lib/onchain/impermaxFactory/lendingPool/borrowable.d.ts +0 -36
- package/lib/onchain/impermaxFactory/lendingPool/borrowable.js +0 -153
- package/lib/onchain/impermaxFactory/lendingPool/collateral.d.ts +0 -17
- package/lib/onchain/impermaxFactory/lendingPool/collateral.js +0 -59
- package/lib/onchain/interactions/lendingPool/borrowable.d.ts +0 -14
- package/lib/onchain/interactions/lendingPool/borrowable.js +0 -47
- package/lib/onchain/interactions/lendingPool/collateral.d.ts +0 -13
- package/lib/onchain/interactions/lendingPool/collateral.js +0 -31
- package/lib/onchain/interactions/lendingVault.d.ts +0 -8
- package/lib/onchain/interactions/lendingVault.js +0 -15
- package/lib/onchain/interactions/poolToken.d.ts +0 -31
- package/lib/onchain/interactions/poolToken.js +0 -181
- package/lib/onchain/lendingVault.d.ts +0 -17
- package/lib/onchain/lendingVault.js +0 -56
- package/lib/onchain/poolToken.d.ts +0 -32
- package/lib/onchain/poolToken.js +0 -121
- package/lib/onchain/types.d.ts +0 -45
- package/lib/onchain/types.js +0 -14
- package/lib/utils/price-from-reserves.d.ts +0 -2
- package/lib/utils/price-from-reserves.js +0 -19
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
const IERC20_json_1 = __importDefault(require("../abis/contracts/IERC20.json"));
|
|
7
|
-
const IUniswapV2Pair_json_1 = __importDefault(require("../abis/contracts/IUniswapV2Pair.json"));
|
|
8
|
-
const IUniswapV2Factory_json_1 = __importDefault(require("../abis/contracts/IUniswapV2Factory.json"));
|
|
9
|
-
const IRouter02_json_1 = __importDefault(require("../abis/contracts/IRouter02.json"));
|
|
10
|
-
const IBorrowable_json_1 = __importDefault(require("../abis/contracts/IBorrowable.json"));
|
|
11
|
-
const ICollateral_json_1 = __importDefault(require("../abis/contracts/ICollateral.json"));
|
|
12
|
-
const IStakedLPToken_json_1 = __importDefault(require("../abis/contracts/IStakedLPToken.json"));
|
|
13
|
-
const IFactory_json_1 = __importDefault(require("../abis/contracts/IFactory.json"));
|
|
14
|
-
const ISimpleUniswapOracle_json_1 = __importDefault(require("../abis/contracts/ISimpleUniswapOracle.json"));
|
|
15
|
-
const IMerkleDistributor_json_1 = __importDefault(require("../abis/contracts/IMerkleDistributor.json"));
|
|
16
|
-
const IFarmingPool_json_1 = __importDefault(require("../abis/contracts/IFarmingPool.json"));
|
|
17
|
-
const ClaimAggregator_json_1 = __importDefault(require("../abis/contracts/ClaimAggregator.json"));
|
|
18
|
-
const IClaimable_json_1 = __importDefault(require("../abis/contracts/IClaimable.json"));
|
|
19
|
-
const IStakingRewards_json_1 = __importDefault(require("../abis/contracts/IStakingRewards.json"));
|
|
20
|
-
const ImpermaxChef_json_1 = __importDefault(require("../abis/contracts/ImpermaxChef.json"));
|
|
21
|
-
const ILendingVaultV1_json_1 = __importDefault(require("../abis/contracts/ILendingVaultV1.json"));
|
|
22
|
-
const impermax_chef_1 = require("../config/contracts/impermax-chef");
|
|
23
|
-
const claim_aggregators_1 = require("../config/contracts/claim-aggregators");
|
|
24
|
-
const merkle_distributors_1 = require("../config/contracts/merkle-distributors");
|
|
25
|
-
class ContractsHelper {
|
|
26
|
-
constructor(router) {
|
|
27
|
-
this.newContract = (abi, address) => new this.router.web3.eth.Contract(abi, address);
|
|
28
|
-
this.newRouter = (address) => this.newContract(IRouter02_json_1.default.abi, address);
|
|
29
|
-
this.newFactory = (address) => this.newContract(IFactory_json_1.default.abi, address);
|
|
30
|
-
this.newSimpleUniswapOracle = (address) => this.newContract(ISimpleUniswapOracle_json_1.default.abi, address);
|
|
31
|
-
this.newUniswapV2Pair = (address) => this.newContract(IUniswapV2Pair_json_1.default.abi, address);
|
|
32
|
-
this.newUniswapV2Factory = (address) => this.newContract(IUniswapV2Factory_json_1.default.abi, address);
|
|
33
|
-
this.newERC20 = (address) => this.newContract(IERC20_json_1.default.abi, address);
|
|
34
|
-
this.newCollateral = (address) => this.newContract(ICollateral_json_1.default.abi, address);
|
|
35
|
-
this.newBorrowable = (address) => this.newContract(IBorrowable_json_1.default.abi, address);
|
|
36
|
-
this.newStakedLPToken = (address) => this.newContract(IStakedLPToken_json_1.default.abi, address);
|
|
37
|
-
this.newMerkleDistributor = (address) => this.newContract(IMerkleDistributor_json_1.default.abi, address);
|
|
38
|
-
this.newFarmingPool = (address) => this.newContract(IFarmingPool_json_1.default.abi, address);
|
|
39
|
-
this.newClaimAggregator = (address) => this.newContract(ClaimAggregator_json_1.default.abi, address);
|
|
40
|
-
this.newClaimable = (address) => this.newContract(IClaimable_json_1.default.abi, address);
|
|
41
|
-
this.newStakingRewards = (address) => this.newContract(IStakingRewards_json_1.default.abi, address);
|
|
42
|
-
this.newImpermaxChef = (address) => this.newContract(ImpermaxChef_json_1.default.abi, address);
|
|
43
|
-
this.newLendingVault = (address) => this.newContract(ILendingVaultV1_json_1.default.abi, address);
|
|
44
|
-
this.router = router;
|
|
45
|
-
this.impermaxChef = this.newImpermaxChef(impermax_chef_1.IMPERMAX_CHEF[this.router.network]);
|
|
46
|
-
this.merkleDistributorIbex = this.newMerkleDistributor(merkle_distributors_1.MERKLE_DISTRIBUTOR_IBEX[this.router.network]);
|
|
47
|
-
this.merkleDistributorIbex2 = this.newMerkleDistributor(merkle_distributors_1.MERKLE_DISTRIBUTOR_IBEX_2[this.router.network]);
|
|
48
|
-
this.merkleDistributorEth = this.newMerkleDistributor(merkle_distributors_1.MERKLE_DISTRIBUTOR_ETH[this.router.network]);
|
|
49
|
-
this.claimAggregator = this.newClaimAggregator(claim_aggregators_1.CLAIM_AGGREGATOR[this.router.network]);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.default = ContractsHelper;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Contract } from "../../types";
|
|
2
|
-
import { Address, PoolTokenType } from '../../../config/types';
|
|
3
|
-
import LendingPool from './index';
|
|
4
|
-
import * as offchain from '../../../offchain';
|
|
5
|
-
import PoolToken from '../../poolToken';
|
|
6
|
-
export default class Borrowable extends PoolToken {
|
|
7
|
-
lendingPool: LendingPool;
|
|
8
|
-
borrowableCache: {
|
|
9
|
-
borrowTracker?: Promise<Address>;
|
|
10
|
-
rewarder?: Promise<Contract>;
|
|
11
|
-
rewarderTokenSymbol?: Promise<string>;
|
|
12
|
-
farmingTokenSymbol?: Promise<string>;
|
|
13
|
-
rewardSpeed?: Promise<number>;
|
|
14
|
-
};
|
|
15
|
-
constructor(lendingPool: LendingPool, poolTokenType: PoolTokenType);
|
|
16
|
-
cleanCache(): void;
|
|
17
|
-
getContractHelper: () => import("../..").ContractsHelper;
|
|
18
|
-
getPoolTokenAddress(): Promise<Address>;
|
|
19
|
-
getOffchainPoolToken(): Promise<offchain.lendingPool.OffchainBorrowable>;
|
|
20
|
-
initializePoolToken(): Promise<Contract>;
|
|
21
|
-
initializeToken(): Promise<Contract>;
|
|
22
|
-
getPriceDenomLP(): Promise<number>;
|
|
23
|
-
getMarketPriceDenomLP(): Promise<number>;
|
|
24
|
-
private initializeBorrowTracker;
|
|
25
|
-
getBorrowTracker(): Promise<string>;
|
|
26
|
-
hasFarming(): Promise<boolean>;
|
|
27
|
-
getImpermaxChef: () => any;
|
|
28
|
-
hasImpermaxChef(): Promise<boolean>;
|
|
29
|
-
private initializeFarmingTokenSymbol;
|
|
30
|
-
getFarmingTokenSymbol(): Promise<string>;
|
|
31
|
-
private initializeRewarder;
|
|
32
|
-
getRewarder(): Promise<any>;
|
|
33
|
-
hasRewarder(): Promise<boolean>;
|
|
34
|
-
private initializeRewarderTokenSymbol;
|
|
35
|
-
getRewarderTokenSymbol(): Promise<string>;
|
|
36
|
-
}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const types_1 = require("../../../config/types");
|
|
16
|
-
const poolToken_1 = __importDefault(require("../../poolToken"));
|
|
17
|
-
class Borrowable extends poolToken_1.default {
|
|
18
|
-
constructor(lendingPool, poolTokenType) {
|
|
19
|
-
super();
|
|
20
|
-
this.borrowableCache = {};
|
|
21
|
-
this.getContractHelper = () => this.lendingPool.factory.onchain.contractsHelper;
|
|
22
|
-
// Impermax Chef
|
|
23
|
-
this.getImpermaxChef = () => this.getContractHelper().impermaxChef;
|
|
24
|
-
this.lendingPool = lendingPool;
|
|
25
|
-
this.poolTokenType = poolTokenType;
|
|
26
|
-
}
|
|
27
|
-
cleanCache() {
|
|
28
|
-
super.cleanCache();
|
|
29
|
-
this.borrowableCache = {};
|
|
30
|
-
}
|
|
31
|
-
getPoolTokenAddress() {
|
|
32
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
return (yield this.lendingPool.getPoolTokenAddresses())[this.poolTokenType];
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
getOffchainPoolToken() {
|
|
37
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const lendingPool = yield this.lendingPool.getOffchainLendingPool();
|
|
39
|
-
return lendingPool.poolTokens[this.poolTokenType];
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
initializePoolToken() {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
return this.getContractHelper().newBorrowable(yield this.getPoolTokenAddress());
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
initializeToken() {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const poolToken = yield this.getPoolToken();
|
|
50
|
-
return this.getContractHelper().newERC20(yield poolToken.methods.underlying().call());
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// Price Denom LP
|
|
54
|
-
getPriceDenomLP() {
|
|
55
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const prices = yield this.lendingPool.getPriceDenomLP();
|
|
57
|
-
return prices[this.poolTokenType === types_1.PoolTokenType.BorrowableA ? 0 : 1];
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
getMarketPriceDenomLP() {
|
|
61
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
const prices = yield this.lendingPool.getMarketPriceDenomLP();
|
|
63
|
-
return prices[this.poolTokenType === types_1.PoolTokenType.BorrowableA ? 0 : 1];
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
// Farming Pool
|
|
67
|
-
initializeBorrowTracker() {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const borrowable = yield this.getPoolToken();
|
|
70
|
-
return borrowable.methods.borrowTracker().call();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
getBorrowTracker() {
|
|
74
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
if (!this.borrowableCache.borrowTracker)
|
|
76
|
-
this.borrowableCache.borrowTracker = this.initializeBorrowTracker();
|
|
77
|
-
return this.borrowableCache.borrowTracker;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
hasFarming() {
|
|
81
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
// remove old farming contracts, now it only has farming if it has the impermaxChef
|
|
83
|
-
return this.hasImpermaxChef();
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
hasImpermaxChef() {
|
|
87
|
-
var _a;
|
|
88
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
const borrowTracker = yield this.getBorrowTracker();
|
|
90
|
-
return borrowTracker.toLowerCase() === ((_a = this.getImpermaxChef()._address) !== null && _a !== void 0 ? _a : "").toLowerCase();
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
initializeFarmingTokenSymbol() {
|
|
94
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
if (!(yield this.hasImpermaxChef()))
|
|
96
|
-
return "";
|
|
97
|
-
const impermaxChef = yield this.getImpermaxChef();
|
|
98
|
-
const farmingTokenAddress = yield impermaxChef.methods.rewardToken().call();
|
|
99
|
-
return this.getContractHelper().newERC20(farmingTokenAddress).methods.symbol().call();
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
getFarmingTokenSymbol() {
|
|
103
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
if (!this.borrowableCache.farmingTokenSymbol)
|
|
105
|
-
this.borrowableCache.farmingTokenSymbol = this.initializeFarmingTokenSymbol();
|
|
106
|
-
return this.borrowableCache.farmingTokenSymbol;
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
// Farming Pool Rewarder
|
|
110
|
-
initializeRewarder() {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
const poolTokenAddress = yield this.getPoolTokenAddress();
|
|
113
|
-
try {
|
|
114
|
-
const { rewarder } = yield this.getImpermaxChef().methods.poolInfo(poolTokenAddress).call();
|
|
115
|
-
if (rewarder == "0x0000000000000000000000000000000000000000")
|
|
116
|
-
return null;
|
|
117
|
-
return this.getContractHelper().newImpermaxChef(rewarder);
|
|
118
|
-
}
|
|
119
|
-
catch (_a) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
getRewarder() {
|
|
125
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
-
if (!this.borrowableCache.rewarder)
|
|
127
|
-
this.borrowableCache.rewarder = this.initializeRewarder();
|
|
128
|
-
return this.borrowableCache.rewarder;
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
hasRewarder() {
|
|
132
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
-
return (yield this.getRewarder()) !== null;
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
initializeRewarderTokenSymbol() {
|
|
137
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
-
if (!(yield this.hasRewarder()))
|
|
139
|
-
return "";
|
|
140
|
-
const rewarder = yield this.getRewarder();
|
|
141
|
-
const rewardTokenAddress = yield rewarder.methods.rewardToken().call();
|
|
142
|
-
return this.getContractHelper().newERC20(rewardTokenAddress).methods.symbol().call();
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
getRewarderTokenSymbol() {
|
|
146
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
if (!this.borrowableCache.rewarderTokenSymbol)
|
|
148
|
-
this.borrowableCache.rewarderTokenSymbol = this.initializeRewarderTokenSymbol();
|
|
149
|
-
return this.borrowableCache.rewarderTokenSymbol;
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
exports.default = Borrowable;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Contract } from "../../types";
|
|
2
|
-
import LendingPool from './index';
|
|
3
|
-
import { Address, PoolTokenType } from '../../../config/types';
|
|
4
|
-
import * as offchain from '../../../offchain';
|
|
5
|
-
import PoolToken from '../../poolToken';
|
|
6
|
-
export default class Collateral extends PoolToken {
|
|
7
|
-
lendingPool: LendingPool;
|
|
8
|
-
collateralCache: {};
|
|
9
|
-
constructor(lendingPool: LendingPool, poolTokenType: PoolTokenType);
|
|
10
|
-
cleanCache(): void;
|
|
11
|
-
getContractHelper: () => import("../..").ContractsHelper;
|
|
12
|
-
getPoolTokenAddress(): Promise<Address>;
|
|
13
|
-
getOffchainPoolToken(): Promise<offchain.lendingPool.OffchainCollateral>;
|
|
14
|
-
initializePoolToken(): Promise<Contract>;
|
|
15
|
-
initializeToken(): Promise<Contract>;
|
|
16
|
-
protected initializeExchangeRate(): Promise<number>;
|
|
17
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const poolToken_1 = __importDefault(require("../../poolToken"));
|
|
16
|
-
class Collateral extends poolToken_1.default {
|
|
17
|
-
constructor(lendingPool, poolTokenType) {
|
|
18
|
-
super();
|
|
19
|
-
this.collateralCache = {};
|
|
20
|
-
this.getContractHelper = () => this.lendingPool.factory.onchain.contractsHelper;
|
|
21
|
-
this.lendingPool = lendingPool;
|
|
22
|
-
this.poolTokenType = poolTokenType;
|
|
23
|
-
}
|
|
24
|
-
cleanCache() {
|
|
25
|
-
super.cleanCache();
|
|
26
|
-
this.collateralCache = {};
|
|
27
|
-
}
|
|
28
|
-
getPoolTokenAddress() {
|
|
29
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
return (yield this.lendingPool.getPoolTokenAddresses())[this.poolTokenType];
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
getOffchainPoolToken() {
|
|
34
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const lendingPool = yield this.lendingPool.getOffchainLendingPool();
|
|
36
|
-
return lendingPool.poolTokens[this.poolTokenType];
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
initializePoolToken() {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return this.getContractHelper().newCollateral(yield this.getPoolTokenAddress());
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
initializeToken() {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
return this.lendingPool.getUniswapV2Pair();
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
initializeExchangeRate() {
|
|
50
|
-
const _super = Object.create(null, {
|
|
51
|
-
initializeExchangeRate: { get: () => super.initializeExchangeRate }
|
|
52
|
-
});
|
|
53
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
let exchangeRate = yield _super.initializeExchangeRate.call(this);
|
|
55
|
-
return exchangeRate * (yield this.lendingPool.getStakedLPExchangeRate());
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.default = Collateral;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { PoolTokenType } from '../../../config/types';
|
|
2
|
-
import LendingPool from './index';
|
|
3
|
-
import { PermitData } from '../../types';
|
|
4
|
-
import { BigNumber } from 'ethers';
|
|
5
|
-
import * as onchain from '../../index';
|
|
6
|
-
import PoolToken from '../poolToken';
|
|
7
|
-
export default class Borrowable extends PoolToken {
|
|
8
|
-
interactionsLendingPool: LendingPool;
|
|
9
|
-
poolToken: onchain.impermaxFactory.lendingPool.Borrowable;
|
|
10
|
-
constructor(interactionsLendingPool: LendingPool, poolTokenType: PoolTokenType);
|
|
11
|
-
getRouterContract: () => any;
|
|
12
|
-
borrow(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
13
|
-
repay(amount: BigNumber, onTransactionHash: Function): Promise<any>;
|
|
14
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const general_1 = require("../../../config/general");
|
|
16
|
-
const poolToken_1 = __importDefault(require("../poolToken"));
|
|
17
|
-
class Borrowable extends poolToken_1.default {
|
|
18
|
-
constructor(interactionsLendingPool, poolTokenType) {
|
|
19
|
-
super();
|
|
20
|
-
this.getRouterContract = () => this.interactionsLendingPool.getRouterContract();
|
|
21
|
-
this.interactionsLendingPool = interactionsLendingPool;
|
|
22
|
-
this.poolToken = interactionsLendingPool.lendingPool.poolTokens[poolTokenType];
|
|
23
|
-
}
|
|
24
|
-
borrow(amount, permitData, onTransactionHash) {
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const { router, ptAddress, account, data, deadline } = yield this.getSendData(permitData);
|
|
27
|
-
if (yield this.isWETH()) {
|
|
28
|
-
return this.send(router.methods.borrowETH(ptAddress, amount, account, deadline, data), onTransactionHash);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return this.send(router.methods.borrow(ptAddress, amount, account, deadline, data), onTransactionHash);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
repay(amount, onTransactionHash) {
|
|
36
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const { router, ptAddress, account } = yield this.getSendData(null);
|
|
38
|
-
if (yield this.isWETH()) {
|
|
39
|
-
return this.send(router.methods.repayETH(ptAddress, account, general_1.DEADLINE), onTransactionHash, amount);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return this.send(router.methods.repay(ptAddress, amount, account, general_1.DEADLINE), onTransactionHash);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.default = Borrowable;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { PoolTokenType } from '../../../config/types';
|
|
2
|
-
import LendingPool from './index';
|
|
3
|
-
import { PermitData } from '../../types';
|
|
4
|
-
import { BigNumber } from 'ethers';
|
|
5
|
-
import PoolToken from '../poolToken';
|
|
6
|
-
import * as onchain from '../../index';
|
|
7
|
-
export default class Collateral extends PoolToken {
|
|
8
|
-
interactionsLendingPool: LendingPool;
|
|
9
|
-
poolToken: onchain.impermaxFactory.lendingPool.Collateral;
|
|
10
|
-
constructor(interactionsLendingPool: LendingPool, poolTokenType: PoolTokenType);
|
|
11
|
-
getRouterContract: () => any;
|
|
12
|
-
protected mint(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
13
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const poolToken_1 = __importDefault(require("../poolToken"));
|
|
16
|
-
class Collateral extends poolToken_1.default {
|
|
17
|
-
constructor(interactionsLendingPool, poolTokenType) {
|
|
18
|
-
super();
|
|
19
|
-
this.getRouterContract = () => this.interactionsLendingPool.getRouterContract();
|
|
20
|
-
this.interactionsLendingPool = interactionsLendingPool;
|
|
21
|
-
this.poolToken = interactionsLendingPool.lendingPool.poolTokens[poolTokenType];
|
|
22
|
-
}
|
|
23
|
-
mint(amount, permitData, onTransactionHash) {
|
|
24
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
const { router, ptAddress, account, data, deadline } = yield this.getSendData(permitData);
|
|
26
|
-
return this.send(router.methods.mintCollateral(ptAddress, amount, account, deadline, data), onTransactionHash);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
;
|
|
30
|
-
}
|
|
31
|
-
exports.default = Collateral;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Interactions from "./index";
|
|
2
|
-
import * as onchain from '../index';
|
|
3
|
-
import PoolToken from './poolToken';
|
|
4
|
-
export default class LendingVault extends PoolToken {
|
|
5
|
-
poolToken: onchain.LendingVault;
|
|
6
|
-
constructor(interactions: Interactions, lendingVault: onchain.LendingVault);
|
|
7
|
-
getRouterContract: () => any;
|
|
8
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
-
const poolToken_1 = __importDefault(require("./poolToken"));
|
|
7
|
-
class LendingVault extends poolToken_1.default {
|
|
8
|
-
constructor(interactions, lendingVault) {
|
|
9
|
-
super();
|
|
10
|
-
this.getRouterContract = () => this.interactions.getDefaultRouterContract();
|
|
11
|
-
this.interactions = interactions;
|
|
12
|
-
this.poolToken = lendingVault;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.default = LendingVault;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ethers, BigNumber } from "ethers";
|
|
2
|
-
import { ApprovalType, Contract, PermitData } from "../types";
|
|
3
|
-
import Interactions from './index';
|
|
4
|
-
import * as onchain from '../index';
|
|
5
|
-
export default abstract class PoolToken {
|
|
6
|
-
interactions: Interactions;
|
|
7
|
-
poolToken: onchain.PoolToken;
|
|
8
|
-
getAccountAddress: () => string;
|
|
9
|
-
abstract getRouterContract(): Contract;
|
|
10
|
-
getOnchain: () => onchain.default;
|
|
11
|
-
send(method: any, onTransactionHash: Function, value?: BigNumber): Promise<any>;
|
|
12
|
-
getOwnerSpender(): {
|
|
13
|
-
owner: string;
|
|
14
|
-
spender: any;
|
|
15
|
-
};
|
|
16
|
-
isWETH(): Promise<boolean>;
|
|
17
|
-
getAllowance(approvalType: ApprovalType): Promise<ethers.BigNumber>;
|
|
18
|
-
approve(approvalType: ApprovalType, amount: BigNumber, onTransactionHash: Function): Promise<any>;
|
|
19
|
-
getPermitData(approvalType: ApprovalType, amount: BigNumber, deadlineArg: BigNumber | null, callBack: (permitData: PermitData | null) => void): Promise<void>;
|
|
20
|
-
protected getSendData(permitData: PermitData | null): Promise<{
|
|
21
|
-
router: any;
|
|
22
|
-
ptAddress: any;
|
|
23
|
-
account: string;
|
|
24
|
-
data: string;
|
|
25
|
-
deadline: ethers.BigNumber;
|
|
26
|
-
}>;
|
|
27
|
-
protected mintETH(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
28
|
-
protected mint(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
29
|
-
deposit(amount: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
30
|
-
withdraw(tokens: BigNumber, permitData: PermitData, onTransactionHash: Function): Promise<any>;
|
|
31
|
-
}
|