@sonarwatch/portfolio-plugins 0.4.46 → 0.4.47

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/CHANGELOG.md CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.4.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.45...plugins-0.4.46) (2023-07-18)
5
+ ## [0.4.47](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.46...plugins-0.4.47) (2023-07-19)
6
6
 
7
7
 
8
8
 
9
+ ## [0.4.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.45...plugins-0.4.46) (2023-07-18)
10
+
11
+
12
+
9
13
  ## [0.4.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.44...plugins-0.4.45) (2023-07-17)
10
14
 
11
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.4.46",
3
+ "version": "0.4.47",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -22,7 +22,7 @@
22
22
  "viem": "^1.2.9"
23
23
  },
24
24
  "peerDependencies": {
25
- "@sonarwatch/portfolio-core": "0.4.48"
25
+ "@sonarwatch/portfolio-core": "0.4.49"
26
26
  },
27
27
  "main": "./src/index.js",
28
28
  "types": "./src/index.d.ts"
@@ -20,6 +20,7 @@ const filters_1 = require("./filters");
20
20
  const solana_1 = require("../../utils/solana");
21
21
  const clients_1 = require("../../utils/clients");
22
22
  const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
23
+ const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
23
24
  const fetcherExecutor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
24
25
  var _a;
25
26
  const connection = (0, clients_1.getClientSolana)();
@@ -27,49 +28,70 @@ const fetcherExecutor = (owner, cache) => __awaiter(void 0, void 0, void 0, func
27
28
  if (accounts.length === 0)
28
29
  return [];
29
30
  const lendingAccountBalances = (_a = accounts.at(0)) === null || _a === void 0 ? void 0 : _a.lendingAccount.balances;
31
+ if (!lendingAccountBalances)
32
+ return [];
30
33
  const borrowedAssets = [];
31
34
  const borrowedYields = [];
32
35
  const suppliedAssets = [];
33
36
  const suppliedYields = [];
34
37
  const rewardAssets = [];
35
- if (lendingAccountBalances) {
36
- for (let index = 0; index < lendingAccountBalances.length; index += 1) {
37
- const accountBalanceInfo = lendingAccountBalances[index];
38
- const bankInfo = yield cache.getItem(accountBalanceInfo.bankPk.toString(), {
39
- prefix: constants_1.prefix,
40
- networkId: portfolio_core_1.NetworkId.solana,
41
- });
42
- if (!bankInfo)
43
- continue;
44
- const { lendingApr, borrowingApr } = (0, helpers_1.getInterestRates)(bankInfo);
45
- const tokenPrice = yield cache.getTokenPrice(bankInfo.mint.toString(), portfolio_core_1.NetworkId.solana);
46
- if (!accountBalanceInfo.assetShares.value.isZero()) {
47
- const suppliedQuantity = (0, helpers_1.wrappedI80F48toBigNumber)(accountBalanceInfo.assetShares)
48
- .times(bankInfo.dividedAssetShareValue)
49
- .toNumber();
50
- suppliedAssets.push((0, tokenPriceToAssetToken_1.default)(bankInfo.mint.toString(), suppliedQuantity, portfolio_core_1.NetworkId.solana, tokenPrice));
51
- }
52
- if (!accountBalanceInfo.liabilityShares.value.isZero()) {
53
- const borrowedQuantity = (0, helpers_1.wrappedI80F48toBigNumber)(accountBalanceInfo.liabilityShares)
54
- .times(bankInfo.dividedLiabilityShareValue)
55
- .toNumber();
56
- borrowedAssets.push((0, tokenPriceToAssetToken_1.default)(bankInfo.mint.toString(), borrowedQuantity, portfolio_core_1.NetworkId.solana, tokenPrice));
57
- }
58
- const bankLendingYields = [
59
- {
60
- apr: lendingApr,
61
- apy: (0, portfolio_core_1.aprToApy)(lendingApr),
62
- },
63
- ];
64
- const bankBorrowedYields = [
65
- {
66
- apr: borrowingApr,
67
- apy: (0, portfolio_core_1.aprToApy)(borrowingApr),
68
- },
69
- ];
70
- suppliedYields.push(bankLendingYields);
71
- borrowedYields.push(bankBorrowedYields);
38
+ const balancesAddresses = lendingAccountBalances.map((lendingAccountBalance) => lendingAccountBalance.bankPk.toString());
39
+ const banksInfo = yield cache.getItems(balancesAddresses, {
40
+ prefix: constants_1.prefix,
41
+ networkId: portfolio_core_1.NetworkId.solana,
42
+ });
43
+ const banksInfoByAddress = new Map();
44
+ const tokensAddresses = new Set();
45
+ banksInfo.forEach((bankInfo) => {
46
+ if (!bankInfo)
47
+ return;
48
+ banksInfoByAddress.set(bankInfo.pubkey.toString(), bankInfo);
49
+ tokensAddresses.add(bankInfo.mint.toString());
50
+ });
51
+ const tokenPriceResults = yield (0, runInBatch_1.default)([...tokensAddresses].map((mint) => () => cache.getTokenPrice(mint, portfolio_core_1.NetworkId.solana)));
52
+ const tokenPrices = new Map();
53
+ tokenPriceResults.forEach((r) => {
54
+ if (r.status === 'rejected')
55
+ return;
56
+ if (!r.value)
57
+ return;
58
+ tokenPrices.set(r.value.address, r.value);
59
+ });
60
+ for (let index = 0; index < lendingAccountBalances.length; index += 1) {
61
+ const accountBalanceInfo = lendingAccountBalances[index];
62
+ const bankInfo = banksInfoByAddress.get(accountBalanceInfo.bankPk.toString());
63
+ if (!bankInfo)
64
+ continue;
65
+ const { lendingApr, borrowingApr } = (0, helpers_1.getInterestRates)(bankInfo);
66
+ const tokenPrice = tokenPrices.get(bankInfo.mint.toString());
67
+ if (!tokenPrice)
68
+ continue;
69
+ if (!accountBalanceInfo.assetShares.value.isZero()) {
70
+ const suppliedQuantity = (0, helpers_1.wrappedI80F48toBigNumber)(accountBalanceInfo.assetShares)
71
+ .times(bankInfo.dividedAssetShareValue)
72
+ .toNumber();
73
+ suppliedAssets.push((0, tokenPriceToAssetToken_1.default)(bankInfo.mint.toString(), suppliedQuantity, portfolio_core_1.NetworkId.solana, tokenPrice));
74
+ }
75
+ if (!accountBalanceInfo.liabilityShares.value.isZero()) {
76
+ const borrowedQuantity = (0, helpers_1.wrappedI80F48toBigNumber)(accountBalanceInfo.liabilityShares)
77
+ .times(bankInfo.dividedLiabilityShareValue)
78
+ .toNumber();
79
+ borrowedAssets.push((0, tokenPriceToAssetToken_1.default)(bankInfo.mint.toString(), borrowedQuantity, portfolio_core_1.NetworkId.solana, tokenPrice));
72
80
  }
81
+ const bankLendingYields = [
82
+ {
83
+ apr: lendingApr,
84
+ apy: (0, portfolio_core_1.aprToApy)(lendingApr),
85
+ },
86
+ ];
87
+ const bankBorrowedYields = [
88
+ {
89
+ apr: borrowingApr,
90
+ apy: (0, portfolio_core_1.aprToApy)(borrowingApr),
91
+ },
92
+ ];
93
+ suppliedYields.push(bankLendingYields);
94
+ borrowedYields.push(bankBorrowedYields);
73
95
  }
74
96
  const { borrowedValue, collateralRatio, suppliedValue, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
75
97
  if (borrowedAssets.length === 0 &&
@@ -1 +1 @@
1
- {"version":3,"file":"fetcherExecutor.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/marginfi/fetcherExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetcherExecutor.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/marginfi/fetcherExecutor.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ const solana_1 = require("../../utils/solana");
21
21
  const clients_1 = require("../../utils/clients");
22
22
  const structs_1 = require("./structs");
23
23
  const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
24
+ const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
24
25
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
25
26
  const client = (0, clients_1.getClientSolana)();
26
27
  const obligationAddresses = [];
@@ -28,6 +29,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
28
29
  prefix: constants_1.marketsPrefix,
29
30
  networkId: portfolio_core_1.NetworkId.solana,
30
31
  });
32
+ const marketsByAddress = new Map();
33
+ markets.forEach((market) => {
34
+ marketsByAddress.set(market.address.toString(), market);
35
+ });
31
36
  for (const marketInfo of markets.values()) {
32
37
  const seeds = [
33
38
  (0, helpers_1.getObligationSeed)(marketInfo.address, 0),
@@ -41,15 +46,50 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
41
46
  }
42
47
  }
43
48
  const obligations = yield (0, solana_1.getParsedMultipleAccountsInfo)(client, structs_1.obligationStruct, obligationAddresses);
49
+ const reserveAddresses = new Set();
50
+ obligations.forEach((obligation) => {
51
+ if (!obligation)
52
+ return;
53
+ const market = marketsByAddress.get(obligation.lendingMarket.toString());
54
+ if (!market)
55
+ return;
56
+ market.reserves.forEach((reserve) => {
57
+ reserveAddresses.add(reserve.address);
58
+ });
59
+ });
60
+ const reservesInfos = yield cache.getItems(Array.from(reserveAddresses), {
61
+ prefix: constants_1.reservesPrefix,
62
+ networkId: portfolio_core_1.NetworkId.solana,
63
+ });
64
+ if (!reservesInfos)
65
+ return [];
66
+ const reserveByAddress = new Map();
67
+ reservesInfos.forEach((reserve) => {
68
+ if (!reserve)
69
+ return;
70
+ reserveByAddress.set(reserve.pubkey, reserve);
71
+ });
72
+ const tokensAddresses = new Set();
73
+ reservesInfos.forEach((reserveInfo) => {
74
+ if (!reserveInfo)
75
+ return;
76
+ tokensAddresses.add(reserveInfo.reserve.liquidity.mintPubkey);
77
+ });
78
+ const tokenPriceResults = yield (0, runInBatch_1.default)([...tokensAddresses].map((mint) => () => cache.getTokenPrice(mint, portfolio_core_1.NetworkId.solana)));
79
+ const tokenPrices = new Map();
80
+ tokenPriceResults.forEach((r) => {
81
+ if (r.status === 'rejected')
82
+ return;
83
+ if (!r.value)
84
+ return;
85
+ tokenPrices.set(r.value.address, r.value);
86
+ });
44
87
  const elements = [];
45
88
  for (let i = 0; i < obligations.length; i += 1) {
46
89
  const obligation = obligations[i];
47
90
  if (!obligation)
48
91
  continue;
49
- const market = yield cache.getItem(obligation.lendingMarket.toString(), {
50
- prefix: constants_1.marketsPrefix,
51
- networkId: portfolio_core_1.NetworkId.solana,
52
- });
92
+ const market = marketsByAddress.get(obligation.lendingMarket.toString());
53
93
  if (!market)
54
94
  continue;
55
95
  const { depositsMap, borrowsMap } = (0, helpers_1.parseDataflat)(obligation.dataFlat, obligation.depositsLen, obligation.borrowsLen);
@@ -62,16 +102,14 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
62
102
  const rewardAssets = [];
63
103
  for (let j = 0; j < market.reserves.length; j += 1) {
64
104
  const { address: reserveAddress } = market.reserves[j];
65
- const reserveInfo = yield cache.getItem(reserveAddress, {
66
- prefix: constants_1.reservesPrefix,
67
- networkId: portfolio_core_1.NetworkId.solana,
68
- });
105
+ // const reserveInfo2 = reservesInfos[j];
106
+ const reserveInfo = reserveByAddress.get(reserveAddress);
69
107
  if (!reserveInfo)
70
108
  continue;
71
109
  const { reserve } = reserveInfo;
72
110
  const { liquidity, collateral } = reserve;
73
111
  const lMint = liquidity.mintPubkey;
74
- const lTokenPrice = yield cache.getTokenPrice(lMint, portfolio_core_1.NetworkId.solana);
112
+ const lTokenPrice = tokenPrices.get(lMint);
75
113
  if (!lTokenPrice)
76
114
  continue;
77
115
  const decimals = liquidity.mintDecimals;
@@ -1 +1 @@
1
- {"version":3,"file":"obligationsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/solend/obligationsFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligationsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/solend/obligationsFetcher.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
32
32
  continue;
33
33
  for (let j = 0; j < reservesInfoRes.data.results.length; j += 1) {
34
34
  const reserveInfo = reservesInfoRes.data.results[j];
35
- yield cache.setItem(reservesAddresses[j], reserveInfo, {
35
+ yield cache.setItem(reservesAddresses[j], Object.assign({ pubkey: reservesAddresses[j] }, reserveInfo), {
36
36
  prefix: constants_1.reservesPrefix,
37
37
  networkId: portfolio_core_1.NetworkId.solana,
38
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"reservesJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/solend/reservesJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,+DAAgF;AAChF,2CAKqB;AAErB,mEAA2C;AAE3C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAa;QAClD,MAAM,EAAE,yBAAa;KACtB,CAAC,CAAC;IACH,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CACjC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,eAAe,GACnB,MAAM,eAAK;aACR,GAAG,CAAC,GAAG,2BAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;aACvD,KAAK,CAAC,GAAG,EAAE;YACV,EAAE;QACJ,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/D,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;gBACrD,MAAM,EAAN,0BAAM;gBACN,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B,CAAC,CAAC;SACJ;QACD,MAAM,IAAA,eAAK,EAAC,GAAG,CAAC,CAAC;KAClB;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"reservesJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/solend/reservesJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,+DAAgF;AAChF,2CAKqB;AAErB,mEAA2C;AAE3C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAa;QAClD,MAAM,EAAE,yBAAa;KACtB,CAAC,CAAC;IACH,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CACjC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,eAAe,GACnB,MAAM,eAAK;aACR,GAAG,CAAC,GAAG,2BAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;aACvD,KAAK,CAAC,GAAG,EAAE;YACV,EAAE;QACJ,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/D,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC,OAAO,CACjB,iBAAiB,CAAC,CAAC,CAAC,kBAClB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAK,WAAW,GAC9C;gBACE,MAAM,EAAN,0BAAM;gBACN,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B,CACF,CAAC;SACH;QACD,MAAM,IAAA,eAAK,EAAC,GAAG,CAAC,CAAC;KAClB;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -38,6 +38,9 @@ export interface ReserveInfo {
38
38
  rates: RatesInfo;
39
39
  rewards: RewardInfo[];
40
40
  }
41
+ export type ReserveInfoExtended = ReserveInfo & {
42
+ pubkey: string;
43
+ };
41
44
  export interface ReserveData {
42
45
  version: number;
43
46
  lastUpdate: {