impermax-sdk 1.2.69 → 1.2.71

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 (71) hide show
  1. package/lib/offchain/account/lendingPool/borrowable.d.ts +14 -0
  2. package/lib/offchain/account/lendingPool/borrowable.js +73 -0
  3. package/lib/offchain/account/lendingPool/collateral.d.ts +12 -0
  4. package/lib/offchain/account/lendingPool/collateral.js +42 -0
  5. package/lib/offchain/account/lendingVault.d.ts +11 -0
  6. package/lib/offchain/account/lendingVault.js +38 -0
  7. package/lib/offchain/account/poolToken.d.ts +6 -0
  8. package/lib/offchain/account/poolToken.js +21 -0
  9. package/lib/offchain/initializer.d.ts +32 -0
  10. package/lib/offchain/initializer.js +627 -0
  11. package/lib/offchain/lendingPool/borrowable.d.ts +55 -0
  12. package/lib/offchain/lendingPool/borrowable.js +351 -0
  13. package/lib/offchain/lendingPool/collateral.d.ts +17 -0
  14. package/lib/offchain/lendingPool/collateral.js +72 -0
  15. package/lib/offchain/lendingVault.d.ts +22 -0
  16. package/lib/offchain/lendingVault.js +115 -0
  17. package/lib/offchain/offchainAPRHelper.d.ts +14 -3
  18. package/lib/offchain/offchainAPRHelper.js +98 -27
  19. package/lib/offchain/offchainPriceHelper.js +3 -0
  20. package/lib/offchain/poolToken.d.ts +20 -0
  21. package/lib/offchain/poolToken.js +120 -0
  22. package/lib/offchain/priceHelper.d.ts +21 -0
  23. package/lib/offchain/priceHelper.js +195 -0
  24. package/lib/offchain/query.js +247 -247
  25. package/lib/offchain/solidexHelper.d.ts +16 -0
  26. package/lib/offchain/solidexHelper.js +58 -0
  27. package/lib/offchain/types.d.ts +150 -0
  28. package/lib/offchain/types.js +3 -0
  29. package/lib/onchain/account/interactions/index.d.ts +28 -0
  30. package/lib/onchain/account/interactions/index.js +158 -0
  31. package/lib/onchain/account/interactions/lendingPool/borrowable.d.ts +16 -0
  32. package/lib/onchain/account/interactions/lendingPool/borrowable.js +49 -0
  33. package/lib/onchain/account/interactions/lendingPool/collateral.d.ts +15 -0
  34. package/lib/onchain/account/interactions/lendingPool/collateral.js +33 -0
  35. package/lib/onchain/account/interactions/lendingPool/index.d.ts +41 -0
  36. package/lib/onchain/account/interactions/lendingPool/index.js +120 -0
  37. package/lib/onchain/account/interactions/lendingVault.d.ts +10 -0
  38. package/lib/onchain/account/interactions/lendingVault.js +12 -0
  39. package/lib/onchain/account/interactions/poolToken.d.ts +33 -0
  40. package/lib/onchain/account/interactions/poolToken.js +180 -0
  41. package/lib/onchain/account/lendingPool/borrowable.d.ts +29 -0
  42. package/lib/onchain/account/lendingPool/borrowable.js +135 -0
  43. package/lib/onchain/account/lendingPool/collateral.d.ts +15 -0
  44. package/lib/onchain/account/lendingPool/collateral.js +66 -0
  45. package/lib/onchain/account/lendingVault.d.ts +10 -0
  46. package/lib/onchain/account/lendingVault.js +35 -0
  47. package/lib/onchain/account/poolToken.d.ts +24 -0
  48. package/lib/onchain/account/poolToken.js +84 -0
  49. package/lib/onchain/contractsHelper.d.ts +29 -0
  50. package/lib/onchain/contractsHelper.js +52 -0
  51. package/lib/onchain/impermaxFactory/lendingPool/borrowable.d.ts +36 -0
  52. package/lib/onchain/impermaxFactory/lendingPool/borrowable.js +153 -0
  53. package/lib/onchain/impermaxFactory/lendingPool/collateral.d.ts +17 -0
  54. package/lib/onchain/impermaxFactory/lendingPool/collateral.js +59 -0
  55. package/lib/onchain/interactions/lendingPool/borrowable.d.ts +14 -0
  56. package/lib/onchain/interactions/lendingPool/borrowable.js +47 -0
  57. package/lib/onchain/interactions/lendingPool/collateral.d.ts +13 -0
  58. package/lib/onchain/interactions/lendingPool/collateral.js +31 -0
  59. package/lib/onchain/interactions/lendingVault.d.ts +8 -0
  60. package/lib/onchain/interactions/lendingVault.js +15 -0
  61. package/lib/onchain/interactions/poolToken.d.ts +31 -0
  62. package/lib/onchain/interactions/poolToken.js +181 -0
  63. package/lib/onchain/lendingVault.d.ts +17 -0
  64. package/lib/onchain/lendingVault.js +56 -0
  65. package/lib/onchain/poolToken.d.ts +32 -0
  66. package/lib/onchain/poolToken.js +121 -0
  67. package/lib/onchain/types.d.ts +45 -0
  68. package/lib/onchain/types.js +14 -0
  69. package/lib/utils/price-from-reserves.d.ts +2 -0
  70. package/lib/utils/price-from-reserves.js +19 -0
  71. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ import { PoolTokenType } from '../../../config/types';
2
+ import LendingPool from './index';
3
+ import PoolToken from '../poolToken';
4
+ import * as offchain from '../../index';
5
+ export default class Borrowable extends PoolToken {
6
+ accountLendingPool: LendingPool;
7
+ poolToken: offchain.lendingPool.Borrowable;
8
+ constructor(accountLendingPool: LendingPool, poolTokenType: PoolTokenType);
9
+ private getSupplyPosition;
10
+ getAmount(): Promise<number>;
11
+ private getBorrowPosition;
12
+ getBorrowedAmount(): Promise<number>;
13
+ getBorrowedValue(): Promise<number>;
14
+ }
@@ -0,0 +1,73 @@
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 Borrowable extends poolToken_1.default {
17
+ constructor(accountLendingPool, poolTokenType) {
18
+ super();
19
+ this.accountLendingPool = accountLendingPool;
20
+ this.poolToken = accountLendingPool.lendingPool.poolTokens[poolTokenType];
21
+ }
22
+ getSupplyPosition() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const userData = yield this.lendingPool.getUserData();
25
+ if (!userData)
26
+ return undefined;
27
+ const supplyPositions = userData.supplyPositions[this.offchainPoolToken.lendingPool.pairAddress];
28
+ if (!supplyPositions)
29
+ return undefined;
30
+ return supplyPositions[this.offchainPoolToken.poolTokenType];
31
+ });
32
+ }
33
+ getAmount() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const supplyPosition = yield this.getSupplyPosition();
36
+ if (!supplyPosition)
37
+ return 0;
38
+ const exchangeRate = yield this.offchainPoolToken.getExchangeRate();
39
+ const supplyBalance = parseFloat(supplyPosition.balance);
40
+ return supplyBalance * exchangeRate;
41
+ });
42
+ }
43
+ getBorrowPosition() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const userData = yield this.lendingPool.getUserData();
46
+ if (!userData)
47
+ return undefined;
48
+ const borrowPositions = userData.borrowPositions[this.offchainPoolToken.lendingPool.pairAddress];
49
+ if (!borrowPositions)
50
+ return undefined;
51
+ return borrowPositions[this.offchainPoolToken.poolTokenType];
52
+ });
53
+ }
54
+ getBorrowedAmount() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const borrowPosition = yield this.getBorrowPosition();
57
+ const borrowIndex = yield this.offchainPoolToken.getBorrowIndex();
58
+ if (!borrowPosition)
59
+ return 0;
60
+ const borrowBalance = parseFloat(borrowPosition.borrowBalance);
61
+ const userBorrowIndex = parseFloat(borrowPosition.borrowIndex);
62
+ return borrowBalance * borrowIndex / userBorrowIndex;
63
+ });
64
+ }
65
+ getBorrowedValue() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const tokenPrice = yield this.offchainPoolToken.getTokenPriceAccurate();
68
+ const borrowedAmount = yield this.getBorrowedAmount();
69
+ return borrowedAmount * tokenPrice;
70
+ });
71
+ }
72
+ }
73
+ exports.default = Borrowable;
@@ -0,0 +1,12 @@
1
+ import { CollateralPosition } from "../../types";
2
+ import { PoolTokenType } from '../../../config/types';
3
+ import LendingPool from './index';
4
+ import PoolToken from '../poolToken';
5
+ import * as offchain from '../../index';
6
+ export default class Collateral extends PoolToken {
7
+ accountLendingPool: LendingPool;
8
+ poolToken: offchain.lendingPool.Collateral;
9
+ constructor(accountLendingPool: LendingPool, poolTokenType: PoolTokenType);
10
+ getCollateralPosition(): Promise<CollateralPosition | undefined>;
11
+ getAmount(): Promise<number>;
12
+ }
@@ -0,0 +1,42 @@
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 Collateral extends poolToken_1.default {
18
+ constructor(accountLendingPool, poolTokenType) {
19
+ super();
20
+ this.accountLendingPool = accountLendingPool;
21
+ this.poolToken = accountLendingPool.lendingPool.poolTokens[poolTokenType];
22
+ }
23
+ getCollateralPosition() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const userData = yield this.lendingPool.getUserData();
26
+ if (!userData)
27
+ return undefined;
28
+ return userData.collateralPositions[this.offchainPoolToken.lendingPool.pairAddress];
29
+ });
30
+ }
31
+ getAmount() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const collateralPosition = yield this.getCollateralPosition();
34
+ if (!collateralPosition)
35
+ return 0;
36
+ const exchangeRate = yield this.offchainPoolToken.lendingPool.poolTokens[types_1.PoolTokenType.Collateral].getExchangeRate();
37
+ const collateralBalance = parseFloat(collateralPosition.balance);
38
+ return collateralBalance * exchangeRate;
39
+ });
40
+ }
41
+ }
42
+ exports.default = Collateral;
@@ -0,0 +1,11 @@
1
+ import * as offchain from '../index';
2
+ import Account from './index';
3
+ import PoolToken from './poolToken';
4
+ export default class LendingVault extends PoolToken {
5
+ account: Account;
6
+ poolToken: offchain.LendingVault;
7
+ constructor(account: Account, lendingVault: offchain.LendingVault);
8
+ getAmount(): Promise<number>;
9
+ getEarnings(): Promise<number>;
10
+ getEarningsUSD(): Promise<number>;
11
+ }
@@ -0,0 +1,38 @@
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 LendingVault extends poolToken_1.default {
17
+ constructor(account, lendingVault) {
18
+ super();
19
+ this.account = account;
20
+ this.poolToken = lendingVault;
21
+ }
22
+ getAmount() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ return 0;
25
+ });
26
+ }
27
+ getEarnings() {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ return 0;
30
+ });
31
+ }
32
+ getEarningsUSD() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return 0;
35
+ });
36
+ }
37
+ }
38
+ exports.default = LendingVault;
@@ -0,0 +1,6 @@
1
+ import * as offchain from "../";
2
+ export default abstract class PoolToken {
3
+ poolToken: offchain.PoolToken;
4
+ abstract getAmount(): Promise<number>;
5
+ getValue(): Promise<number>;
6
+ }
@@ -0,0 +1,21 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ class PoolToken {
13
+ getValue() {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const tokenPrice = yield this.offchainPoolToken.getTokenPriceAccurate();
16
+ const amount = yield this.getAmount();
17
+ return amount * tokenPrice;
18
+ });
19
+ }
20
+ }
21
+ exports.default = PoolToken;
@@ -0,0 +1,32 @@
1
+ import { ApolloQueryResult } from "apollo-client";
2
+ import Offchain from "./index";
3
+ import { DocumentNode } from "graphql";
4
+ import { Address, AddressIndex, Factory, FactoryIndex, LendingPoolIndex } from '../config/types';
5
+ import { Amms } from '../config/amms';
6
+ import { LendingPoolData, RawUserData, TvlData, UserData, XimxData } from './types';
7
+ export declare function apolloFetcher(subgraphUrl: string, query: DocumentNode): Promise<ApolloQueryResult<any>>;
8
+ export declare function fetchBlockByTimestamp(this: Offchain, timestamp: number): Promise<number | null>;
9
+ export declare function fetchLendingPools(this: Offchain): Promise<FactoryIndex<LendingPoolData[]>>;
10
+ export declare function fetchLendingPoolsPast(this: Offchain, seconds: number): Promise<FactoryIndex<any[]> | null>;
11
+ export declare function fetchImpermaxChefRewardRates(this: Offchain): Promise<AddressIndex<Array<{
12
+ rewardToken: Address;
13
+ rewardRate: number;
14
+ }>> | null>;
15
+ export declare function fetchPastVolume(this: Offchain, amm: Amms, lendingPools: LendingPoolData[], seconds: number): Promise<AddressIndex<number>>;
16
+ export declare function fetchCurrentVolumeAndReserves(this: Offchain, amm: Amms, lendingPools: LendingPoolData[]): Promise<{
17
+ currentVolume: AddressIndex<number>;
18
+ currentReserve: AddressIndex<number>;
19
+ }>;
20
+ export declare function fetchUniswapAPR(this: Offchain, lendingPoolsByAmm: {
21
+ [key in Amms]?: LendingPoolData[];
22
+ }, seconds?: number): Promise<AddressIndex<number>>;
23
+ export declare function initializeLendingPoolsData(this: Offchain): Promise<LendingPoolIndex<LendingPoolData>>;
24
+ export declare function getLendingPoolsData(this: Offchain): Promise<LendingPoolIndex<LendingPoolData>>;
25
+ export declare function getLendingPoolData(this: Offchain, factory: Factory, uniswapV2PairAddress: Address): Promise<LendingPoolData>;
26
+ export declare function initializeTvlData(this: Offchain): Promise<TvlData>;
27
+ export declare function getTvlData(this: Offchain): Promise<TvlData>;
28
+ export declare function fetchUserData(this: Offchain, account: Address): Promise<FactoryIndex<RawUserData>>;
29
+ export declare function initializeUserData(this: Offchain, account: Address): Promise<FactoryIndex<UserData> | null>;
30
+ export declare function getUserData(this: Offchain, account: Address): Promise<FactoryIndex<UserData> | null>;
31
+ export declare function initializeXimxData(this: Offchain): Promise<XimxData>;
32
+ export declare function getXimxData(this: Offchain): Promise<XimxData>;