impermax-sdk 2.1.5 → 2.1.7
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/config/subgraphs.d.ts +2 -2
- package/lib/config/subgraphs.js +205 -131
- package/lib/config/types.d.ts +10 -0
- package/lib/config/types.js +7 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/offchain/account/offchainAccount.d.ts +6 -6
- package/lib/offchain/account/offchainAccount.js +33 -24
- package/lib/offchain/account/vault/offchainAccountVault.js +10 -3
- package/lib/offchain/offchain.d.ts +13 -10
- package/lib/offchain/offchain.js +18 -11
- package/lib/offchain/offchainInitializer.d.ts +11 -11
- package/lib/offchain/offchainInitializer.js +151 -91
- package/lib/offchain/offchainMultichain.d.ts +4 -4
- package/lib/offchain/offchainMultichain.js +28 -56
- package/lib/offchain/offchainTypes.d.ts +17 -1
- package/lib/offchain/queries/apis/ponder/index.d.ts +3 -3
- package/lib/offchain/queries/apis/ponder/index.js +45 -24
- package/lib/offchain/queries/apis/thegraph/index.d.ts +3 -3
- package/lib/offchain/queries/apis/thegraph/index.js +4 -2
- package/lib/offchain/queries/interfaces/query-builder.d.ts +3 -3
- package/lib/offchain/vault/offchainHedgedVault.js +2 -25
- package/lib/offchain/vault/offchainLendingVault.d.ts +3 -3
- package/lib/offchain/vault/offchainLendingVault.js +11 -27
- package/lib/offchain/vault/offchainLeveragedVault.js +2 -25
- package/lib/offchain/vault/offchainVault.d.ts +3 -8
- package/lib/offchain/vault/offchainVault.js +3 -8
- package/lib/onchain/account/onchainAccountLendingVault.js +1 -1
- package/lib/onchain/onchainLendingVault.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NetworkIndex, Networks } from "../config/types";
|
|
1
|
+
import { NetworkIndex, Networks, VaultType } from "../config/types";
|
|
2
2
|
import Offchain from "./offchain";
|
|
3
|
-
import OffchainVault
|
|
3
|
+
import OffchainVault from "./vault/offchainVault";
|
|
4
4
|
import { Amms } from "../config/amms";
|
|
5
5
|
import { Farms } from "../config/farms";
|
|
6
6
|
import { RiskLevel } from "./vault/offchainLendingVault";
|
|
@@ -49,7 +49,7 @@ export default class OffchainMultichain {
|
|
|
49
49
|
private constructor();
|
|
50
50
|
static get instance(): OffchainMultichain;
|
|
51
51
|
getOffchain(network: Networks): Offchain;
|
|
52
|
-
getVaultList(params?: VaultListParams
|
|
53
|
-
|
|
52
|
+
getVaultList(params?: VaultListParams): Promise<Array<OffchainVault>>;
|
|
53
|
+
networkHasVault(network: Networks): boolean;
|
|
54
54
|
getLendingPoolList(params?: LendingPoolListParams, orderBy?: LendingPoolListOrderBy): Promise<Array<OffchainLendingPool>>;
|
|
55
55
|
}
|
|
@@ -34,7 +34,6 @@ var SortDirection;
|
|
|
34
34
|
SortDirection["ASC"] = "asc";
|
|
35
35
|
SortDirection["DESC"] = "desc";
|
|
36
36
|
})(SortDirection = exports.SortDirection || (exports.SortDirection = {}));
|
|
37
|
-
// Vaults //
|
|
38
37
|
var VaultOrderBy;
|
|
39
38
|
(function (VaultOrderBy) {
|
|
40
39
|
VaultOrderBy[VaultOrderBy["TVL"] = 0] = "TVL";
|
|
@@ -67,66 +66,39 @@ class OffchainMultichain {
|
|
|
67
66
|
this.offchains[network] = new offchain_1.default(this, network);
|
|
68
67
|
return this.offchains[network];
|
|
69
68
|
}
|
|
70
|
-
|
|
69
|
+
/*--------------------------------------------------------*
|
|
70
|
+
* Vaults
|
|
71
|
+
*--------------------------------------------------------*/
|
|
72
|
+
getVaultList(params = {}) {
|
|
71
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
catch (err) {
|
|
88
|
-
console.error(`Error processing vault ${address}:`, err);
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
})));
|
|
92
|
-
return vaultResults.filter((result) => result !== null);
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
console.error(`Error fetching network ${network}:`, err);
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
})));
|
|
99
|
-
const flatVaults = vaults.flat();
|
|
100
|
-
const multiplier = sortDirection === SortDirection.ASC ? 1 : -1;
|
|
101
|
-
const sortedVaults = flatVaults.sort((a, b) => (a.sortValue - b.sortValue) * multiplier);
|
|
102
|
-
return sortedVaults.map(({ vault }) => vault);
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
console.error("Error in getVaultList:", err);
|
|
106
|
-
throw err;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
getVaultSortValue(vault, orderBy) {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
try {
|
|
113
|
-
switch (orderBy) {
|
|
114
|
-
case VaultOrderBy.TVL:
|
|
115
|
-
return yield vault.getVaultSupplyUSD();
|
|
116
|
-
case VaultOrderBy.APR:
|
|
117
|
-
return yield vault.getSupplyAPR();
|
|
118
|
-
case VaultOrderBy.DEPOSITED:
|
|
119
|
-
return yield vault.getTotalBalance();
|
|
120
|
-
default:
|
|
121
|
-
return 0;
|
|
74
|
+
// Get networks passed, if empty get all
|
|
75
|
+
const allNetworks = params.networks || Object.values(types_1.Networks);
|
|
76
|
+
// Filter out networks without vaults
|
|
77
|
+
const networksWithVaults = allNetworks.filter((network) => this.networkHasVault(network));
|
|
78
|
+
// Loop through all the vaults in `allNetworks`
|
|
79
|
+
const allVaults = [];
|
|
80
|
+
for (const network of networksWithVaults) {
|
|
81
|
+
const offchain = this.getOffchain(network);
|
|
82
|
+
const vaultsData = yield offchain.getVaultsData();
|
|
83
|
+
// Filter out vaults based on vaultType (if passed)
|
|
84
|
+
for (const address in vaultsData) {
|
|
85
|
+
const vault = yield offchain.getVault(address);
|
|
86
|
+
if (params.type && vault.getVaultType() !== params.type)
|
|
87
|
+
continue;
|
|
88
|
+
allVaults.push(vault);
|
|
122
89
|
}
|
|
123
90
|
}
|
|
124
|
-
|
|
125
|
-
console.error("Error getting sort value:", err);
|
|
126
|
-
return 0;
|
|
127
|
-
}
|
|
91
|
+
return allVaults;
|
|
128
92
|
});
|
|
129
93
|
}
|
|
94
|
+
// Helpful for frontend UI thing
|
|
95
|
+
networkHasVault(network) {
|
|
96
|
+
return Object.keys(subgraphs_1.VAULT_SUBGRAPH_URL[network]).length > 0;
|
|
97
|
+
}
|
|
98
|
+
/*--------------------------------------------------------*
|
|
99
|
+
* Lending Pools
|
|
100
|
+
*--------------------------------------------------------*/
|
|
101
|
+
// private async getVaultSortValue( vault: OffchainVault, orderBy: VaultOrderBy,): Promise<number> { }
|
|
130
102
|
getLendingPoolList(params = {}, orderBy = LendingPoolListOrderBy.TVL) {
|
|
131
103
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
104
|
// TODO FILL WITH FAKE DATA
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, AddressIndex, PoolTokenType, ProposalState, WhitelistState } from '../config/types';
|
|
1
|
+
import { Address, AddressIndex, PoolTokenType, ProposalState, WhitelistState, VaultType } from '../config/types';
|
|
2
2
|
export interface PoolTokenData {
|
|
3
3
|
id: Address;
|
|
4
4
|
totalBalance: string;
|
|
@@ -159,13 +159,29 @@ export interface XimxData {
|
|
|
159
159
|
/**
|
|
160
160
|
* Lending vault
|
|
161
161
|
**/
|
|
162
|
+
export interface VaultBorrowable {
|
|
163
|
+
pair: string;
|
|
164
|
+
address: Address;
|
|
165
|
+
pairAddress: Address;
|
|
166
|
+
token0: Address;
|
|
167
|
+
token1: Address;
|
|
168
|
+
}
|
|
162
169
|
export interface LendingVaultData extends PoolTokenData {
|
|
163
170
|
underlying: TokenData;
|
|
164
171
|
supplyRate: string;
|
|
165
172
|
reserveFactor: string;
|
|
166
173
|
availableLiquidity: string;
|
|
167
174
|
lastUpdate: string;
|
|
175
|
+
vaultType: VaultType.LENDING;
|
|
176
|
+
borrowables: VaultBorrowable[];
|
|
177
|
+
}
|
|
178
|
+
export interface HedgedVaultData extends PoolTokenData {
|
|
179
|
+
vaultType: VaultType.HEDGED;
|
|
180
|
+
}
|
|
181
|
+
export interface LeveragedVaultData extends PoolTokenData {
|
|
182
|
+
vaultType: VaultType.LEVERAGED;
|
|
168
183
|
}
|
|
184
|
+
export type VaultData = LendingVaultData | HedgedVaultData | LeveragedVaultData;
|
|
169
185
|
export interface VaultPosition {
|
|
170
186
|
tokenBalance: string;
|
|
171
187
|
lastExchangeRate: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, Factory, Networks } from "../../../../config/types";
|
|
1
|
+
import { Address, Factory, Networks, VaultType } from "../../../../config/types";
|
|
2
2
|
import { IQueryBuilder } from "../../interfaces/query-builder";
|
|
3
3
|
export declare class PonderQueryBuilder implements IQueryBuilder {
|
|
4
4
|
blockQuery(): import("graphql").DocumentNode;
|
|
@@ -6,8 +6,8 @@ export declare class PonderQueryBuilder implements IQueryBuilder {
|
|
|
6
6
|
lendingPoolsQuery(factory: Factory, addressesFilter: Address[], network: Networks): import("graphql").DocumentNode;
|
|
7
7
|
userQuery(account: Address, network: Networks, factory: Factory): import("graphql").DocumentNode;
|
|
8
8
|
tvlQuery(): import("graphql").DocumentNode;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
vaultsQuery(vaultType: VaultType, addressesFilter: Address[]): import("graphql").DocumentNode;
|
|
10
|
+
vaultsUserQuery(account: Address): import("graphql").DocumentNode;
|
|
11
11
|
proposalsMetaQuery(rangeBegin: any, rangeLength: any, descending: any): import("graphql").DocumentNode;
|
|
12
12
|
proposalQuery(id: number): import("graphql").DocumentNode;
|
|
13
13
|
ximxQuery(): import("graphql").DocumentNode;
|
|
@@ -7,6 +7,7 @@ exports.PonderQueryBuilder = void 0;
|
|
|
7
7
|
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
8
|
const factories_1 = require("../../../../config/factories");
|
|
9
9
|
const impermax_factories_1 = require("../../../../config/contracts/impermax-factories");
|
|
10
|
+
// TODO: Might need to separate Vaults query based on vault type, maybe not.
|
|
10
11
|
class PonderQueryBuilder {
|
|
11
12
|
/*-----------------------------*
|
|
12
13
|
* 1. API Health
|
|
@@ -180,30 +181,18 @@ class PonderQueryBuilder {
|
|
|
180
181
|
/*-----------------------------*
|
|
181
182
|
* Lending vaults
|
|
182
183
|
*-----------------------------*/
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
user(id: "${account.toLowerCase()}") {
|
|
186
|
-
positions(first:1000) {
|
|
187
|
-
tokenBalance
|
|
188
|
-
lastExchangeRate
|
|
189
|
-
cumulativeEarnings
|
|
190
|
-
lendingVault {
|
|
191
|
-
id
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}`;
|
|
196
|
-
}
|
|
197
|
-
lendingVaultsQuery(addressesFilter) {
|
|
184
|
+
vaultsQuery(vaultType, addressesFilter) {
|
|
185
|
+
// do something here for difference kind of vault type, currently only lending
|
|
198
186
|
const id_in_string = addressesFilter.length > 0 ? `where: {id_in: ["${addressesFilter.join('","').toLowerCase()}"]}` : "";
|
|
199
187
|
return (0, graphql_tag_1.default) `{
|
|
200
|
-
lendingVaults(
|
|
188
|
+
lendingVaults(limit: 1000, ${id_in_string}) {
|
|
189
|
+
items {
|
|
201
190
|
id
|
|
202
191
|
underlying {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
192
|
+
id
|
|
193
|
+
symbol
|
|
194
|
+
name
|
|
195
|
+
decimals
|
|
207
196
|
}
|
|
208
197
|
totalBalance
|
|
209
198
|
totalSupply
|
|
@@ -212,14 +201,46 @@ class PonderQueryBuilder {
|
|
|
212
201
|
exchangeRate
|
|
213
202
|
availableLiquidity
|
|
214
203
|
lastUpdate
|
|
204
|
+
borrowables {
|
|
205
|
+
items {
|
|
206
|
+
address
|
|
207
|
+
pair
|
|
208
|
+
pairAddress
|
|
209
|
+
token0
|
|
210
|
+
token1
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
215
214
|
}
|
|
216
215
|
_meta {
|
|
217
|
-
|
|
218
|
-
number
|
|
219
|
-
}
|
|
220
|
-
hasIndexingErrors
|
|
216
|
+
status
|
|
221
217
|
}
|
|
222
218
|
}`;
|
|
219
|
+
}
|
|
220
|
+
vaultsUserQuery(account) {
|
|
221
|
+
return (0, graphql_tag_1.default) `{
|
|
222
|
+
user(id: "${account.toLowerCase()}") {
|
|
223
|
+
positions(limit: 1000) {
|
|
224
|
+
items {
|
|
225
|
+
cumulativeEarnings
|
|
226
|
+
tokenBalance
|
|
227
|
+
lastExchangeRate
|
|
228
|
+
lendingVault {
|
|
229
|
+
id
|
|
230
|
+
borrowables {
|
|
231
|
+
items {
|
|
232
|
+
id
|
|
233
|
+
pair
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
_meta {
|
|
241
|
+
status
|
|
242
|
+
}
|
|
243
|
+
}`;
|
|
223
244
|
}
|
|
224
245
|
/*-----------------------------*
|
|
225
246
|
* Config Manager
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, Factory, Networks } from "../../../../config/types";
|
|
1
|
+
import { Address, Factory, Networks, VaultType } from "../../../../config/types";
|
|
2
2
|
import { IQueryBuilder } from "../../interfaces/query-builder";
|
|
3
3
|
export declare class TheGraphQueryBuilder implements IQueryBuilder {
|
|
4
4
|
blockQuery(timestamp: number): import("graphql").DocumentNode;
|
|
@@ -6,8 +6,8 @@ export declare class TheGraphQueryBuilder implements IQueryBuilder {
|
|
|
6
6
|
lendingPoolsQuery(factory: Factory, addressesFilter: Address[]): import("graphql").DocumentNode;
|
|
7
7
|
userQuery(account: Address, network: Networks, factory: Factory): import("graphql").DocumentNode;
|
|
8
8
|
tvlQuery(): import("graphql").DocumentNode;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
vaultsQuery(vaultType: VaultType, addressesFilter: Address[]): import("graphql").DocumentNode;
|
|
10
|
+
vaultsUserQuery(account: Address): import("graphql").DocumentNode;
|
|
11
11
|
proposalsMetaQuery(rangeBegin: any, rangeLength: any, descending: any): import("graphql").DocumentNode;
|
|
12
12
|
proposalQuery(id: number): import("graphql").DocumentNode;
|
|
13
13
|
ximxQuery(): import("graphql").DocumentNode;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.TheGraphQueryBuilder = void 0;
|
|
7
7
|
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
8
|
const factories_1 = require("../../../../config/factories");
|
|
9
|
+
// TODO: Might need to separate Vaults query based on vault type, maybe not.
|
|
9
10
|
class TheGraphQueryBuilder {
|
|
10
11
|
/*-----------------------------*
|
|
11
12
|
* 1. API Health
|
|
@@ -184,7 +185,8 @@ class TheGraphQueryBuilder {
|
|
|
184
185
|
/*-----------------------------*
|
|
185
186
|
* Lending vaults
|
|
186
187
|
*-----------------------------*/
|
|
187
|
-
|
|
188
|
+
vaultsQuery(vaultType, addressesFilter) {
|
|
189
|
+
// do something here for difference kind of vault type, currently only lending
|
|
188
190
|
const id_in_string = addressesFilter.length > 0 ? `where: {id_in: ["${addressesFilter.join('","').toLowerCase()}"]}` : "";
|
|
189
191
|
return (0, graphql_tag_1.default) `{
|
|
190
192
|
lendingVaults(first: 1000 ${id_in_string}) {
|
|
@@ -211,7 +213,7 @@ class TheGraphQueryBuilder {
|
|
|
211
213
|
}
|
|
212
214
|
}`;
|
|
213
215
|
}
|
|
214
|
-
|
|
216
|
+
vaultsUserQuery(account) {
|
|
215
217
|
return (0, graphql_tag_1.default) `{
|
|
216
218
|
user(id: "${account.toLowerCase()}") {
|
|
217
219
|
positions(first:1000) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { DocumentNode } from 'graphql';
|
|
2
|
-
import { Address, Factory, Networks } from '../../../config/types';
|
|
2
|
+
import { Address, Factory, Networks, VaultType } from '../../../config/types';
|
|
3
3
|
export interface IQueryBuilder {
|
|
4
4
|
blockQuery(timestamp: number): DocumentNode;
|
|
5
5
|
getBlockNumber: (response: any, network: Networks) => number;
|
|
6
6
|
lendingPoolsQuery(factory: Factory, addressesFilter: Address[], network: Networks): DocumentNode;
|
|
7
7
|
userQuery(account: Address, network: Networks, factory: Factory): DocumentNode;
|
|
8
8
|
tvlQuery(): DocumentNode;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
vaultsQuery(vaultType: VaultType, addressesFilter: Address[]): DocumentNode;
|
|
10
|
+
vaultsUserQuery(account: Address): DocumentNode;
|
|
11
11
|
proposalsMetaQuery(rangeBegin: number, rangeLength: number, descending: boolean): DocumentNode;
|
|
12
12
|
proposalQuery(id: number): DocumentNode;
|
|
13
13
|
ximxQuery(): DocumentNode;
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,12 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
13
|
};
|
|
37
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
15
|
const types_1 = require("../../config/types");
|
|
39
|
-
const offchainVault_1 =
|
|
16
|
+
const offchainVault_1 = __importDefault(require("./offchainVault"));
|
|
40
17
|
const lendingPool_1 = __importDefault(require("../lendingPool"));
|
|
41
18
|
class OffchainHedgedVaultVault extends offchainVault_1.default {
|
|
42
19
|
constructor(offchain, vaultAddress) {
|
|
43
20
|
super(offchain, vaultAddress);
|
|
44
|
-
this.vaultType =
|
|
21
|
+
this.vaultType = types_1.VaultType.HEDGED;
|
|
45
22
|
}
|
|
46
23
|
getLeverage() {
|
|
47
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Offchain from "../index";
|
|
2
|
-
import { Address } from
|
|
2
|
+
import { Address } from "../../config/types";
|
|
3
3
|
import OffchainVault from "./offchainVault";
|
|
4
|
-
import {
|
|
4
|
+
import { VaultBorrowable } from "../offchainTypes";
|
|
5
5
|
export declare enum RiskLevel {
|
|
6
6
|
LOW = 0,
|
|
7
7
|
MEDIUM = 1,
|
|
@@ -12,5 +12,5 @@ export default class OffchainLendingVault extends OffchainVault {
|
|
|
12
12
|
getRiskLevel(): Promise<RiskLevel>;
|
|
13
13
|
getAvailableLiquidity(): Promise<number>;
|
|
14
14
|
getAvailableLiquidityUSD(): Promise<number>;
|
|
15
|
-
getBorrowables(): Promise<Array<
|
|
15
|
+
getBorrowables(): Promise<Array<VaultBorrowable>>;
|
|
16
16
|
}
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -31,9 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
9
|
});
|
|
33
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
34
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
15
|
exports.RiskLevel = void 0;
|
|
36
|
-
const
|
|
16
|
+
const types_1 = require("../../config/types");
|
|
17
|
+
const offchainVault_1 = __importDefault(require("./offchainVault"));
|
|
37
18
|
var RiskLevel;
|
|
38
19
|
(function (RiskLevel) {
|
|
39
20
|
RiskLevel[RiskLevel["LOW"] = 0] = "LOW";
|
|
@@ -43,7 +24,7 @@ var RiskLevel;
|
|
|
43
24
|
class OffchainLendingVault extends offchainVault_1.default {
|
|
44
25
|
constructor(offchain, vaultAddress) {
|
|
45
26
|
super(offchain, vaultAddress);
|
|
46
|
-
this.vaultType =
|
|
27
|
+
this.vaultType = types_1.VaultType.LENDING;
|
|
47
28
|
}
|
|
48
29
|
getRiskLevel() {
|
|
49
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -63,10 +44,13 @@ class OffchainLendingVault extends offchainVault_1.default {
|
|
|
63
44
|
return availableLiquidity * tokenPrice;
|
|
64
45
|
});
|
|
65
46
|
}
|
|
66
|
-
//
|
|
47
|
+
// See the LendingVaultData type in ../offchainTypes.ts
|
|
67
48
|
getBorrowables() {
|
|
68
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
|
|
50
|
+
const vaultData = (yield this.getPoolTokenData());
|
|
51
|
+
if (!vaultData.borrowables)
|
|
52
|
+
return [];
|
|
53
|
+
return vaultData.borrowables;
|
|
70
54
|
});
|
|
71
55
|
}
|
|
72
56
|
}
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -36,12 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
13
|
};
|
|
37
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
15
|
const types_1 = require("../../config/types");
|
|
39
|
-
const offchainVault_1 =
|
|
16
|
+
const offchainVault_1 = __importDefault(require("./offchainVault"));
|
|
40
17
|
const lendingPool_1 = __importDefault(require("../lendingPool"));
|
|
41
18
|
class OffchainLeveragedVault extends offchainVault_1.default {
|
|
42
19
|
constructor(offchain, vaultAddress) {
|
|
43
20
|
super(offchain, vaultAddress);
|
|
44
|
-
this.vaultType =
|
|
21
|
+
this.vaultType = types_1.VaultType.LEVERAGED;
|
|
45
22
|
}
|
|
46
23
|
getLeverage() {
|
|
47
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import Offchain from "../index";
|
|
2
|
-
import { Address } from '../../config/types';
|
|
2
|
+
import { Address, VaultType } from '../../config/types';
|
|
3
3
|
import OffchainPoolToken from '../offchainPoolToken';
|
|
4
|
-
import {
|
|
5
|
-
export declare enum VaultType {
|
|
6
|
-
LENDING = 0,
|
|
7
|
-
HEDGED = 1,
|
|
8
|
-
LEVERAGED = 2
|
|
9
|
-
}
|
|
4
|
+
import { VaultData } from '../offchainTypes';
|
|
10
5
|
export declare enum VaultRisk {
|
|
11
6
|
VERY_LOW = "very-low",
|
|
12
7
|
LOW = "low",
|
|
@@ -31,7 +26,7 @@ export default class OffchainVault extends OffchainPoolToken {
|
|
|
31
26
|
getVaultType: () => VaultType;
|
|
32
27
|
getVaultRisk: () => VaultRisk;
|
|
33
28
|
getVaultStatus: () => VaultStatus;
|
|
34
|
-
getPoolTokenData(): Promise<
|
|
29
|
+
getPoolTokenData(): Promise<VaultData>;
|
|
35
30
|
private getTotalSupply;
|
|
36
31
|
private getLastUpdate;
|
|
37
32
|
private getAccrueFactor;
|
|
@@ -12,15 +12,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.VaultStatus = exports.VaultRisk =
|
|
15
|
+
exports.VaultStatus = exports.VaultRisk = void 0;
|
|
16
16
|
const offchainPoolToken_1 = __importDefault(require("../offchainPoolToken"));
|
|
17
17
|
const utils_1 = require("../../utils");
|
|
18
|
-
var VaultType;
|
|
19
|
-
(function (VaultType) {
|
|
20
|
-
VaultType[VaultType["LENDING"] = 0] = "LENDING";
|
|
21
|
-
VaultType[VaultType["HEDGED"] = 1] = "HEDGED";
|
|
22
|
-
VaultType[VaultType["LEVERAGED"] = 2] = "LEVERAGED";
|
|
23
|
-
})(VaultType = exports.VaultType || (exports.VaultType = {}));
|
|
24
18
|
var VaultRisk;
|
|
25
19
|
(function (VaultRisk) {
|
|
26
20
|
VaultRisk["VERY_LOW"] = "very-low";
|
|
@@ -46,9 +40,10 @@ class OffchainVault extends offchainPoolToken_1.default {
|
|
|
46
40
|
this.offchain = offchain;
|
|
47
41
|
this.vaultAddress = vaultAddress;
|
|
48
42
|
}
|
|
43
|
+
// NOTE: Rename this to `getVaultData` ?
|
|
49
44
|
getPoolTokenData() {
|
|
50
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
return this.offchain.
|
|
46
|
+
return this.offchain.getVaultData(this.vaultAddress);
|
|
52
47
|
});
|
|
53
48
|
}
|
|
54
49
|
getTotalSupply() {
|
|
@@ -29,7 +29,7 @@ class OnchainAccountLendingVault extends onchainAccountPoolToken_1.default {
|
|
|
29
29
|
}
|
|
30
30
|
getOffchainAccountPoolToken() {
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
return this.account.getOffchainAccount().
|
|
32
|
+
return this.account.getOffchainAccount().getVault(this.getVaultAddress());
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
cleanCache() {
|
|
@@ -36,7 +36,7 @@ class OnchainLendingVault extends onchainPoolToken_1.default {
|
|
|
36
36
|
}
|
|
37
37
|
getOffchainPoolToken() {
|
|
38
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
return yield this.onchain.getOffchain().
|
|
39
|
+
return yield this.onchain.getOffchain().getVault(this.vaultAddress);
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
initializePoolToken() {
|