@sonarwatch/portfolio-plugins 0.12.42 → 0.12.44

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.12.44](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.43...plugins-0.12.44) (2024-07-01)
6
+
7
+
8
+
9
+ ## [0.12.43](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.42...plugins-0.12.43) (2024-07-01)
10
+
11
+
12
+
5
13
  ## [0.12.42](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.41...plugins-0.12.42) (2024-07-01)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.12.42",
3
+ "version": "0.12.44",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -7,12 +7,17 @@ exports.fetchers = exports.jobs = exports.platforms = void 0;
7
7
  const suiFetcher_1 = __importDefault(require("./suiFetcher"));
8
8
  const aptosFetcher_1 = __importDefault(require("./aptosFetcher"));
9
9
  const solanaFetcher_1 = __importDefault(require("./solana/solanaFetcher"));
10
- const solanaJob_1 = __importDefault(require("./solana/solanaJob"));
11
10
  const seiFetcher_1 = __importDefault(require("./seiFetcher"));
12
11
  const activeValidatorsJob_1 = __importDefault(require("./activeValidatorsJob"));
13
12
  const constants_1 = require("./constants");
13
+ const solanaEpochJob_1 = __importDefault(require("./solana/solanaEpochJob"));
14
+ const solanaValidatorsJob_1 = __importDefault(require("./solana/solanaValidatorsJob"));
14
15
  exports.platforms = [constants_1.nativeStakePlatform];
15
- exports.jobs = [activeValidatorsJob_1.default, solanaJob_1.default];
16
+ exports.jobs = [
17
+ activeValidatorsJob_1.default,
18
+ solanaEpochJob_1.default,
19
+ solanaValidatorsJob_1.default,
20
+ ];
16
21
  exports.fetchers = [
17
22
  suiFetcher_1.default,
18
23
  aptosFetcher_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/index.ts"],"names":[],"mappings":";;;;;;AAGA,8DAAsC;AACtC,kEAA0C;AAC1C,2EAAmD;AACnD,mEAA2C;AAC3C,8DAAsC;AACtC,gFAAuD;AACvD,2CAAkD;AAErC,QAAA,SAAS,GAAe,CAAC,+BAAmB,CAAC,CAAC;AAC9C,QAAA,IAAI,GAAU,CAAC,6BAAkB,EAAE,mBAAS,CAAC,CAAC;AAC9C,QAAA,QAAQ,GAAc;IACjC,oBAAU;IACV,sBAAY;IACZ,uBAAa;IACb,oBAAU;CACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/native-stake/index.ts"],"names":[],"mappings":";;;;;;AAGA,8DAAsC;AACtC,kEAA0C;AAC1C,2EAAmD;AACnD,8DAAsC;AACtC,gFAAuD;AACvD,2CAAkD;AAClD,6EAAqD;AACrD,uFAA+D;AAElD,QAAA,SAAS,GAAe,CAAC,+BAAmB,CAAC,CAAC;AAC9C,QAAA,IAAI,GAAU;IACzB,6BAAkB;IAClB,wBAAc;IACd,6BAAmB;CACpB,CAAC;AACW,QAAA,QAAQ,GAAc;IACjC,oBAAU;IACV,sBAAY;IACZ,uBAAa;IACb,oBAAU;CACX,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  export declare const epochInfoCacheKey = "epoch-info";
3
3
  export declare const stakeProgramId: PublicKey;
4
+ export declare const configProgramId: PublicKey;
4
5
  export declare const marinadeManagerAddresses: string[];
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.marinadeManagerAddresses = exports.stakeProgramId = exports.epochInfoCacheKey = void 0;
3
+ exports.marinadeManagerAddresses = exports.configProgramId = exports.stakeProgramId = exports.epochInfoCacheKey = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  exports.epochInfoCacheKey = 'epoch-info';
6
6
  exports.stakeProgramId = new web3_js_1.PublicKey('Stake11111111111111111111111111111111111111');
7
+ exports.configProgramId = new web3_js_1.PublicKey('Config1111111111111111111111111111111111111');
7
8
  exports.marinadeManagerAddresses = [
8
9
  'stWirqFCf2Uts1JBL1Jsd3r6VBWhgnpdPxCTe1MFjrq',
9
10
  'noMa7dN4cHQLV4ZonXrC29HTKFpxrpFbDLK5Gub8W8t',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,iBAAiB,GAAG,YAAY,CAAC;AACjC,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AACW,QAAA,wBAAwB,GAAG;IACtC,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;CAC9C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,iBAAiB,GAAG,YAAY,CAAC;AACjC,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AACW,QAAA,eAAe,GAAG,IAAI,mBAAS,CAC1C,6CAA6C,CAC9C,CAAC;AACW,QAAA,wBAAwB,GAAG;IACtC,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;CAC9C,CAAC"}
@@ -27,4 +27,4 @@ const job = {
27
27
  label: 'normal',
28
28
  };
29
29
  exports.default = job;
30
- //# sourceMappingURL=solanaJob.js.map
30
+ //# sourceMappingURL=solanaEpochJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solanaEpochJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/solanaEpochJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAIvD,oDAAyD;AACzD,4CAA0C;AAC1C,2CAAgD;AAEhD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,SAAS,GAAc,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IACzD,MAAM,KAAK,CAAC,OAAO,CAAC,6BAAiB,EAAE,SAAS,EAAE;QAChD,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,eAAe;IAChC,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -23,17 +23,26 @@ const tokenPriceToAssetToken_1 = __importDefault(require("../../../utils/misc/to
23
23
  const constants_2 = require("../../marinade/constants");
24
24
  const constants_3 = require("../../jito/constants");
25
25
  const constants_4 = require("./constants");
26
+ const MemoizedCache_1 = require("../../../utils/misc/MemoizedCache");
27
+ const arrayToMap_1 = require("../../../utils/misc/arrayToMap");
28
+ const validatorsMemo = new MemoizedCache_1.MemoizedCache(constants_1.validatorsKey, {
29
+ prefix: constants_1.platformId,
30
+ networkId: portfolio_core_1.NetworkId.solana,
31
+ }, (arr) => (0, arrayToMap_1.arrayToMap)(arr || [], 'voter'));
26
32
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
27
33
  const client = (0, clients_1.getClientSolana)();
28
34
  const filters = (0, filters_1.stakeAccountsFilter)(owner.toString());
29
35
  const stakeAccounts = yield (0, solana_1.getParsedProgramAccounts)(client, structs_1.stakeAccountStruct, constants_4.stakeProgramId, filters);
30
36
  if (stakeAccounts.length === 0)
31
37
  return [];
32
- const solTokenPrice = yield cache.getTokenPrice(portfolio_core_1.solanaNetwork.native.address, portfolio_core_1.NetworkId.solana);
33
- const epochInfo = yield cache.getItem(constants_4.epochInfoCacheKey, {
34
- prefix: constants_1.platformId,
35
- networkId: portfolio_core_1.NetworkId.solana,
36
- });
38
+ const [solTokenPrice, epochInfo, validators] = yield Promise.all([
39
+ cache.getTokenPrice(portfolio_core_1.solanaNetwork.native.address, portfolio_core_1.NetworkId.solana),
40
+ cache.getItem(constants_4.epochInfoCacheKey, {
41
+ prefix: constants_1.platformId,
42
+ networkId: portfolio_core_1.NetworkId.solana,
43
+ }),
44
+ validatorsMemo.getItem(cache),
45
+ ]);
37
46
  const epoch = epochInfo === null || epochInfo === void 0 ? void 0 : epochInfo.epoch;
38
47
  let marinadeSolAmount = 0;
39
48
  let solAmount = 0;
@@ -42,6 +51,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
42
51
  let nativeAssets = [];
43
52
  for (let i = 0; i < stakeAccounts.length; i += 1) {
44
53
  const stakeAccount = stakeAccounts[i];
54
+ const validator = validators.get(stakeAccount.voter.toString());
45
55
  mevRewards += new bignumber_js_1.default(stakeAccount.lamports)
46
56
  .minus(stakeAccount.rentExemptReserve)
47
57
  .minus(stakeAccount.stake)
@@ -82,12 +92,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
82
92
  tags.push('Active');
83
93
  }
84
94
  const lockedUntil = stakeAccount.lockup.unixTimestamp.times(1000).toNumber() || undefined;
85
- nativeAssets.push(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.solanaNetwork.native.address, amount, portfolio_core_1.NetworkId.solana, solTokenPrice, undefined, {
95
+ nativeAssets.push(Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.solanaNetwork.native.address, amount, portfolio_core_1.NetworkId.solana, solTokenPrice, undefined, {
86
96
  tags,
87
97
  lockedUntil,
88
- })));
98
+ })), { name: validator === null || validator === void 0 ? void 0 : validator.name, imageUri: validator === null || validator === void 0 ? void 0 : validator.iconUrl }));
89
99
  }
90
- if (nativeAssets.length > 20) {
100
+ if (nativeAssets.length > 30) {
91
101
  nativeAssets = [
92
102
  (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.solanaNetwork.native.address, solAmount, portfolio_core_1.NetworkId.solana, solTokenPrice),
93
103
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"solanaFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/solanaFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solanaFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/solanaFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -0,0 +1,66 @@
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
+ const explorer_kit_idls_1 = require("@solanafm/explorer-kit-idls");
13
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
14
+ const clients_1 = require("../../../utils/clients");
15
+ const constants_1 = require("../constants");
16
+ const solana_1 = require("../../../utils/solana");
17
+ const constants_2 = require("./constants");
18
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const client = (0, clients_1.getClientSolana)();
20
+ const SFMIdlItem = yield (0, explorer_kit_idls_1.getProgramIdl)(constants_2.configProgramId.toString());
21
+ if (!SFMIdlItem)
22
+ return;
23
+ const [{ current, delinquent }, configs] = yield Promise.all([
24
+ client.getVoteAccounts(),
25
+ (0, solana_1.getAutoParsedProgramAccounts)(client, SFMIdlItem),
26
+ ]);
27
+ const voters = [...current, ...delinquent];
28
+ const configsByVoter = new Map();
29
+ configs.forEach((c) => {
30
+ if (!c.info)
31
+ return;
32
+ try {
33
+ const info = JSON.parse(c.info);
34
+ const voter = c.configKeys.keysTuple[1][0];
35
+ configsByVoter.set(voter, {
36
+ voter,
37
+ name: info.name,
38
+ iconUrl: info.iconUrl,
39
+ });
40
+ }
41
+ catch (err) {
42
+ /* empty */
43
+ }
44
+ });
45
+ const validators = [];
46
+ voters.forEach((voteAcc) => {
47
+ const config = configsByVoter.get(voteAcc.nodePubkey.toString());
48
+ validators.push({
49
+ voter: voteAcc.votePubkey.toString(),
50
+ commission: voteAcc.commission,
51
+ name: config === null || config === void 0 ? void 0 : config.name,
52
+ iconUrl: config === null || config === void 0 ? void 0 : config.iconUrl,
53
+ });
54
+ });
55
+ yield cache.setItem(constants_1.validatorsKey, validators, {
56
+ prefix: constants_1.platformId,
57
+ networkId: portfolio_core_1.NetworkId.solana,
58
+ });
59
+ });
60
+ const job = {
61
+ id: `${constants_1.platformId}-solana-validators`,
62
+ executor,
63
+ label: 'normal',
64
+ };
65
+ exports.default = job;
66
+ //# sourceMappingURL=solanaValidatorsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solanaValidatorsJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/solanaValidatorsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mEAA4D;AAC5D,+DAAuD;AAIvD,oDAAyD;AACzD,4CAAyD;AACzD,kDAAqE;AACrE,2CAA8C;AAG9C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,MAAM,IAAA,iCAAa,EAAC,2BAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,MAAM,CAAC,eAAe,EAAE;QACxB,IAAA,qCAA4B,EAAgB,MAAM,EAAE,UAAU,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,MAAM,GAAsB,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,CAAC,IAAI;YAAE,OAAO;QAEpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE;gBACxB,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;YACpC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;YAClB,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,OAAO,CAAC,yBAAa,EAAE,UAAU,EAAE;QAC7C,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,oBAAoB;IACrC,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type ConfigAccount = {
2
+ lamports: number;
3
+ configKeys: {
4
+ keysTuple: [string, boolean][];
5
+ };
6
+ info: string;
7
+ };
8
+ export type ValidatorConfig = {
9
+ voter: string;
10
+ name?: string;
11
+ iconUrl?: string;
12
+ };
13
+ export type Validator = ValidatorConfig & {
14
+ commission?: number;
15
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"solanaJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/native-stake/solana/solanaJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAIvD,oDAAyD;AACzD,4CAA0C;AAC1C,2CAAgD;AAEhD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,SAAS,GAAc,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IACzD,MAAM,KAAK,CAAC,OAAO,CAAC,6BAAiB,EAAE,SAAS,EAAE;QAChD,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,eAAe;IAChC,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}