@sonarwatch/portfolio-plugins 0.11.119 → 0.11.121
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +13 -5
- package/package.json +2 -2
- package/src/plugins/abex/constants.d.ts +2 -0
- package/src/plugins/abex/constants.js +3 -1
- package/src/plugins/abex/constants.js.map +1 -1
- package/src/plugins/abex/marketsJob.js +13 -4
- package/src/plugins/abex/marketsJob.js.map +1 -1
- package/src/plugins/abex/positionsFetcher.js +34 -7
- package/src/plugins/abex/positionsFetcher.js.map +1 -1
- package/src/plugins/abex/types.d.ts +13 -0
- package/src/plugins/suilend/helpers.d.ts +7 -2
- package/src/plugins/suilend/helpers.js +54 -3
- package/src/plugins/suilend/helpers.js.map +1 -1
- package/src/plugins/suilend/marketsJob.js +43 -2
- package/src/plugins/suilend/marketsJob.js.map +1 -1
- package/src/plugins/suilend/obligationsFetcher.js +22 -12
- package/src/plugins/suilend/obligationsFetcher.js.map +1 -1
- package/src/plugins/suilend/types.d.ts +5 -0
package/CHANGELOG.md
CHANGED
@@ -2,14 +2,22 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
-
## [0.11.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
## [0.11.118](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.117...plugins-0.11.118) (2024-03-13)
|
5
|
+
## [0.11.121](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.120...plugins-0.11.121) (2024-03-14)
|
10
6
|
|
11
7
|
|
12
8
|
|
9
|
+
## [0.11.120](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.119...plugins-0.11.120) (2024-03-14)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
## [0.11.119](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.118...plugins-0.11.119) (2024-03-14)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
## [0.11.118](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.117...plugins-0.11.118) (2024-03-13)
|
18
|
+
|
19
|
+
|
20
|
+
|
13
21
|
## [0.11.117](https://github.com/sonarwatch/portfolio/compare/plugins-0.11.116...plugins-0.11.117) (2024-03-13)
|
14
22
|
|
15
23
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sonarwatch/portfolio-plugins",
|
3
|
-
"version": "0.11.
|
3
|
+
"version": "0.11.121",
|
4
4
|
"type": "commonjs",
|
5
5
|
"generators": "./generators.json",
|
6
6
|
"dependencies": {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
"web3-v1": "npm:web3@^1.5.0"
|
42
42
|
},
|
43
43
|
"peerDependencies": {
|
44
|
-
"@sonarwatch/portfolio-core": "0.11.
|
44
|
+
"@sonarwatch/portfolio-core": "0.11.121"
|
45
45
|
},
|
46
46
|
"main": "./src/index.js",
|
47
47
|
"types": "./src/index.d.ts"
|
@@ -5,3 +5,5 @@ export declare const alpType = "0xceab84acf6bf70f503c3b0627acaff6b3f84cee0f2d7ed
|
|
5
5
|
export declare const alpDecimals = 6;
|
6
6
|
export declare const depositVaultRegistry = "0x3c6595e543c4766dd63b5b2fa918516bac2920bc1944da068be031dced46a18d";
|
7
7
|
export declare const alpSupplyObjectId = "0x7705d4670e7ef4623d6392888f73f6773b5f0218b6cb1486a4be238692a58bca";
|
8
|
+
export declare const poolObjectId = "0x9a1c1130b6c8c6b465397ef8a99b2917c5a7a957df98cb4812212674aa971f63";
|
9
|
+
export declare const poolAccRewardPerShareKey = "accRewardPerShare";
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.alpSupplyObjectId = exports.depositVaultRegistry = exports.alpDecimals = exports.alpType = exports.platform = exports.platformId = void 0;
|
3
|
+
exports.poolAccRewardPerShareKey = exports.poolObjectId = exports.alpSupplyObjectId = exports.depositVaultRegistry = exports.alpDecimals = exports.alpType = exports.platform = exports.platformId = void 0;
|
4
4
|
exports.platformId = 'abex';
|
5
5
|
exports.platform = {
|
6
6
|
id: exports.platformId,
|
@@ -14,4 +14,6 @@ exports.alpType = '0xceab84acf6bf70f503c3b0627acaff6b3f84cee0f2d7ed53d00fa6c2a16
|
|
14
14
|
exports.alpDecimals = 6;
|
15
15
|
exports.depositVaultRegistry = '0x3c6595e543c4766dd63b5b2fa918516bac2920bc1944da068be031dced46a18d';
|
16
16
|
exports.alpSupplyObjectId = '0x7705d4670e7ef4623d6392888f73f6773b5f0218b6cb1486a4be238692a58bca';
|
17
|
+
exports.poolObjectId = '0x9a1c1130b6c8c6b465397ef8a99b2917c5a7a957df98cb4812212674aa971f63';
|
18
|
+
exports.poolAccRewardPerShareKey = 'accRewardPerShare';
|
17
19
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,6CAA6C;IACpD,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,iCAAiC;IAC1C,WAAW,EAAE,cAAc,EAAE,sCAAsC;CACpE,CAAC;AAEW,QAAA,OAAO,GAClB,8EAA8E,CAAC;AACpE,QAAA,WAAW,GAAG,CAAC,CAAC;AAChB,QAAA,oBAAoB,GAC/B,oEAAoE,CAAC;AAC1D,QAAA,iBAAiB,GAC5B,oEAAoE,CAAC"}
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,6CAA6C;IACpD,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,iCAAiC;IAC1C,WAAW,EAAE,cAAc,EAAE,sCAAsC;CACpE,CAAC;AAEW,QAAA,OAAO,GAClB,8EAA8E,CAAC;AACpE,QAAA,WAAW,GAAG,CAAC,CAAC;AAChB,QAAA,oBAAoB,GAC/B,oEAAoE,CAAC;AAC1D,QAAA,iBAAiB,GAC5B,oEAAoE,CAAC;AAC1D,QAAA,YAAY,GACvB,oEAAoE,CAAC;AAC1D,QAAA,wBAAwB,GAAG,mBAAmB,CAAC"}
|
@@ -23,10 +23,19 @@ const aptos_1 = require("../../utils/aptos");
|
|
23
23
|
const getObject_1 = require("../../utils/sui/getObject");
|
24
24
|
const constants_2 = require("../tokens/constants");
|
25
25
|
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
26
|
-
var _a, _b, _c, _d, _e, _f;
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
27
27
|
const client = (0, clients_1.getClientSui)();
|
28
|
+
// Pool
|
29
|
+
const poolObject = yield (0, getObject_1.getObject)(client, constants_1.poolObjectId);
|
30
|
+
const accRewardPerShare = (_b = (_a = poolObject.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.acc_reward_per_share;
|
31
|
+
if (accRewardPerShare) {
|
32
|
+
yield cache.setItem(constants_1.poolAccRewardPerShareKey, accRewardPerShare, {
|
33
|
+
prefix: constants_1.platformId,
|
34
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
35
|
+
});
|
36
|
+
}
|
28
37
|
const lpObject = yield (0, getObject_1.getObject)(client, constants_1.alpSupplyObjectId);
|
29
|
-
const lpSupply = (
|
38
|
+
const lpSupply = (_d = (_c = lpObject.data) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.fields.lp_supply.fields.value;
|
30
39
|
if (!lpSupply)
|
31
40
|
return;
|
32
41
|
const depositVaultFields = yield (0, getDynamicFields_1.getDynamicFields)(client, constants_1.depositVaultRegistry);
|
@@ -46,10 +55,10 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
55
|
const lpUnderlyings = [];
|
47
56
|
for (let i = 0; i < objects.length; i++) {
|
48
57
|
const object = objects[i];
|
49
|
-
const market = (
|
58
|
+
const market = (_f = (_e = object.data) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.fields;
|
50
59
|
if (!market)
|
51
60
|
return;
|
52
|
-
const uType = (
|
61
|
+
const uType = (_h = (_g = (0, aptos_1.parseTypeString)(market.value.type).keys) === null || _g === void 0 ? void 0 : _g.at(0)) === null || _h === void 0 ? void 0 : _h.type;
|
53
62
|
if (!uType)
|
54
63
|
return;
|
55
64
|
const tokenPrice = tokenPrices.get((0, portfolio_core_1.formatTokenAddress)(uType, portfolio_core_1.NetworkId.sui));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/marketsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAA2E;AAC3E,gEAAqC;AAGrC,
|
1
|
+
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/marketsJob.ts"],"names":[],"mappings":"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"}
|
@@ -19,7 +19,7 @@ const clients_1 = require("../../utils/clients");
|
|
19
19
|
const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
|
20
20
|
const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
|
21
21
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
22
|
-
var _a, _b;
|
22
|
+
var _a, _b, _c, _d;
|
23
23
|
const client = (0, clients_1.getClientSui)();
|
24
24
|
const objects = yield (0, getOwnedObjects_1.getOwnedObjects)(client, owner, {
|
25
25
|
filter: {
|
@@ -28,13 +28,40 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
28
28
|
});
|
29
29
|
if (objects.length === 0)
|
30
30
|
return [];
|
31
|
-
const alpPrice = yield cache.
|
31
|
+
const [alpPrice, suiPrice] = yield cache.getTokenPrices([constants_1.alpType, portfolio_core_1.suiNativeAddress], portfolio_core_1.NetworkId.sui);
|
32
|
+
const poolAccRewardPerShareStr = yield cache.getItem(constants_1.poolAccRewardPerShareKey, {
|
33
|
+
prefix: constants_1.platformId,
|
34
|
+
networkId: portfolio_core_1.NetworkId.sui,
|
35
|
+
});
|
36
|
+
const poolAccRewardPerShare = poolAccRewardPerShareStr
|
37
|
+
? new bignumber_js_1.default(poolAccRewardPerShareStr)
|
38
|
+
: undefined;
|
32
39
|
let alpAmount = new bignumber_js_1.default(0);
|
40
|
+
let claimmableAmount = new bignumber_js_1.default(0);
|
33
41
|
for (let i = 0; i < objects.length; i++) {
|
34
42
|
const object = objects[i];
|
35
|
-
|
43
|
+
const cAlpAmount = (_b = (_a = object.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.stake;
|
44
|
+
if (!cAlpAmount)
|
45
|
+
continue;
|
46
|
+
alpAmount = alpAmount.plus(cAlpAmount);
|
47
|
+
if (!poolAccRewardPerShare)
|
48
|
+
continue;
|
49
|
+
const accRewardPerShare = (_d = (_c = object.data) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.fields.acc_reward_per_share;
|
50
|
+
if (!accRewardPerShare)
|
51
|
+
continue;
|
52
|
+
const cClaimmableAmount = poolAccRewardPerShare
|
53
|
+
.minus(accRewardPerShare)
|
54
|
+
.times(cAlpAmount)
|
55
|
+
.div(Math.pow(10, 18));
|
56
|
+
claimmableAmount = claimmableAmount.plus(cClaimmableAmount);
|
36
57
|
}
|
37
58
|
const asset = (0, tokenPriceToAssetToken_1.default)(constants_1.alpType, alpAmount.dividedBy(Math.pow(10, constants_1.alpDecimals)).toNumber(), portfolio_core_1.NetworkId.sui, alpPrice);
|
59
|
+
const rewardAsset = (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.suiNativeAddress, claimmableAmount.dividedBy(Math.pow(10, portfolio_core_1.suiNativeDecimals)).toNumber(), portfolio_core_1.NetworkId.sui, suiPrice, undefined, {
|
60
|
+
isClaimable: true,
|
61
|
+
});
|
62
|
+
if (claimmableAmount.isZero() && alpAmount.isZero())
|
63
|
+
return [];
|
64
|
+
const value = (0, portfolio_core_1.getUsdValueSum)([rewardAsset.value, asset.value]);
|
38
65
|
const element = {
|
39
66
|
networkId: portfolio_core_1.NetworkId.sui,
|
40
67
|
label: 'Staked',
|
@@ -45,14 +72,14 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
45
72
|
{
|
46
73
|
assets: [asset],
|
47
74
|
assetsValue: asset.value,
|
48
|
-
rewardAssets: [],
|
49
|
-
rewardAssetsValue:
|
50
|
-
value
|
75
|
+
rewardAssets: [rewardAsset],
|
76
|
+
rewardAssetsValue: rewardAsset.value,
|
77
|
+
value,
|
51
78
|
yields: [],
|
52
79
|
},
|
53
80
|
],
|
54
81
|
},
|
55
|
-
value
|
82
|
+
value,
|
56
83
|
};
|
57
84
|
return [element];
|
58
85
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"positionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/positionsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+
|
1
|
+
{"version":3,"file":"positionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/abex/positionsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -6,6 +6,19 @@ export type Credential = {
|
|
6
6
|
lock_until: string;
|
7
7
|
stake: string;
|
8
8
|
};
|
9
|
+
export type Pool = {
|
10
|
+
acc_reward_per_share: string;
|
11
|
+
enabled: boolean;
|
12
|
+
end_time: string;
|
13
|
+
id: {
|
14
|
+
id: string;
|
15
|
+
};
|
16
|
+
last_updated_time: string;
|
17
|
+
lock_duration: string;
|
18
|
+
reward: string;
|
19
|
+
staked_amount: string;
|
20
|
+
start_time: string;
|
21
|
+
};
|
9
22
|
export type AlpMarket = {
|
10
23
|
fun_mask: string;
|
11
24
|
id: {
|
@@ -1,2 +1,7 @@
|
|
1
|
-
import
|
2
|
-
|
1
|
+
import BigNumber from 'bignumber.js';
|
2
|
+
import { BorrowLendRate } from '@sonarwatch/portfolio-core';
|
3
|
+
import { LendingMarket, PoolReward, Reserve } from './types';
|
4
|
+
export declare function getPoolsRewardsAsMap(lendingMarkets: LendingMarket[] | undefined): Map<string, PoolReward>;
|
5
|
+
export declare function getRatesAsMap(borrowLendRates: BorrowLendRate[] | undefined): Map<string, BorrowLendRate>;
|
6
|
+
export declare function getBorrowApr(utilization: BigNumber, borrowedAmount: BigNumber, availableAmount: BigNumber, reserveFields: Reserve): number;
|
7
|
+
export declare function getDepositApr(utilization: BigNumber, borrowApr: number, reserveFields: Reserve): number;
|
@@ -1,10 +1,14 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getPoolsRewardsAsMap = void 0;
|
6
|
+
exports.getDepositApr = exports.getBorrowApr = exports.getRatesAsMap = exports.getPoolsRewardsAsMap = void 0;
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
4
8
|
function getPoolsRewardsAsMap(lendingMarkets) {
|
5
|
-
if (!lendingMarkets)
|
6
|
-
return undefined;
|
7
9
|
const rewardMintByPoolId = new Map();
|
10
|
+
if (!lendingMarkets)
|
11
|
+
return rewardMintByPoolId;
|
8
12
|
for (const lendingMarket of lendingMarkets) {
|
9
13
|
const { reserves } = lendingMarket;
|
10
14
|
for (const reserve of reserves) {
|
@@ -16,4 +20,51 @@ function getPoolsRewardsAsMap(lendingMarkets) {
|
|
16
20
|
return rewardMintByPoolId;
|
17
21
|
}
|
18
22
|
exports.getPoolsRewardsAsMap = getPoolsRewardsAsMap;
|
23
|
+
function getRatesAsMap(borrowLendRates) {
|
24
|
+
const ratesByReserveId = new Map();
|
25
|
+
if (!borrowLendRates)
|
26
|
+
return ratesByReserveId;
|
27
|
+
for (const borrowLendRate of borrowLendRates) {
|
28
|
+
const id = borrowLendRate.poolName;
|
29
|
+
ratesByReserveId.set(id, borrowLendRate);
|
30
|
+
}
|
31
|
+
return ratesByReserveId;
|
32
|
+
}
|
33
|
+
exports.getRatesAsMap = getRatesAsMap;
|
34
|
+
function getBorrowApr(utilization, borrowedAmount, availableAmount, reserveFields) {
|
35
|
+
const { interest_rate_aprs: rateAprs, interest_rate_utils: rateUtils } = reserveFields.config.fields.element.fields;
|
36
|
+
if (borrowedAmount.isZero())
|
37
|
+
return (0, bignumber_js_1.default)(rateAprs[0]).dividedBy(100).toNumber();
|
38
|
+
if (availableAmount.isZero())
|
39
|
+
return (0, bignumber_js_1.default)(rateAprs[rateAprs.length]).dividedBy(100).toNumber();
|
40
|
+
for (let i = 0; i < rateUtils.length; i++) {
|
41
|
+
const currentUtil = rateUtils[i] / 100;
|
42
|
+
const nextUtil = rateUtils[i + 1] / 100;
|
43
|
+
const currentApr = new bignumber_js_1.default(rateAprs[i]).dividedBy(Math.pow(10, 4));
|
44
|
+
const nextApr = new bignumber_js_1.default(rateAprs[i + 1]).dividedBy(Math.pow(10, 4));
|
45
|
+
if (utilization.isEqualTo(currentUtil)) {
|
46
|
+
return currentApr.toNumber();
|
47
|
+
}
|
48
|
+
if (utilization.isLessThan(nextUtil)) {
|
49
|
+
const utilizationDelta = utilization.minus(currentUtil);
|
50
|
+
const utilStepsDelta = nextUtil - currentUtil;
|
51
|
+
return utilizationDelta
|
52
|
+
.dividedBy(utilStepsDelta)
|
53
|
+
.times(nextApr.minus(currentApr))
|
54
|
+
.plus(currentApr)
|
55
|
+
.toNumber();
|
56
|
+
}
|
57
|
+
}
|
58
|
+
return 0;
|
59
|
+
}
|
60
|
+
exports.getBorrowApr = getBorrowApr;
|
61
|
+
function getDepositApr(utilization, borrowApr, reserveFields) {
|
62
|
+
return (0, bignumber_js_1.default)(borrowApr)
|
63
|
+
.times(1 -
|
64
|
+
Number(reserveFields.config.fields.element.fields.spread_fee_bps) /
|
65
|
+
Math.pow(10, 4))
|
66
|
+
.times(utilization)
|
67
|
+
.toNumber();
|
68
|
+
}
|
69
|
+
exports.getDepositApr = getDepositApr;
|
19
70
|
//# sourceMappingURL=helpers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/helpers.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/helpers.ts"],"names":[],"mappings":"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"}
|
@@ -8,20 +8,61 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
15
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
13
17
|
const clients_1 = require("../../utils/clients");
|
14
18
|
const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
|
15
19
|
const constants_1 = require("./constants");
|
20
|
+
const helpers_1 = require("./helpers");
|
21
|
+
const constants_2 = require("../solend/constants");
|
16
22
|
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
23
|
+
var _a, _b;
|
17
24
|
const client = (0, clients_1.getClientSui)();
|
18
25
|
const marketsObjects = yield (0, multiGetObjects_1.multiGetObjects)(client, [
|
19
26
|
constants_1.mainMarket,
|
20
27
|
]);
|
21
|
-
|
28
|
+
const promises = [];
|
29
|
+
const rates = [];
|
30
|
+
const lendingMarkets = [];
|
31
|
+
for (const market of marketsObjects) {
|
32
|
+
if ((_b = (_a = market.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields) {
|
33
|
+
lendingMarkets.push(market.data.content.fields);
|
34
|
+
for (const reserve of market.data.content.fields.reserves) {
|
35
|
+
const borrowedAmount = new bignumber_js_1.default(reserve.fields.borrowed_amount.fields.value);
|
36
|
+
const availableAmount = new bignumber_js_1.default(reserve.fields.available_amount).times(Math.pow(10, constants_2.wadsDecimal));
|
37
|
+
const utilization = borrowedAmount.dividedBy(availableAmount.plus(borrowedAmount));
|
38
|
+
const borrowApr = (0, helpers_1.getBorrowApr)(utilization, borrowedAmount, availableAmount, reserve.fields);
|
39
|
+
const depositApr = (0, helpers_1.getDepositApr)(utilization, borrowApr, reserve.fields);
|
40
|
+
const rate = {
|
41
|
+
poolName: reserve.fields.id.id,
|
42
|
+
borrowedAmount: borrowedAmount.toNumber(),
|
43
|
+
depositedAmount: borrowedAmount.plus(availableAmount).toNumber(),
|
44
|
+
platformId: constants_1.platformId,
|
45
|
+
tokenAddress: reserve.fields.coin_type.fields.name,
|
46
|
+
utilizationRatio: utilization.toNumber(),
|
47
|
+
depositYield: { apr: depositApr, apy: (0, portfolio_core_1.aprToApy)(depositApr) },
|
48
|
+
borrowYield: { apr: borrowApr, apy: (0, portfolio_core_1.aprToApy)(borrowApr) },
|
49
|
+
};
|
50
|
+
rates.push(rate);
|
51
|
+
promises.push(cache.setItem(`${reserve.fields.id.id}-${reserve.fields.coin_type.fields.name}`, rate, {
|
52
|
+
prefix: portfolio_core_1.borrowLendRatesPrefix,
|
53
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
54
|
+
}));
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
promises.push(cache.setItem(constants_1.marketsKey, {
|
59
|
+
lendingMarkets,
|
60
|
+
rates,
|
61
|
+
}, {
|
22
62
|
prefix: constants_1.platformId,
|
23
63
|
networkId: portfolio_core_1.NetworkId.sui,
|
24
|
-
});
|
64
|
+
}));
|
65
|
+
yield Promise.allSettled(promises);
|
25
66
|
});
|
26
67
|
const job = {
|
27
68
|
id: `${constants_1.platformId}-markets`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/marketsJob.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/marketsJob.ts"],"names":[],"mappings":"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"}
|
@@ -42,18 +42,20 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
42
42
|
if (obligations.length === 0)
|
43
43
|
return [];
|
44
44
|
const mints = new Set();
|
45
|
-
const
|
45
|
+
const marketsInfo = yield cache.getItem(constants_1.marketsKey, {
|
46
46
|
prefix: constants_1.platformId,
|
47
47
|
networkId: portfolio_core_1.NetworkId.sui,
|
48
48
|
});
|
49
|
+
const lendingMarkets = marketsInfo === null || marketsInfo === void 0 ? void 0 : marketsInfo.lendingMarkets;
|
50
|
+
const rates = marketsInfo === null || marketsInfo === void 0 ? void 0 : marketsInfo.rates;
|
51
|
+
const ratesByReserveId = (0, helpers_1.getRatesAsMap)(rates);
|
49
52
|
const marketsByIndex = new Map();
|
50
|
-
if (
|
51
|
-
|
53
|
+
if (lendingMarkets)
|
54
|
+
marketsInfo.lendingMarkets.forEach((market) => {
|
52
55
|
marketsByIndex.set(market.id.id, market);
|
53
56
|
});
|
54
|
-
const poolRewardById = (0, helpers_1.getPoolsRewardsAsMap)(
|
55
|
-
|
56
|
-
poolRewardById.forEach((pool) => mints.add(pool.coin_type.fields.name));
|
57
|
+
const poolRewardById = (0, helpers_1.getPoolsRewardsAsMap)(lendingMarkets);
|
58
|
+
poolRewardById.forEach((pool) => mints.add(pool.coin_type.fields.name));
|
57
59
|
const borrowedAssets = [];
|
58
60
|
const borrowedYields = [];
|
59
61
|
const suppliedAssets = [];
|
@@ -92,6 +94,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
92
94
|
const tokenPrice = tokenPriceById.get((0, portfolio_core_1.formatTokenAddress)(fields.coin_type.fields.name, portfolio_core_1.NetworkId.sui));
|
93
95
|
if (!tokenPrice)
|
94
96
|
continue;
|
97
|
+
const reserveRates = ratesByReserveId.get(reserve.fields.id.id);
|
98
|
+
if (reserveRates) {
|
99
|
+
suppliedYields.push([reserveRates.depositYield]);
|
100
|
+
}
|
95
101
|
const amount = new bignumber_js_1.default(fields.deposited_ctoken_amount)
|
96
102
|
.multipliedBy(cRatio)
|
97
103
|
.dividedBy(Math.pow(10, tokenPrice.decimals));
|
@@ -103,20 +109,24 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
103
109
|
}
|
104
110
|
// Borrows
|
105
111
|
for (const borrow of borrows) {
|
106
|
-
const { fields } = borrow;
|
107
|
-
const reserve = reserves.at(Number(
|
112
|
+
const { fields: userBorrowFields } = borrow;
|
113
|
+
const reserve = reserves.at(Number(userBorrowFields.reserve_array_index));
|
108
114
|
if (!reserve)
|
109
115
|
continue;
|
110
|
-
const tokenPrice = tokenPriceById.get((0, portfolio_core_1.formatTokenAddress)(
|
116
|
+
const tokenPrice = tokenPriceById.get((0, portfolio_core_1.formatTokenAddress)(userBorrowFields.coin_type.fields.name, portfolio_core_1.NetworkId.sui));
|
111
117
|
if (!tokenPrice)
|
112
118
|
continue;
|
113
|
-
const cumulativeRateRatio = new bignumber_js_1.default(reserve.fields.cumulative_borrow_rate.fields.value).dividedBy(
|
114
|
-
const amount = new bignumber_js_1.default(
|
119
|
+
const cumulativeRateRatio = new bignumber_js_1.default(reserve.fields.cumulative_borrow_rate.fields.value).dividedBy(userBorrowFields.cumulative_borrow_rate.fields.value);
|
120
|
+
const amount = new bignumber_js_1.default(userBorrowFields.borrowed_amount.fields.value)
|
115
121
|
.times(cumulativeRateRatio)
|
116
122
|
.dividedBy(Math.pow(10, (constants_2.wadsDecimal + tokenPrice.decimals)));
|
117
123
|
if (amount.isZero())
|
118
124
|
continue;
|
119
|
-
const
|
125
|
+
const reserveRates = ratesByReserveId.get(reserve.fields.id.id);
|
126
|
+
if (reserveRates) {
|
127
|
+
borrowedYields.push([reserveRates.borrowYield]);
|
128
|
+
}
|
129
|
+
const price = new bignumber_js_1.default(userBorrowFields.market_value.fields.value)
|
120
130
|
.dividedBy(Math.pow(10, constants_2.wadsDecimal))
|
121
131
|
.dividedBy(amount);
|
122
132
|
borrowedAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPrice.address, amount.toNumber(), portfolio_core_1.NetworkId.sui, tokenPrice, price.toNumber()));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"obligationsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/obligationsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAQoC;AACpC,gEAAqC;AAGrC,2CAKqB;AACrB,iDAAmD;AACnD,qEAAkE;
|
1
|
+
{"version":3,"file":"obligationsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/suilend/obligationsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { BorrowLendRate } from '@sonarwatch/portfolio-core';
|
1
2
|
import { ParsedData } from '../../utils/sui/types';
|
2
3
|
export type ObligationCapFields = {
|
3
4
|
id: ID;
|
@@ -47,6 +48,10 @@ export type Reward = {
|
|
47
48
|
earned_rewards: ParsedData<Value>;
|
48
49
|
pool_reward_id: string;
|
49
50
|
};
|
51
|
+
export type MarketsInfo = {
|
52
|
+
lendingMarkets: LendingMarket[];
|
53
|
+
rates: BorrowLendRate[];
|
54
|
+
};
|
50
55
|
export type LendingMarket = {
|
51
56
|
id: ID;
|
52
57
|
version: string;
|